MCP服务器集合
  ](https://www.docker.com/)
一组模型控制协议(MCP)服务器,为人工智能系统提供对各种数据源的标准化访问。此存储库包含多个MCP服务器实现,每个实现都旨在通过AI代理的一致接口公开不同的外部API。
什么是MCP?
模型控制协议(MCP)是人工智能系统与外部工具和服务交互的标准化协议。MCP服务器实现了此规范,允许AI模型:
- 通过标准化界面发现可用工具
- 具有结构化输入的调用工具
- 接收易于处理的结构化输出
这为AI系统访问外部数据创造了一种一致的方式,而不需要为每个数据源定制集成代码。
包含MCP服务器
此存储库包含以下MCP服务器实现:
新闻API MCP服务器
为人工智能系统提供通过 新闻API。此服务器公开了以下工具:
- 按主题搜索新闻文章
- 按国家分列的头条新闻
OpenWeather MCP服务器
为人工智能系统提供通过 OpenWeather API。此服务器公开了以下工具:
- 获取当前天气状况
- 检索每小时和每天的预测
- 获取空气污染数据
SerpAPI谷歌MCP服务器
通过以下方式为人工智能系统提供对谷歌搜索数据的访问 SerpAPI。此服务器公开了以下工具:
- 搜索事件
- 检索财务信息
- 查找航班和酒店
- 搜索工作、地点和产品
公共特性
此集合中的所有MCP服务器共享以下功能:
- 标准化协议:实施MCP规范,实现无缝AI集成
- 容器化:已准备好使用Docker进行部署
- 异步处理:使用现代异步Python构建,实现高效的请求处理
- 健康检查:包括用于监控的健康检查端点
- 服务器发送事件(SSE):实时通信通道
技术栈
- Python 3.12+:使用现代Python功能构建
- MCP框架:实现模型控制协议规范
- HTTPX:用于高效API请求的异步HTTP客户端
- 斯塔利特/乌维科恩:高性能ASGI服务器
- 码头工人:容器化,便于部署
先决条件
- Python 3.12或更高版本
- 相应服务的API密钥:
- 新闻API MCP服务器的新闻API密钥 - OpenWeather MCP服务器的OpenWeather API密钥 - SerpAPI Google MCP服务器的SerpAPI API密钥
- Docker(可选,用于容器化部署)
安装和设置
每个MCP服务器都可以独立安装和运行。有关具体的安装说明,请参阅各个服务器文档。
常见安装步骤
- 克隆此存储库:
git clone
cd MCPServers- 导航到特定服务器目录:
cd # e.g., news-api-mcp-server- 安装软件包:
pip install -e .- 创建一个
.env使用API密钥文件:
API_KEY=your_api_key_here # Use the appropriate environment variable name使用Docker
每个服务器都包含一个用于容器化部署的Dockerfile。您可以单独构建和运行Docker镜像,也可以使用Docker Compose管理多个服务器。
使用Docker Compose运行多个服务器
创建一个 docker-compose.yml 根目录中的文件:
version: '3'
services:
news-api-mcp-server:
build: ./news-api-mcp-server
ports:
- "8001:8000"
env_file:
- ./news-api-mcp-server/.env
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
open-weather-mcp-server:
build: ./open-weather-mcp-server
ports:
- "8002:8000"
env_file:
- ./open-weather-mcp-server/.env
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
serpapi-google-mcp-server:
build: ./serpapi-google-mcp-server
ports:
- "8003:8000"
env_file:
- ./serpapi-google-mcp-server/.env
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s运行所有服务器:
docker-compose up -d用法
连接到服务器
每个MCP服务器在以下位置公开一个SSE(服务器发送事件)端点:
http://{host}:{port}/sse实现MCP协议的AI系统和客户端可以连接到此端点,以发现和调用可用工具。
健康检查
每台服务器在以下位置提供一个健康检查端点:
http://{host}:{port}/health当服务器正常运行时,此端点返回200 OK响应。
安全考虑
API密钥保护
- 永远不要将API密钥提交到版本控制
- 使用环境变量或
.env用于存储API密钥的文件 - 部署时,使用安全方法提供API密钥(环境变量、机密管理)
速率限制
注意每个外部API的费率限制:
- 新闻API:因订阅计划而异
- OpenWeather API:因订阅计划而异
- SerpAPI:因订阅计划而异
如果您期望高使用率,请实施适当的缓存策略。
贡献
欢迎投稿!如果您想添加新的MCP服务器或改进现有的MCP服务器,请按照以下步骤操作:
- 分叉存储库
- 为您的功能创建新分支
- 添加您的更改
- 提交拉取请求
请确保您的代码遵循现有样式,并包含适当的文档。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
- 新闻API 用于提供新闻数据API
- OpenWeather API 用于提供天气数据API
- SerpAPI 用于提供Google搜索数据API
- MCP框架 用于模型控制协议的实现
- 此项目的所有贡献者
