** 注意:由于较小模型的内存问题,该项目已停止维护,这意味着我更倾向于使用独立的容器化服务器,而不是单体路由。代码仍在维护中,以便其他人仍想尝试这条路线。
模型上下文协议 (MCP) 服务器
一个实现模型上下文协议标准的模块化服务器,为 GitHub、GitLab、Google Maps、内存存储和 Puppeteer 网络自动化提供工具。
建筑学
MCP 服务器采用模块化架构,每个工具都作为单独的模块实现。服务器提供统一的网关,将请求路由到相应的工具。

Related MCP server: GitHub MCP Server
特征
MCP 网关:所有遵循 MCP 标准的工具请求的统一端点
MCP 清单:描述所有可用工具及其功能的端点
直接工具访问:每个工具都可以通过其自己的 API 端点直接访问
模块化设计:根据需要轻松添加或删除工具
附带的工具
GitHub 工具:与 GitHub 存储库、问题和搜索进行交互
GitLab 工具:与 GitLab 项目、问题和管道进行交互
Google 地图工具:地理编码、路线和地点搜索
记忆工具:持久存储和检索数据
Puppeteer Tool :截取屏幕截图、生成 PDF 以及从网站提取内容
入门
先决条件
Python 3.8 或更高版本
Node.js 14 或更高版本
基于 Red Hat 的 Linux 发行版(RHEL、CentOS、Fedora)或任何 Linux/macOS 系统
安装
克隆此存储库:
git clone https://github.com/yourusername/mcp-server.git cd mcp-server安装 Python 依赖项:
pip install -r requirements.txt安装 Node.js 依赖项:
npm install使用您的配置创建一个
.env文件:SECRET_KEY=your-secret-key DEBUG=False # GitHub configuration GITHUB_TOKEN=your-github-token # GitLab configuration GITLAB_TOKEN=your-gitlab-token # Google Maps configuration GMAPS_API_KEY=your-google-maps-api-key # Memory configuration MEMORY_DB_URI=sqlite:///memory.db # Puppeteer configuration PUPPETEER_HEADLESS=true CHROME_PATH=/usr/bin/chromium-browser启动服务器:
python app.py
容器化部署
您可以使用 Docker 或 Podman(Red Hat 的容器引擎)运行服务器。
Docker 部署
如果您已经安装了 Docker 和 docker-compose:
构建 Docker 镜像:
docker build -t mcp-server .运行容器:
docker run -p 5000:5000 --env-file .env mcp-server或者,使用 docker-compose:
创建
docker-compose.yml文件:version: '3' services: mcp-server: build: . ports: - "5000:5000" volumes: - ./data:/app/data env_file: - .env restart: unless-stopped然后运行:
docker-compose up -d
Podman 部署
对于使用 Podman 的基于 Red Hat 的系统(RHEL、CentOS、Fedora):
构建容器镜像:
podman build -t mcp-server .运行容器:
podman run -p 5000:5000 --env-file .env mcp-server如果您需要持久存储:
mkdir -p ./data podman run -p 5000:5000 --env-file .env -v ./data:/app/data:Z mcp-server注意::
:Z后缀对于启用 SELinux 的系统很重要。使用 Podman Compose(如果已安装):
# Install podman-compose if needed pip install podman-compose # Use the same docker-compose.yml file as above podman-compose up -d
使用 MCP 服务器
MCP 网关
MCP 网关是使用 MCP 标准访问所有工具的主要端点。
端点: POST /mcp/gateway
请求格式:
回复格式:
MCP 清单
MCP 清单描述了所有可用的工具及其功能。
端点: GET /mcp/manifest
回复格式:
直接工具访问
每个工具也可以通过其自己的 API 端点直接访问:
GitHub:
/tool/github/...GitLab:
/tool/gitlab/...谷歌地图:
/tool/gmaps/...记忆:
/tool/memory/...木偶师:
/tool/puppeteer/...
有关可用端点的详细信息,请参阅每个工具的 API 文档。
工具文档
GitHub 工具
GitHub 工具提供对存储库、问题和搜索的 GitHub API 的访问。
行动:
listRepos:列出用户或组织的存储库getRepo:获取特定存储库的详细信息searchRepos:搜索存储库getIssues:获取存储库的问题createIssue:在存储库中创建新问题
GitLab 工具
GitLab 工具提供对项目、问题和管道的 GitLab API 的访问。
行动:
listProjects:列出经过身份验证的用户可访问的所有项目getProject:获取特定项目的详细信息searchProjects:在 GitLab 上搜索项目getIssues:获取项目问题createIssue:在项目中创建新问题getPipelines:获取项目的管道
谷歌地图工具
Google 地图工具提供对 Google 地图 API 的访问,以进行地理编码、路线和地点搜索。
行动:
geocode:将地址转换为地理坐标reverseGeocode:将地理坐标转换为地址getDirections:获取两个地点之间的路线searchPlaces:使用 Google Places API 搜索地点getPlaceDetails:获取特定地点的详细信息
记忆工具
内存工具提供了用于存储和检索数据的持久键值存储。
行动:
get:通过 key 获取内存项set:创建或更新内存项delete:按键删除内存项list:列出所有内存项,并带有可选的过滤功能search:按值搜索内存项
木偶工具
Puppeteer 工具提供网络自动化功能,可以截取屏幕截图、生成 PDF 以及从网站提取内容。
行动:
screenshot:截取网页截图pdf:生成网页的 PDFextract:从网页中提取内容
贡献
欢迎贡献!以下是扩展 MCP 服务器的方法:
添加新工具
在
tools目录中创建一个新文件,例如tools/newtool_tool.py按照与现有工具相同的模式实施该工具
将该工具添加到
app.py中的清单中在
tools/__init__.py中注册工具的蓝图
执照
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
致谢
Appeared in Searches
- Multi MCP (Model Context Protocol) implementation or management
- Techniques for Scraping Dynamic Websites with JavaScript and Handling CAPTCHA or Proxy Issues
- A service for finding locations and navigation directions
- GitHub repository or chat tool related to MCP
- A Python library for visualizing neural networks