315 查看 · 2026-07-07 更新
MCP 服务器用于AI集成
一个使用FastMCP 2.0构建的全面模型上下文协议(MCP)服务器,为AI代理提供了访问强大工具和服务套件的能力。这个模块化、可扩展的服务器能够与各种平台、API和自动化工作流无缝集成。
🚀 概览
模型上下文协议(MCP)允许AI代理通过标准化接口与外部工具和服务进行交互。此实现提供了一个丰富的工具包,使AI代理能够:
- 🔍 搜索与研究:网络搜索、本地商业发现及内容提取
- 🌤️ 实时数据:全球天气信息和预报
- 🧮 计算:带有错误处理的数学运算
- 📂 文件系统访问:读取并浏览本地文件和目录
- 🕷️ 网络自动化:浏览器控制和网站内容提取
- 📊 数据管理:Airtable数据库操作和结构化数据处理
- 📝 文档创建:Google Workspace集成(Sheets, Docs, Slides)
- 🔗 平台集成:准备就绪以支持n8n, Claude Desktop, 和自定义应用程序
✨ 主要特性
🌐 网络与搜索工具
- Brave搜索集成:网页搜索、新闻、视频以及本地商业发现
- 实时天气:使用Open-Meteo API获取当前状况和预报
- 网络爬虫:使用Crawl4AI从网站中提取内容,并支持结构化数据
- 浏览器自动化:利用Playwright进行全面的浏览器控制,执行交互式网页任务
📊 数据与生产力
- 文件系统访问:安全地只读访问本地文件,浏览目录,搜索内容
- Airtable管理:创建基础表,管理表格,使用模板库搜索记录
- Google Sheets:创建电子表格,操作数据,协作编辑
- Google Docs:文档创建,内容编辑,协作写作
- Google Slides:演示文稿创建,幻灯片管理,基于模板的工作流程
- 计算器:可靠的算术运算,具备全面的错误处理
🏗️ 架构亮点
- FastMCP 2.0:基于最新的MCP框架构建,以获得最佳性能
- 模块化设计:工具分布在独立模块中,便于管理和扩展
- 会话上下文:智能记忆最近的操作和创建的文档
- SSE支持:服务器发送事件以实现实时通信
- 灵活的身份验证:支持OAuth2、Bearer令牌和API密钥
- 错误恢复能力:全面的错误处理机制,优雅降级
🚀 快速开始
1. 安装
bash
克隆仓库
git clone
使用uv安装(推荐)
uv venv source .venv/bin/activate # 在Windows上: .venvScriptsactivate uv pip install -r requirements.txt
或者使用pip
pip install -r requirements.txt
2. 环境设置
在项目根目录下创建.env文件:
env
服务器配置
MCP_SERVER_NAME=my-mcp-server MCP_HOST=0.0.0.0 MCP_PORT=8000
所需API密钥
BRAVE_API_KEY=your_brave_search_api_key AIRTABLE_PERSONAL_ACCESS_TOKEN=your_airtable_token
可选:Google Workspace (适用于Sheets, Docs, Slides)
GOOGLE_CREDENTIALS_FILE=credentials.json GOOGLE_TOKEN_FILE=token.json
3. 可选依赖项
为了增强功能,请安装额外的工具:
bash
网络爬虫和浏览器自动化
pip install crawl4ai playwright playwright install
Google Workspace集成
pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client
4. 启动服务器
bash python run.py
您的服务器将可用:
- 基本URL:
http://localhost:8000 - SSE端点:
http://localhost:8000/sse - MCP协议:准备好供AI代理连接
🛠️ 工具类别
| 类别 | 工具 | 需要API | 状态 | |----------|-------|--------------|--------|| 搜索与网络 | 2 个网页搜索工具 | Brave API | ✅ 核心 | | 天气 | 全球天气数据 | 无(Open-Meteo) | ✅ 核心 | | 计算器 | 算术运算 | 无 | ✅ 核心 | | 文件系统 | 5 个文件/目录工具 | 无 | ✅ 核心 | | 网页自动化 | 3 个爬虫 + 10 个浏览器工具 | 无(本地) | ⚡ 可选 | | Airtable | 15+ 数据库工具 | Airtable Token | ✅ 核心 | | Google 表格 | 8 个电子表格工具 | Google OAuth2 | ⚡ 可选 | | Google 文档 | 5 个文档工具 | Google OAuth2 | ⚡ 可选 | | Google 幻灯片 | 10 个演示文稿工具 | Google OAuth2 | ⚡ 可选 |
核心工具(始终可用)
brave_web_search,brave_local_search- 网页和本地商业搜索get_weather- 任何地点的当前天气和预报calculator- 基本算术及错误处理get_system_info,read_file,list_directory- 文件系统探索create_airtable_base,list_records, 等 - 数据库管理
智能上下文功能
- 会话记忆:跟踪最近创建的文档和电子表格
- 标题搜索:通过名称查找文档,无需 ID
- 自动追加:添加到最近的电子表格或文档
- 模板库:预建的 Airtable 模板(CRM、项目管理等)
- 文件系统导航:支持
~代表主目录,跨平台路径
🔌 集成示例
n8n 工作流集成
- 在您的工作流中添加 MCP 客户端工具 节点
- 配置 SSE 端点:
http://your-server:8000/sse - 选择要暴露给 AI 代理的工具
- 如有需要,配置身份验证
json { "endpoint": "http://localhost:8000/sse", "authentication": "bearer", "tools": ["brave_web_search", "get_weather", "read_file", "create_google_sheet"] }
Claude 桌面集成
在您的 Claude 桌面配置中添加:
json { "mcpServers": { "enhanced-mcp-server": { "command": "python", "args": ["/absolute/path/to/run.py"], "env": { "BRAVE_API_KEY": "your_brave_api_key", "AIRTABLE_PERSONAL_ACCESS_TOKEN": "your_airtable_token" } } } }
自定义应用程序
通过 HTTP API 连接并接收 JSON 响应:
python import httpx
async def call_mcp_tool(): async with httpx.AsyncClient() as client: response = await client.post( "http://localhost:8000/messages", json={ "tool": "list_directory", "parameters": {"directory_path": "~"} } ) return response.json()
📊 高级功能
文件系统集成
安全的只读访问本地文件:
- 跨平台:适用于 Windows、Linux 和 macOS
- 智能路径处理:支持
~代表主目录和环境变量 - 内容搜索:按名称模式或内容查找文件
- 大小控制:可配置限制防止内存问题
- 权限感知:尊重文件系统权限
Airtable 模板系统
即时创建生产就绪的基础:
- CRM:具有交易管道的客户关系管理
- 项目管理:任务、项目和团队协调
- 库存:产品跟踪,包括库存水平和供应商
- 活动策划:带有任务协调的活动管理
- 内容日历:内容规划和发布工作流程
Google Workspace 集成
无缝文档创建和管理:
- 上下文感知:自动跟踪最近创建的内容
- 智能操作:“追加到最后一个表单”,“编辑最近的文档”
- 协作性:内置共享和权限管理
- 模板支持:从现有文档和演示文稿复制
网页自动化能力
强大的浏览器控制以执行复杂任务:
- 多浏览器:支持 Chrome、Firefox、Safari
- 会话管理:多个并发浏览器上下文- 交互套件:点击、填写表单、等待元素、执行JavaScript
- 内容提取:截图、无障碍树、结构化数据
🔧 开发与扩展
添加新工具
- 在
tools/目录下创建一个新的工具文件:
python
tools/my_tool.py
from typing import Dict, Any
async def my_function(param: str) -> Dict[str, Any]: """AI代理的工具描述。""" try: result = f"Processed: {param}" return {"result": result, "status": "success"} except Exception as e: return {"error": str(e), "status": "error"}
def register(mcp_instance): mcp_instance.tool()(my_function)
- 在
run.py中导入并注册:
python from tools import my_tool my_tool.register(mcp)
开发环境设置
bash
安装开发依赖
pip install pytest python-dotenv
运行测试
pytest tests/
测试特定工具
python -m tests.test_mcp_crawler
🔐 API 设置与成本
完整功能所需
Brave 搜索 API (获取API密钥)
- 免费层级:每月2,000次查询
- 付费计划:提供更高限制
- 使用场景:网页搜索和本地商业发现
Airtable 个人访问令牌 (生成令牌)
- 免费层级:使用限制宽松
- 使用场景:数据库创建与管理
Google Workspace APIs (设置指南)
- 需要设置的免费层级
- 需要OAuth2凭证
- 使用场景:Sheets、Docs 和 Slides 集成
免费服务
- 天气:Open-Meteo API(无限制)
- 计算器:内置功能
- 文件系统:本地文件访问(无需外部依赖)
- 网络爬虫:本地浏览器自动化
- 浏览器控制:本地Playwright执行
📖 文档
单个工具文档
- 网页搜索工具
- 天气工具
- 计算器工具
- 文件系统工具
- 网络爬虫工具
- 浏览器自动化工具
- Airtable 工具
- Google Sheets 工具
- Google Docs 工具
- Google Slides 工具
🚀 生产部署
Docker 部署(示例)
dockerfile FROM python:3.11-slim
WORKDIR /app COPY . . RUN pip install -r requirements.txt
安装可选依赖
RUN pip install crawl4ai playwright && playwright install --with-deps
EXPOSE 8000 CMD ["python", "run.py"]
环境变量
env
生产设置
MCP_HOST=0.0.0.0 MCP_PORT=8000 MCP_SERVER_NAME=production-mcp-server
安全令牌管理
BRAVE_API_KEY=${BRAVE_API_KEY} AIRTABLE_PERSONAL_ACCESS_TOKEN=${AIRTABLE_TOKEN}
🛡️ 安全与最佳实践
API 密钥安全
- 将密钥存储在环境变量中,绝不在代码中硬编码
- 为开发和生产环境使用不同的密钥
- 监控API使用情况,并对异常活动设置警报
- 定期轮换密钥并更新访问权限
文件系统安全
- 只读访问防止意外修改系统
- 文件大小限制(默认50MB)防止内存耗尽
- 路径验证防止目录遍历攻击
- 尊重权限以维护现有的安全边界
工具访问控制
- 使用n8n中的工具选择来限制可用功能
- 通过日志监控工具使用情况- 为生产部署实施速率限制
- 定期审查和审计工具访问权限
🤝 贡献
我们欢迎贡献!请:
- 分叉仓库
- 创建一个特性分支:
git checkout -b feature/amazing-tool - 为新功能添加测试
- 确保所有测试通过:
pytest - 提交一个拉取请求
贡献领域
- 新工具集成(Slack, GitHub等)
- 增强错误处理和日志记录
- 性能优化
- 文档改进
- 测试和质量保证
📞 支持与社区
- 问题: 通过GitHub Issues报告错误并请求功能
- 文档: 在
docs/目录下的完整工具文档 - 示例: 在
examples/目录下的使用示例和工作流程
🏆 构建于
- FastMCP 2.0 - 快速、Python风格的构建MCP服务器方式
- Brave Search - 注重隐私的网络搜索
- Open-Meteo - 免费天气API
- Crawl4AI - 对AI友好的网页爬虫
- Playwright - 浏览器自动化
- Google APIs - 工作区集成
📄 许可证
本项目采用MIT许可证发布 - 查看LICENSE文件以获取详细信息。
准备好加速您的AI工作流了吗? 按照上面的安装指南开始,并探索全面的工具文档,以解锁您AI代理的全部潜力。
服务配置
[{'mcpServers': {'enhanced-mcp-server': {'args': ['/absolute/path/to/run.py'], 'command': 'python', 'env': {'AIRTABLE_PERSONAL_ACCESS_TOKEN': 'your_airtable_token', 'BRAVE_API_KEY': 'your_brave_api_key'}}}}]
来源
- 来源:github
- 链接:https://github.com/gabrielpierobon/mcp