MCP(Model Context Protocol)是一个用于开发和部署智能应用的开源框架。它提供了统一的协议、工具和服务,能助力开发者快速构建高效的应用程序。
MCP 框架目录结构
├── mcp/types.py # 定义内容类型和接口
├── tools/ # 工具实现
│ ├── base_tool.py # 工具基类定义
│ └── specific_tool.py # 具体工具实现
└── server.py # MCP 服务器实现
pip install mcp[all] # 安装所有依赖项
# 或者按需安装:
pip install pyMuPDF python-docx pandas openpyxl httpx anyio click
uv run mcp.server --transport sse --port 8000
访问 SSE 端点:http://localhost:8000/sse
MCP 定义了一套标准化协议,用于不同组件之间的交互。核心内容包括:
内容类型:
types.TextContent)types.ImageContent)types.EmbeddedResource)通信协议:
tools 目录下创建新的 Python 文件,例如 your_tool.pyimport mcp.types as types
from . import BaseTool, ToolRegistry
BaseTool 的工具类:@ToolRegistry.register
class YourTool(BaseTool):
"""您的工具描述"""
name = "your_tool_name" # 工具的唯一标识符
description = "您的工具描述" # 工具的描述信息,将显示给用户
input_schema = {
"type": "object",
"required": ["param1"], # 必需的参数
"properties": {
"param1": {
"type": "string",
"description": "参数1的描述",
},
"param2": {
"type": "integer",
"description": "参数2的描述(可选)",
}
},
}
async def execute(self, arguments: dict) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]:
"""执行工具逻辑"""
# 参数验证
if "param1" not in arguments:
return [types.TextContent(
type="text",
text="Error: Missing required parameter"
)]
# 处理逻辑
result = self._process_arguments(arguments)
return [types.TextContent(
type="text",
text=str(result)
)]
pip install mcp[all] # 安装所有依赖项
# 或者按需安装:
pip install pyMuPDF python-docx pandas openpyxl httpx anyio click
uv run mcp.server --transport sse --port 8000
访问 SSE 端点:http://localhost:8000/sse
编辑 config.py 文件:
from mcp.config import Config
Config.load_defaults()
# 或者自定义配置:
Config.set('debug_mode', True)
通过命令行参数进行配置:
uv run mcp.server --config your_config.yaml --port 8000
MCP 框架依赖以下库:
git checkout -b feature/your-feature)git add .; git commit -m "your commit message")MCP 框架遵循 MIT License,具体条款见 LICENSE 文件。