🚀 基於模型上下文協議的通用工具服務器
這是一個基於模型上下文協議的通用工具服務器,支持多種功能模塊,能為AI應用提供基礎功能支持,實現標準化接口訪問協議,具備靈活的功能擴展能力。
🚀 快速開始
本項目是基於模型上下文協議的通用工具服務器,支持多種功能模塊,可用於為AI應用提供基礎功能。以下是使用前的準備步驟:
- 安裝依賴
- 初始化配置
✨ 主要特性
- 提供github、gitlab、google maps等多種API接口訪問能力
- 實現了內存存儲功能
- 集成了網頁自動化工具puppeteer
- 支持通過/mcp/gateway路徑進行協議封裝請求
- 提供/mcp/manifest路徑獲取服務說明文檔
📦 安裝指南
安裝依賴
pip install flask requests googlemaps python-pptr
初始化配置
創建config.py文件:
API_KEY_GMAPS = "your_google_maps_api_key"
GITHUB_TOKEN = "your_github_oauth_token"
GITLAB_TOKEN = "your_gitlab_access_token"
💻 使用示例
基礎用法
協議封裝接口使用示例
發送請求:
curl -X POST http://localhost:5000/mcp/gateway \
-H "Content-Type: application/json" \
-d '{"tool":"github","action":"listRepos","parameters":{"username":"octocat"}}'
響應結果:
{
"tool": "github",
"action": "listRepos",
"status": "success",
"result": [
{
"id": 1296269,
"name": "Hello-World",
"full_name": "octocat/Hello-World",
...
}
]
}
高級用法
功能模塊直接調用接口
各工具提供獨立的訪問路徑:
- github: /tool/github/...
- gitlab: /tool/gitlab/...
- gmaps: /tool/gmaps/...
- memory: /tool/memory/...
- puppeteer: /tool/puppeteer/...
📚 詳細文檔
設計目標
- 為AI應用提供多種基礎功能支持
- 實現標準化的接口訪問協議
- 提供靈活的功能擴展能力
- 支持模塊化開發和維護
核心組件
協議封裝模塊(/mcp/gateway)
- 功能:接收符合模型上下文協議規範的請求,解析並轉發到對應功能模塊
- 請求格式:
{
"tool": "github",
"action": "listRepos",
"parameters": {
"username": "octocat"
}
}
- 響應格式:
{
"tool": "github",
"action": "listRepos",
"status": "success",
"result": [
{
"id": 1296269,
"name": "Hello-World",
"full_name": "octocat/Hello-World",
...
}
]
}
功能模塊
- github工具:提供github API訪問能力,支持倉庫、用戶、issues等操作
- gitlab工具:提供gitlab API訪問能力,支持項目、pipeline、issues等操作
- gmaps工具:封裝google maps服務接口,支持地理編碼、路線規劃等功能
- memory工具:實現簡單內存數據庫功能,支持增刪改查
- puppeteer工具:提供網頁自動化能力,支持截圖、PDF生成等
貢獻指南
添加新功能模塊
- 在tools目錄下創建新工具文件,如
tools/newtool.py
- 按照現有工具的模式實現具體功能
- 將新工具添加到manifest中
- 實現對應的接口訪問路由
📄 許可證
本項目採用MIT開源協議。
致謝
感謝以下項目和技術:
- Flask框架:https://flask.palletsprojects.com/
- Google Maps API:https://developers.google.com/maps
- Puppeteer工具:https://github.com/puppeteer/puppeteer
⚠️ 重要提示
請勿在未經允許的情況下使用此項目進行攻擊性、欺騙性或其他非法活動。