chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
# Model Context Protocol (MCP) Python Implementation
|
||||
|
||||
This repository contains a Python implementation of the Model Context Protocol (MCP), demonstrating how to create both a server and client application that communicate using the MCP standard.
|
||||
|
||||
## Overview
|
||||
|
||||
The MCP implementation consists of two main components:
|
||||
|
||||
1. **MCP Server (`server.py`)** - A server that exposes:
|
||||
- **Tools**: Functions that can be called remotely
|
||||
- **Resources**: Data that can be retrieved
|
||||
- **Prompts**: Templates for generating prompts for language models
|
||||
|
||||
2. **MCP Client (`client.py`)** - A client application that connects to the server and uses its features
|
||||
|
||||
## Features
|
||||
|
||||
This implementation demonstrates several key MCP features:
|
||||
|
||||
### Tools
|
||||
- `completion` - Generates text completions from AI models (simulated)
|
||||
- `add` - Simple calculator that adds two numbers
|
||||
|
||||
### Resources
|
||||
- `models://` - Returns information about available AI models
|
||||
- `greeting://{name}` - Returns a personalized greeting for a given name
|
||||
|
||||
### Prompts
|
||||
- `review_code` - Generates a prompt for reviewing code
|
||||
|
||||
## Installation
|
||||
|
||||
To use this MCP implementation, install the required packages:
|
||||
|
||||
```powershell
|
||||
pip install mcp-server mcp-client
|
||||
```
|
||||
|
||||
## Running the Server and Client
|
||||
|
||||
### Starting the Server
|
||||
|
||||
Run the server in one terminal window:
|
||||
|
||||
```powershell
|
||||
python server.py
|
||||
```
|
||||
|
||||
The server can also be run in development mode using the MCP CLI:
|
||||
|
||||
```powershell
|
||||
mcp dev server.py
|
||||
```
|
||||
|
||||
Or installed in Claude Desktop (if available):
|
||||
|
||||
```powershell
|
||||
mcp install server.py
|
||||
```
|
||||
|
||||
### Running the Client
|
||||
|
||||
Run the client in another terminal window:
|
||||
|
||||
```powershell
|
||||
python client.py
|
||||
```
|
||||
|
||||
This will connect to the server and demonstrate all available features.
|
||||
|
||||
### Client Usage
|
||||
|
||||
The client (`client.py`) demonstrates all the MCP capabilities:
|
||||
|
||||
```powershell
|
||||
python client.py
|
||||
```
|
||||
|
||||
This will connect to the server and exercise all features including tools, resources, and prompts. The output will show:
|
||||
|
||||
1. Calculator tool result (5 + 7 = 12)
|
||||
2. Completion tool response to "What is the meaning of life?"
|
||||
3. List of available AI models
|
||||
4. Personalized greeting for "MCP Explorer"
|
||||
5. Code review prompt template
|
||||
|
||||
## Implementation Details
|
||||
|
||||
The server is implemented using the `FastMCP` API, which provides high-level abstractions for defining MCP services. Here's a simplified example of how tools are defined:
|
||||
|
||||
```python
|
||||
@mcp.tool()
|
||||
def add(a: int, b: int) -> int:
|
||||
"""Add two numbers together
|
||||
|
||||
Args:
|
||||
a: First number
|
||||
b: Second number
|
||||
|
||||
Returns:
|
||||
The sum of the two numbers
|
||||
"""
|
||||
logger.info(f"Adding {a} and {b}")
|
||||
return a + b
|
||||
```
|
||||
|
||||
The client uses the MCP client library to connect to and call the server:
|
||||
|
||||
```python
|
||||
async with stdio_client(server_params) as (reader, writer):
|
||||
async with ClientSession(reader, writer) as session:
|
||||
await session.initialize()
|
||||
result = await session.call_tool("add", arguments={"a": 5, "b": 7})
|
||||
```
|
||||
|
||||
## Learn More
|
||||
|
||||
For more information about MCP, visit: https://modelcontextprotocol.io/
|
||||
Reference in New Issue
Block a user