AdamPippert_multi Service Mcp Server

AdamPippert_multi Service Mcp Server

🚀 模型上下文协议(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协议与服务器交互,支持以下两种调用方式:

  1. 统一接口 /mcp:处理所有跨工具请求。
  2. 工具专属接口:如 /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:提取网页中的内容信息。

贡献指南

欢迎社区贡献!以下是参与方式:

添加新工具

  1. tools目录下创建新工具文件,如tools/newtool_tool.py
  2. 实现该工具的具体操作方法,参考现有工具的实现模式。
  3. 将新工具添加到manifest配置中。
  4. 注册工具的蓝图路由。

🔧 技术细节

该服务器采用模块化架构设计,各核心部分协同工作,实现了工具的统一管理和交互。工具管理器负责工具的全生命周期管理,请求处理层确保用户请求的准确分发,响应生成层保证了响应的标准化,文档生成模块则提高了开发效率。

📄 许可证

本项目遵循MIT许可证,具体内容详见 LICENSE 文件。

致谢

感谢以下项目的贡献:

  • 模型上下文协议(Model Context Protocol)为规范提供了标准。
  • Flask框架为Web服务构建奠定了基础。
  • Puppeteer为网页自动化提供了强大支持。
  • 0 关注
  • 0 收藏,21 浏览
  • system 提出于 2025-10-01 13:48

相似服务问题

相关AI产品