探索
MCP Fyc

MCP Fyc

一个基于MCP协议的学习项目,包含两种MCP服务实现方式(stdio和sse),主要用于学习MCP Server的实现原理和四则运算API服务。
2分
0
2025-04-23 13:47:10
内容详情
替代品
安装
复制以下命令到你的Client进行配置
注意:您的密钥属于敏感信息,请勿与任何人分享。

MCP 学习项目⚡

Python 3.10+ 架构: 微服务 测试: Pytest

🌟 项目简介

本项目是一个基于MCP协议的学习项目,主要用于学习MCP Server如何实现。 api_server目录内是一个使用FastAPI库实现的一组API服务接口,用来模拟现有系统的java后端服务,本项目内只是实现了加减乘除四则运算。 tests目录下是一个针对api_server的单元测试程序,用来熟悉pytest功能。 mcp_server目录下是MCP的server内容,包含MCP的两种实现方式。

第一种是stdio方式

主要就是本地调用,本地运行的方式,主要实现包含在server.py代码中。 使用方式可以使用cline插件进行调用,下面附上cline调用的cfg配置

{
  "mcpServers": {
    "math": {
      "timeout": 60,
      "command": "mcp",
      "args": [
        "run",
        "\mcp_server\server.py"
      ],
      "transportType": "stdio",
      "disabled": true
    }
  }
}

stdio运行方式

#进入api_server目录下
python main.py
#启动api 服务

#配置好cline的cfg后
#在cline中测试mcp server

第二种是sse方式

使用uvicorn生成一个服务,使用cline插件的remote server方式进行配置连接。 主要功能包含在remote_server.py中,下面附上cline的cfg配置

{
  "mcpServers": {
    "calculate": {
      "autoApprove": [
        "calculate_sum",
        "calculate_subtract",
        "calculate_multiply",
        "calculate_divide"
      ],
      "disabled": false,
      "timeout": 60,
      "url": "http://127.0.0.1:8001/sse",
      "transportType": "sse"
    }
  }
}

sse运行方式

#进入api_server目录下
python main.py
#启动api 服务

#进入mcp_server目录下
python remote_server.py
#启动mcp server

#配置好cline的cfg后
#在cline中测试mcp server

🛠️ 系统架构

Client通过SSE与MCP Server通信,后者通过HTTP RPC调用API Server进行计算。

🌟 核心功能

  • 四则运算工具集:实现加、减、乘、除等基本运算。
  • 基于SSE的实时传输:支持服务器端推送事件。
  • 异步支持:提高系统的响应速度和处理能力。
  • 强类型输入校验:确保数据的有效性和安全性。

🛠️ 技术栈

  • Starlette:一个轻量级的ASGI框架,用于构建高性能的Web应用。
  • Uvicorn:一个快速的ASGI服务器,支持异步处理。
  • HTTPX:一个异步HTTP客户端库,用于发送HTTP请求。
  • MCP协议:通过Server-Sent Events实现流数据传输。

🚀 快速开始

pip install -r requirements.txt

启动API服务:

#进入api_server目录下
python main.py

启动MCP Server(根据选择的实现方式):

#对于stdio方式
cd mcp_server
python server.py

#对于sse方式
cd mcp_server
python remote_server.py

配置并使用cline进行测试。


通过本项目,您可以学习如何基于MCP协议实现一个分布式计算服务,并掌握相关的技术栈和开发方法。