README
🚀 模型上下文协议(MCP)服务器
模型上下文协议(MCP)服务器是一个基于Flask框架构建的Web服务,它借助统一标准接口,为多个工具赋予交互能力,支持GitHub、GitLab、Google Maps、Memory和Puppeteer等工具的操作,极大提升了工具间的协作效率。
🚀 快速开始
模型上下文协议(Model Context Protocol,简称MCP)服务器是一个基于Flask框架构建的Web服务。它通过统一的标准接口为多个工具提供交互能力,支持GitHub、GitLab、Google Maps、Memory和Puppeteer等工具的操作。
✨ 主要特性
- 模块化架构:采用模块化架构设计,各部分分工明确,便于维护和扩展。
- 统一接口:所有工具通过统一的MCP协议与服务器交互,支持多种调用方式。
- 自动文档生成:文档生成模块可自动生成API文档,方便开发者使用。
📦 安装指南
文档中未提及具体安装步骤,故跳过此章节。
💻 使用示例
基础用法
# 假设使用统一接口 /mcp 进行跨工具请求
import requests
url = 'http://your-server-address/mcp'
data = {
"tool": "github",
"operation": "listRepos",
"parameters": {
"user": "your_username"
}
}
response = requests.post(url, json=data)
print(response.json())
高级用法
# 使用工具专属接口获取GitHub指定仓库信息
import requests
url = 'http://your-server-address/tool/github/getRepo'
data = {
"parameters": {
"repo": "your_repo_name"
}
}
response = requests.post(url, json=data)
print(response.json())
📚 详细文档
架构
该服务器采用模块化架构设计,分为以下几个核心部分:
- 工具管理器:负责工具的注册、发现与调用。
- 请求处理层:解析用户请求并分发到相应工具。
- 响应生成层:根据工具返回结果生成标准格式的响应。
- 文档生成模块:自动生成API文档。
功能
标准接口
所有工具通过统一的MCP协议与服务器交互,支持以下两种调用方式:
- 统一接口
/mcp:处理所有跨工具请求。 - 工具专属接口:如
/tool/github/listRepos。
MCP 信息 manifest
提供 /mcp/manifest 端点,返回所有可用工具及其操作的详细说明。
工具文档
GitHub 工具
支持以下操作:
- listRepos:列出用户或组织的所有仓库。
- getRepo:获取指定仓库的信息。
- searchRepos:搜索符合条件的仓库。
- getIssues:获取仓库中的问题列表。
- createIssue:新建仓库中的一个问题。
GitLab 工具
支持以下操作:
- listProjects:列出用户可访问的所有项目。
- getProject:获取指定项目的详细信息。
- searchProjects:搜索符合条件的项目。
- getIssues:获取项目中的问题列表。
- createIssue:新建项目中的一个问题。
- getPipelines:获取项目的流水线信息。
Google Maps 工具
支持以下操作:
- geocode:将地址转换为地理坐标。
- reverseGeocode:将地理坐标转回地址。
- getDirections:获取两点之间的路线规划。
- searchPlaces:搜索附近的地点信息。
- getPlaceDetails:获取特定地点的详细信息。
Memory 工具
提供持久化的键值存储服务,支持以下操作:
- get:通过键获取存储项。
- set:创建或更新存储项。
- delete:删除指定键的存储项。
- list:列出所有存储项,可按条件过滤。
- search:根据内容搜索存储项。
Puppeteer 工具
提供网页自动化功能,支持以下操作:
- screenshot:截取网页快照。
- pdf:生成网页的PDF文件。
- extract:提取网页中的内容信息。
贡献指南
欢迎社区贡献!以下是参与方式:
添加新工具
- 在
tools目录下创建新工具文件,如tools/newtool_tool.py。 - 实现该工具的具体操作方法,参考现有工具的实现模式。
- 将新工具添加到manifest配置中。
- 注册工具的蓝图路由。
🔧 技术细节
该服务器采用模块化架构设计,各核心部分协同工作,实现了工具的统一管理和交互。工具管理器负责工具的全生命周期管理,请求处理层确保用户请求的准确分发,响应生成层保证了响应的标准化,文档生成模块则提高了开发效率。
📄 许可证
本项目遵循MIT许可证,具体内容详见 LICENSE 文件。
致谢
感谢以下项目的贡献:
- 模型上下文协议(Model Context Protocol)为规范提供了标准。
- Flask框架为Web服务构建奠定了基础。
- Puppeteer为网页自动化提供了强大支持。
微信扫一扫