
Model Context Protocol (MCP) Example

2025.03.28
1
Python工具调用协议AI 辅助开发自动化流程开发效率
mcp-example 是一个基于 Model Context Protocol (MCP) 的参考实现,用于在大型语言模型(LLMs)和应用程序之间进行工具调用。它支持本地工具调用(通过 stdio)和远程工具调用(通过 HTTP),并集成了 AWS Bedrock 和 Claude 3.7。该项目旨在通过定义标准化的函数定义、函数调用和响应格式,促进 LLMs 与工具或应用程序之间的交互。
View on GitHub
Overview
基本能力
产品定位
mcp-example 是一个用于工具调用的协议实现,旨在简化 LLMs 与应用程序之间的交互。它提供了一套标准化的接口和工具,支持本地和远程调用,适用于开发 AI 辅助工具和自动化流程。
核心功能
- 本地工具调用:通过 stdio 接口实现本地工具调用。
- 远程工具调用:通过 HTTP 接口实现远程工具调用。
- AWS Bedrock 和 Claude 3.7 集成:支持与 AWS Bedrock 和 Claude 3.7 的集成,用于自然语言理解和函数调用。
- 工具链支持:支持工具链式调用,可以组合多个工具完成复杂任务。
- WebSocket 流式传输:支持通过 WebSocket 流式传输长运行操作的结果。
- 工具结果缓存:支持工具和函数结果的缓存,提高性能并减少冗余网络调用。
适用场景
- AI 辅助开发:用于开发 AI 辅助工具,支持自然语言理解和函数调用。
- 自动化流程:适用于自动化流程开发,支持工具链式调用和远程工具调用。
- 实时交互:适用于需要实时交互和流式传输结果的场景。
- 性能优化:适用于需要缓存工具结果以提高性能的场景。
工具列表
- Calculator:提供基本算术运算功能,包括加法、减法、乘法、除法、幂运算、平方根和对数运算。
- Text Processing:提供文本转换和分析功能,包括大小写转换、反转文本、字符计数、单词计数等。
- Proxy Tool:支持将函数调用转发到远程 MCP 服务器,无需直接实现远程工具。
常见问题解答
- 依赖问题:确保所有依赖已安装,特别是
uvicorn
。 - API 密钥:默认 API 密钥为
test-key
,确保在请求中包含该密钥。 - 日志调试:使用
--log-level debug
参数启用调试日志,帮助排查问题。
使用教程
使用依赖
- Python 3.10 或更高版本:确保已安装 Python 3.10 或更高版本。
- Poetry:推荐使用 Poetry 进行依赖管理。
安装教程
-
克隆仓库:
bash git clone https://github.com/yourusername/mcp-example.git cd mcp-example
-
设置虚拟环境并安装依赖:
- 使用 Poetry(推荐):
bash poetry install
- 使用 venv:
bash python3 -m venv venv source venv/bin/activate # Windows 使用: venv\Scripts\activate pip install -e .
调试方式
-
运行 CLI:
bash poetry run python -m mcp_example.adapters.stdio.cli
-
运行服务器:
bash poetry run python -m mcp_example.server.main --host 0.0.0.0 --port 8000
-
测试服务器:
bash curl -X GET http://localhost:8000/api/functions -H "X-API-Key: test-key"
-
调用计算器函数:
bash curl -X POST http://localhost:8000/api/functions/call \ -H "X-API-Key: test-key" \ -H "Content-Type: application/json" \ -d '{"name": "calculator", "parameters": {"operation": "add", "a": 5, "b": 3}}'