MCP Server Implementation

MCP Server Implementation

site icon
2025.04.14 0
PythonLLM 增强工具调用开发效率
yisu201506_mcp_server 是一个基于 Flask 的 Model Context Protocol (MCP) 实现,旨在通过外部工具增强大型语言模型(LLM)的能力。该服务器支持完整的 MCP 解析、执行和响应处理,允许在模型的文本输出中直接调用工具。与传统的函数调用不同,MCP 将工具定义直接放置在上下文窗口中,并通过解析模型的自然语言响应来识别工具使用。
View on GitHub

Overview

基本能力

产品定位

yisu201506_mcp_server 是一个用于增强大型语言模型(LLM)能力的工具调用服务器,通过 Model Context Protocol (MCP) 实现外部工具的集成和调用。

核心功能

  • 完整的 MCP 实现:支持解析、执行和响应处理。
  • 示例工具:包括天气查询和计算器工具,支持参数验证。
  • 对话流管理:支持跨多个交互的上下文维护。
  • 基于正则表达式的解析:灵活的文本解析工具调用。
  • Flask API:提供 REST API 端点用于聊天集成。

适用场景

  • 增强 LLM 功能:通过外部工具扩展 LLM 的能力。
  • 自然语言工具调用:在自然语言响应中识别和执行工具调用。
  • 多轮对话管理:支持上下文维护的多轮对话场景。

工具列表

  • Weather Tool:查询天气信息,支持位置和单位参数。
  • Calculator Tool:执行数学计算,支持表达式参数。

常见问题解答

  • 如何添加自定义工具:创建继承自 Tool 的类,定义参数和执行逻辑,并注册到 MCP 处理器。
  • MCP 与函数调用的区别:MCP 将工具定义放在提示文本中,通过自然语言调用,而函数调用使用结构化 JSON。

使用教程

使用依赖

  1. 安装 Python 3.x
  2. 安装 Git

安装教程

  1. 克隆仓库: bash git clone https://github.com/yourusername/mcp-server.git cd mcp-server
  2. 创建虚拟环境: bash python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate
  3. 安装依赖: bash pip install -r requirements.txt
  4. 设置环境变量: bash echo "LLM_API_KEY=your_llm_api_key_here" > .env echo "WEATHER_API_KEY=your_weather_api_key_here" >> .env echo "FLASK_APP=app.py" >> .env echo "FLASK_ENV=development" >> .env

调试方式

  1. 启动开发服务器: bash flask run
  2. 生产环境启动: bash gunicorn app:app
  3. 测试 API 端点: bash curl -X POST http://localhost:5000/chat \ -H "Content-Type: application/json" \ -d '{"messages": [{"role": "user", "content": "What's the weather like in Boston?"}]}'
  4. 运行独立示例: bash python mcp_example.py

许可证

该项目遵循 MIT 开源许可条款。