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

特征
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 文件。
致谢
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
一个实现模型上下文协议标准的模块化服务器,提供通过统一网关与 GitHub、GitLab、Google Maps、内存存储和 Web 自动化交互的工具。
Related Resources
Related MCP Servers
- Asecurity-licenseAqualityA Model Context Protocol server for Git repository interaction and automation. This server provides tools to read, search, and manipulate Git repositories via Large Language Models.Last updated -1371,513MIT License
- Asecurity-licenseAqualityA Model Context Protocol server that enables AI models to interact with GitHub's API, allowing for repository creation and management with descriptions, topics, and website URLs through natural language commands.Last updated -
- Asecurity-licenseAqualityA Model Context Protocol server that enables interaction with GitLab accounts to manage repositories, merge requests, code reviews, and CI/CD pipelines through natural language.Last updated -411212MIT License
- -security-license-qualityA Model Context Protocol server that supports remote connections and authenticates users via GitHub OAuth, allowing them to access tools based on their GitHub identity.Last updated -
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