统一API网关系统

ADAPTA MCP Gateway是一个统一网关系统,将自然语言命令转化为多API操作,并提供集中式安全和认证管理。

  • by anneestherlf
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 anneestherlf/adapta-mcp

使用说明

ADAPTA MCP网关

案例英特尔学院+AADAPA

统一的网关系统,可将自然语言命令转换为在多个 API 上执行的操作,并提供集中式安全和身份验证管理。

案例幻灯片的链接: https://www.figma.com/proto/P2gAxyeF6EIJLH0bp7EdD9/adapta-mcp?node-id=1-2&p=f&t=SgUs396zez2R513D-1&scaling=contain&content-scaling=fixed&page-id=0%3A1

建筑

该系统由6个主要组件组成:

  1. 控制面板 (步骤 0):设置工具和凭据
  2. 演示界面 (步骤 1):命令输入的 Web 界面
  3. 统一 网关 (步骤 2):接收所有请求的单个后端
  4. 智能路由 (步骤3):解释命令并决定行动的LLM
  5. MCPS中心 (步骤 4):每个工具/API 的适配器
  6. 钥匙保险箱 (步骤 5):集中管理凭据
  7. 合并答案 (步骤 6):聚合和格式化响应

安装

pip install -r requirements.txt

配置

1. 安装依赖关系

pip install -r requirements.txt

2. 设置环境变量

执行脚本卸载:

python setup.py

或手动创建文件 .env 具有以下变量:

  • GOOGLE_CLIENT_IDGoogle OAuth 客户端 ID 谷歌云控制台)
  • GOOGLE_CLIENT_SECRETGoogle OAuth 客户端的秘密
  • GOOGLE_REDIRECT_URI重定向 URI (默认 : http://localhost:8000/auth/google/callback)
  • GEMINI_API_KEYGoogle Gemini API 密钥 谷歌人工智能工作室)
  • SLACK_BOT_TOKENSlack 机器人令牌(可选,可通过面板配置)
  • SECRET_KEY: 自动生成的绝密密钥
  • ENCRYPTION_KEY: 自动生成的加密密钥

3. 设置 Google OAuth

  1. 访问 谷歌云控制台
  2. 创建新工程或选择现有工程
  3. 使用API做谷歌日历
  4. 配置 OAuth 同意屏幕
  5. 创建 OAuth 2.0 凭据(“Web 应用程序”类型)
  6. 添加 http://localhost:8000/auth/google/callback 作为允许的重定向 URI。
    • 使用 TLS 进行本地开发(推荐):您可以生成自签名证书并使用 https://localhost:8000/auth/google/callback 作为允许的重定向 URI。
    • 仓库包含一个证书生成器 tools/generate_self_signed_cert.py 操作系统脚本 run_backend.bat / run_backend.sh 已更新以便在证书存在时自动启动 TLS 后端。
  7. 将客户端ID和客户端秘密复制到文件 .env

执行

视窗

# Terminal 1 - Backend
run_backend.bat

# Terminal 2 - Frontend
run_frontend.bat

Linux/Mac

# Terminal 1 - Backend
chmod +x run_backend.sh
./run_backend.sh

# Terminal 2 - Frontend
chmod +x run_frontend.sh
./run_frontend.sh

手册

# Terminal 1 - Backend (sem TLS)
uvicorn backend.main:app --reload --port 8000

# Terminal 1 - Backend (com TLS usando certificados em `certs/`)
# Gere certificados com: `python tools/generate_self_signed_cert.py`
uvicorn backend.main:app --reload --port 8000 --ssl-certfile certs/cert.pem --ssl-keyfile certs/key.pem

# Terminal 2 - Frontend
streamlit run frontend/app.py

访问

  • 前端(接口): http://localhost:8501
  • 后端(API): http://localhost:8000
  • API 文档: http://localhost:8000/docs

使用

一步一步

  1. Inicie os servidors (后端e前端)

  2. 配置凭据:

    • 在 Web 界面中访问控制面板
    • 连接您的 Google 帐户 (OAuth 2.0) - A 型
    • 配置静态 API 密钥(Slack 等) - B 类型
  3. 执行命令:

    • 转到“执行命令”页面
    • 用自然语言输入命令
    • 系统解释、执行和返回合并响应

身份验证流程

Tipo A(OAuth 2.0-谷歌日历):

  1. 用户点击控制面板中的“连接Google”
  2. 被重定向到 Google 登录屏幕
  3. 允许访问
  4. 系统接收 refresh_token 并存放在保险箱
  5. 必要时,使用 refresh_token 获取 access_token 临时

类型 B (静态密钥 - Slack):

  1. 管理员在控制面板中插入 API 密钥
  2. 密钥存储在保险箱(加密)
  3. 必要时可直接检索并使用密钥

例子

命令 :

Marque uma 'Reunião de Alinhamento' no meu Google Calendar amanhã às 10h e avise no canal #projetos do Slack que a reunião foi marcada.

结果:

  • 在 Google 日历中创建的事件
  • 在 Slack 上发送的消息
  • 综合答案:“好了!我在你的 Google 日历中标记了‘对齐会议’,并通知了 Slack 上的 #projects 频道。”