Model Context Protocol (MCP) Example

Model Context Protocol (MCP) Example

site icon
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 辅助工具和自动化流程。

核心功能

  1. 本地工具调用:通过 stdio 接口实现本地工具调用。
  2. 远程工具调用:通过 HTTP 接口实现远程工具调用。
  3. AWS Bedrock 和 Claude 3.7 集成:支持与 AWS Bedrock 和 Claude 3.7 的集成,用于自然语言理解和函数调用。
  4. 工具链支持:支持工具链式调用,可以组合多个工具完成复杂任务。
  5. WebSocket 流式传输:支持通过 WebSocket 流式传输长运行操作的结果。
  6. 工具结果缓存:支持工具和函数结果的缓存,提高性能并减少冗余网络调用。

适用场景

  1. AI 辅助开发:用于开发 AI 辅助工具,支持自然语言理解和函数调用。
  2. 自动化流程:适用于自动化流程开发,支持工具链式调用和远程工具调用。
  3. 实时交互:适用于需要实时交互和流式传输结果的场景。
  4. 性能优化:适用于需要缓存工具结果以提高性能的场景。

工具列表

  1. Calculator:提供基本算术运算功能,包括加法、减法、乘法、除法、幂运算、平方根和对数运算。
  2. Text Processing:提供文本转换和分析功能,包括大小写转换、反转文本、字符计数、单词计数等。
  3. Proxy Tool:支持将函数调用转发到远程 MCP 服务器,无需直接实现远程工具。

常见问题解答

  1. 依赖问题:确保所有依赖已安装,特别是 uvicorn
  2. API 密钥:默认 API 密钥为 test-key,确保在请求中包含该密钥。
  3. 日志调试:使用 --log-level debug 参数启用调试日志,帮助排查问题。

使用教程

使用依赖

  1. Python 3.10 或更高版本:确保已安装 Python 3.10 或更高版本。
  2. Poetry:推荐使用 Poetry 进行依赖管理。

安装教程

  1. 克隆仓库: bash git clone https://github.com/yourusername/mcp-example.git cd mcp-example

  2. 设置虚拟环境并安装依赖:

  3. 使用 Poetry(推荐): bash poetry install
  4. 使用 venv: bash python3 -m venv venv source venv/bin/activate # Windows 使用: venv\Scripts\activate pip install -e .

调试方式

  1. 运行 CLI: bash poetry run python -m mcp_example.adapters.stdio.cli

  2. 运行服务器: bash poetry run python -m mcp_example.server.main --host 0.0.0.0 --port 8000

  3. 测试服务器: bash curl -X GET http://localhost:8000/api/functions -H "X-API-Key: test-key"

  4. 调用计算器函数: 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}}'

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。