模型上下文协议系统

一个基于FastAPI和服务器发送事件(SSE)的轻量级工具调用系统,包含MCP服务器和客户端,用于开发或教育用途。

  • by parasjain2426
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 parasjain2426/mcp_server_client_impl

使用说明

🧠 模型上下文协议(MCP)-服务器客户端实现

这个项目很简单 模型上下文协议(MCP) 系统包括 MCP服务器 以及a MCP客户端,通过通信 服务器发送事件(SSE) 使用FastAPI。它演示了使用HTTP上的SSE进行轻量级工具调用。


🏗️ 架构概述

+-------------+                SSE HTTP                 +-------------+
|             | <------------------------------------>  |             |
| MCP CLIENT  |                                         | MCP SERVER  |
| (FastAPI)   |  /upload_claim  ⇄  upload_claim         | (SSE Tools) |
| Port: 5000  |  /get_claim_details ⇄ get_claim_details | Port: 8000  |
+-------------+                                         +-------------+

📁 项目结构

.
├── client/                     # MCP Client (FastAPI app)
│   └──main.py
│
├── server/                     # MCP Server with SSE tools
│   └──main.py
|
└── README.md
└── requirements.txt

🔧 MCP服务器

  • 端口: 8000
  • 框架快速API
  • 协议:服务器发送事件(SSE)
  • 定义工具:
    • upload_claim
    • get_claim_details

▶️ 运行MCP服务器

cd server
pip install -r requirements.txt
python main.py

🚀 MCP客户端

  • 端口: 5000
  • 框架快速API
  • 端点:
    • POST /upload_claim → Calls upload_claim MCP服务器上的工具
    • GET /get_claim_details → Calls get_claim_details MCP服务器上的工具

▶️ 运行MCP客户端

cd client
pip install -r requirements.txt
python main.py

🔄 通信流

  1. 客户端 向MCP服务器发送SSE HTTP请求以调用工具。
  2. 服务器 处理请求并通过SSE流式传输响应。

📬 示例请求

POST /upload_claim

curl -X POST http://localhost:5000/upload_claim \
  -H "Content-Type: application/json" \
  -d '{
        "emp_id": "12345",
        "claim": "This is a dummy claim!"
      }'

POST /get_claim_details

curl -X POST http://localhost:5000/get_claim_details \
  -H "Content-Type: application/json" \
  -d '{
        "claim_id": "12345"
      }'

🧰 需求

Python 3.10+

需求.txt`

"mcp[cli]"
fastapi
httpx

使用以下命令在每个目录中安装依赖项:

pip install -r requirements.txt

⚠️ 备注

  • 这是一个用于以下目的的最小原型 发展或教育 使用。
  • 数据已存储 在存储器中 并将在服务器重新启动时重置。
  • SSE用于简单性和流兼容性。