使用说明
远程MCP服务器
一个使用MCP(模型上下文协议)框架和Docker容器化的简单客户端-服务器应用程序。
项目概述
该项目演示了一个具有客户端连接的简单MCP服务器。服务器公开了客户端可以远程调用的工具。整个应用程序使用Docker进行容器化,以便于部署和一致的环境。
特性
- MCP服务器:将API端点公开为可以远程调用的工具
- MCP客户端:连接到服务器并调用可用工具
- 模块化工具架构:服务器工具被组织在单独的文件中,以提高可维护性
- Docker支持:客户端和服务器都是容器化的
- Docker Compose:轻松编排客户端和服务器容器
示例工具
你好,世界
一个简单的问候工具,返回问候消息。
参数:
name(string):要问候的名字
退货:
- 问候语字符串
计算器
执行基本算术运算。
参数:
operation(string):要执行的操作(加、减、乘、除)a(浮点数):第一个数字b(浮点数):第二个数字
退货:
- 包含操作和结果的字典
入门指南
先决条件
- Docker和Docker Compose
- Python 3.12(如果在本地运行)
使用Docker运行
-
克隆存储库:
git clone <repository-url> cd remote-mcp-server -
构建并运行容器:
docker-compose up --build -
服务器将在以下时间可用
http://localhost:8000/mcp
本地运行
服务器
-
导航到服务器目录:
cd server -
安装依赖项:
pip install -r requirements.txt -
运行服务器:
python server.py
客户端
-
导航到客户端目录:
cd client -
安装依赖项:
pip install -r requirements.txt -
运行客户端:
python client.py
添加新工具
要向服务器添加新工具,请执行以下操作:
- 在中创建一个新的Python文件
server/tools目录 - 定义a
register_tool接受服务器参数的函数 - 使用服务器装饰器定义您的工具
- 在中导入并注册您的工具
server/tools/__init__.py
例子:
# server/tools/new_tool.py
from mcp.server.fastmcp import Context
def register_tool(server):
@server.tool(
name="new_tool",
description="Description of the new tool"
)
def new_tool(param1: str, param2: int, ctx: Context) -> dict:
# Tool implementation
return {"result": "some result"}
然后更新 __init__.py:
from . import new_tool
def register_all_tools(server):
# ... existing tools
new_tool.register_tool(server)
许可证
版权所有(c)2025约翰·坎贝尔
