模型上下文协议演示

一个简单的模型上下文协议(MCP)实现,包含Python服务器和客户端,用于AI模型访问外部工具和数据源。

  • by arjunprabhulal
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 arjunprabhulal/mcp-simple-demo

使用说明

MCP简单演示

使用Python服务器和客户端简单演示模型上下文协议(MCP)。

概述

该项目演示了模型上下文协议(MCP)的基本实现,该协议允许AI模型访问外部工具和数据源。它包括:

  • 具有简单工具的MCP兼容服务器
  • 用于与服务器交互的客户端
  • 工具调用和响应示例

仓库

此项目的官方存储库位于: https://github.com/arjunprabhulal/mcp-simple-demo

安装

先决条件

  • Python 3.8+
  • 点

设置

  1. 克隆存储库:
git clone https://github.com/arjunprabhulal/mcp-simple-demo.git
cd mcp-simple-demo
  1. 安装所需的软件包:
# Using requirements.txt (recommended)
pip install -r requirements.txt

# Or install packages manually
pip install mcp llama-index llama-index-tools-mcp requests

服务器使用情况

服务器提供符合MCP的工具,可供AI模型或客户端应用程序访问。

启动服务器

python server.py

这将使用两个工具在默认端口(8000)上启动MCP服务器:

  • hello_world:返回问候信息
  • add:将两个数字相加

调试

要启用调试日志,请执行以下操作:

DEBUG_LEVEL=DEBUG python server.py

对于完全调试模式:

DEBUG=true DEBUG_LEVEL=DEBUG python server.py

客户端使用情况

提供的客户端可以在交互和命令行模式下与MCP服务器交互。

交互模式

python client.py

这将启动一个交互式会话,您可以在其中选择要执行的命令。

命令行模式

列出可用工具:

python client.py tools

调用hello_world工具:

python client.py hello
python client.py hello "Your Name"

调用添加工具:

python client.py add 5 3

可用工具

你好_世界

返回问候信息。

参数:

  • name (可选):要问候的名字(默认:“World”)

退货:

  • 带有消息字段的JSON对象: {"message": "Hello, Name!"}

添加

将两个数字相加。

参数:

  • a:第一个数字(整数)
  • b:第二个数字(整数)

退货:

  • a和b之和(整数)

协议细节

模型上下文协议(MCP)使用服务器发送事件(SSE)来建立连接。流程如下:

  1. 客户端连接到 /sse 端点
  2. 服务器返回会话ID
  3. 客户端使用会话ID通过以下方式进行工具调用 /messages/?session_id=...

高级测试

要对服务器进行更详细的测试,请使用测试客户端:

python test_client.py

这将对MCP连接和可用工具进行更全面的测试。

贡献

欢迎为这个项目捐款!请随时向提交问题或拉取请求 GitHub存储库.

参考文献