使用说明
MCP游乐场
通过实例演示模型上下文协议(MCP)的实践学习项目。
什么是MCP?
模型上下文协议(MCP) 是一种标准化协议,使人工智能助手能够安全地连接到外部工具、数据源和服务。将其视为人工智能模型与外部世界之间的桥梁。
关键概念
- MCP服务器:公开工具和资源的独立流程
- MCP客户端:连接到服务器并调用其工具的应用程序
- 工具:可以由客户端调用的函数(如API端点)
- 资源:可访问的数据源(如文件或数据库)
这个游乐场是如何运作的
本项目通过以下方式演示了MCP:
-
连接到MCP服务器:我们连接到安装在以下位置的三台MCP服务器
/Users/darshangupta/mcp:content_factory:生成脚本、标题和SEO内容http_request:向web API发出HTTP请求filesystem:读取和写入本地系统上的文件
-
调用个人工具:
main.py展示了如何独立调用每个工具 -
链式工具:
workflow.py演示如何将多个工具调用链接在一起以创建强大的工作流
项目结构
mcp_playground/
├── README.md # This file
├── main.py # Individual tool demonstrations
├── workflow.py # Chained tool call examples
├── try_it.sh # Quick execution script
├── requirements.txt # Python dependencies
└── tests/ # Test cases
├── __init__.py
├── test_main.py
└── test_workflow.py
设置
-
再进行:
pip install -r requirements.txt -
验证MCP服务器:确保您的MCP服务器安装在
/Users/darshangupta/mcp -
运行示例:
./try_it.sh或者单独运行:
python main.py python workflow.py
例子
单个工具调用(main.py)
- 内容工厂:生成关于某个主题的脚本
- HTTP 请求:向公共API发出GET请求
- 文件系统:读取和写入文件
连锁工作流程(workflow.py)
- 生成→ Save → Read → Send:
- 使用内容工厂生成内容
- 使用文件系统将其保存到文件
- 读回
- 通过HTTP请求发送
运行测试
python -m pytest tests/
学习路径
- 从开始
main.py了解单个工具调用 - 移动到
workflow.py了解如何链接工具 - 浏览测试文件以了解预期行为
- 修改示例以尝试不同的参数
MCP服务器位置
游乐场连接到这些MCP服务器:
- 内容工厂:
/Users/darshangupta/mcp/content_factory(⚠️ 需要API更新) - HTTP请求:
/Users/darshangupta/mcp/http_request(⚠️ 需要API更新) - 文件系统:目前使用Python文件操作(不调用MCP文件系统工具)
备注:文件系统演示目前使用Python的内置文件操作,而不是调用MCP文件系统工具。文件系统服务器在清单中标记为“内置”,这通常意味着它是由MCP框架提供的。要实际调用MCP文件系统工具,您需要连接到文件系统MCP服务器。
备注
- MCP服务器通过stdio(标准输入/输出)进行通信
- 每个工具调用都是异步的,并返回结构化的JSON
- 链接工具时错误处理很重要
- 在后续调用中使用工具响应之前,始终验证工具响应
使用虚拟环境进行设置(推荐)
建议使用虚拟环境来避免依赖冲突:
# Create virtual environment
python3 -m venv venv
# Activate it
source venv/bin/activate # On macOS/Linux
# or
venv\Scripts\activate # On Windows
# Install dependencies
pip install -r requirements.txt
故障排除
MCP API版本不匹配
如果您看到以下错误:
ImportError: cannot import name 'InitializeResult' from 'mcp.server.models'
这意味着您的MCP服务器是为旧版本的MCP库编写的。MCP API在不同版本之间发生了变化。您有两个选择:
- 更新您的MCP服务器 使用最新的MCP API
- 使用兼容的MCP版本 与您的服务器代码匹配:
pip install "mcp<1.0.0" # or the specific version your servers need
架构不匹配错误
如果您看到以下错误:
ImportError: dlopen(...pydantic_core...): incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')
这意味着您的Python安装与您的系统架构不匹配(在Apple Silicon Mac上很常见)。要修复:
- 使用虚拟环境 (推荐-见上文)
- 检查你的Python架构:
python3 -c "import platform; print(platform.machine())" - 重新安装Python以获得正确的架构,或使用具有正确Python版本的虚拟环境。
即使服务器由于API或体系结构问题而无法运行,游乐场代码仍将演示MCP概念。