
MCP Server Implementation

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。
使用教程
使用依赖
- 安装 Python 3.x
- 安装 Git
安装教程
- 克隆仓库:
bash git clone https://github.com/yourusername/mcp-server.git cd mcp-server
- 创建虚拟环境:
bash python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate
- 安装依赖:
bash pip install -r requirements.txt
- 设置环境变量:
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
调试方式
- 启动开发服务器:
bash flask run
- 生产环境启动:
bash gunicorn app:app
- 测试 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?"}]}'
- 运行独立示例:
bash python mcp_example.py