MCP Server Implementation

MCP Server Implementation

site icon
2025.03.26 0
PythonLLM 增强工具集成开发效率
MCP Server 是一个基于 Flask 的 Model Context Protocol (MCP) 实现,旨在通过外部工具增强大型语言模型(LLM)的能力。它通过将工具定义直接放入上下文窗口,并解析模型的自然语言响应来识别工具使用,从而扩展 LLM 的功能。
View on GitHub

Overview

基本能力

产品定位

MCP Server 是一个用于扩展大型语言模型能力的服务,通过集成外部工具(如天气查询和计算器)来增强模型的实用性。

核心功能

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

适用场景

  • 增强 LLM 功能:通过外部工具扩展模型的能力。
  • 聊天机器人:集成到聊天系统中,提供更丰富的交互体验。
  • 开发和研究:用于研究和开发新的工具集成方法。

工具列表

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

常见问题解答

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

使用教程

使用依赖

  1. 安装 Python 和 Git。
  2. 创建虚拟环境: bash python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate

安装教程

  1. 克隆仓库: bash git clone https://github.com/yourusername/mcp-server.git cd mcp-server
  2. 安装依赖: bash pip install -r requirements.txt
  3. 设置环境变量: 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. 测试 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?"}]}'
  3. 运行独立示例: bash python mcp_example.py

许可证

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