模块化AI服务连接协议

一个模块化、供应商无关的模型上下文协议(MCP)生态系统,通过标准化的MCP服务器实现与不同AI和工具服务的无缝连接。

  • by akhileshjoshi2
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 akhileshjoshi2/mcp_vendors

使用说明

MCP供应商生态系统

一个模块化的、与供应商无关的模型上下文协议(MCP)生态系统,允许通过标准化的MCP服务器无缝连接到不同的AI和公用事业服务。

🏗️ 架构概述

mcp-vendors/
├── openai_server/          # OpenAI GPT and embedding services
├── groq_server/            # Groq-accelerated inference
├── local_llama_server/     # Local quantized LLaMA models
├── utility_server/         # Non-AI tools (search, weather)
├── orchestrator/           # Central router and connector
└── config/                 # Global configuration files

🧩 核心设计原则

  • 模块化服务器:每个供应商都使用FastMCP独立运行
  • 解耦配置:通过配置动态发现服务器
  • LLM不可知论:轻松添加新的AI提供商
  • 可组合逻辑:工具可以嵌入高级推理流程
  • 轻量级界面:通过MCP装饰器的自描述工具
  • 安全配置:基于环境的凭证管理

🚀 快速开始

1.安装依赖项

# Install for all servers
pip install fastmcp python-dotenv

# Server-specific dependencies
cd openai_server && pip install -r requirements.txt
cd groq_server && pip install -r requirements.txt
cd local_llama_server && pip install -r requirements.txt
cd utility_server && pip install -r requirements.txt

2.配置环境变量

创建一个 .env 项目根目录中的文件具有以下键:

# OpenAI Configuration (required for openai_server)
OPENAI_API_KEY=your-openai-api-key-here
OPENAI_MODEL=gpt-4
OPENAI_EMBEDDING_MODEL=text-embedding-ada-002

# Groq Configuration (required for groq_server)
GROQ_API_KEY=your-groq-api-key-here
GROQ_MODEL=llama-3.1-8b-instant

# Local LLaMA / Ollama Configuration (required for local_llama_server)
MODEL_PATH=/path/to/your/local/model
MODEL_TYPE=llama
DEVICE=cpu
MAX_TOKENS=2048
OLLAMA_MODEL=tinyllama
OLLAMA_BASE_URL=http://localhost:11434

# Utility Services Configuration (required for utility_server)
WEATHER_API_KEY=your-openweathermap-api-key-here
WEATHER_BASE_URL=https://api.openweathermap.org/data/2.5

# Orchestrator Configuration (optional)
ORCHESTRATOR_HOST=localhost
ORCHESTRATOR_PORT=8000
LOG_LEVEL=INFO

获取API密钥的位置:

密钥 提供者 URL
OPENAI_API_KEY OpenAI https://platform.openai.com/api-keys
GROQ_API_KEY Groq https://console.groq.com/keys
WEATHER_API_KEY OpenWeatherMap https://openweathermap.org/api

当地电话/Ollama:

  • 从以下位置安装Ollamahttps://ollama.com
  • 拉一个模型: ollama pull tinyllama
  • 集 OLLAMA_MODEL 到要使用的模型名称
  • Ollama一定在跑(ollama serve)开始前 local_llama_server

3.运行单个服务器

# OpenAI Server
cd openai_server && python server.py

# Groq Server  
cd groq_server && python server.py

# Utility Server
cd utility_server && python server.py

4.使用编排器

cd orchestrator && python orchestrator.py

📋 服务器职责

服务器 用途 示例工具
openai_server OpenAI GPT和嵌入 openai_chat, openai_embed, list_models
groq_server Groq加速推理 groq_chat, groq_embed
local_llama_server 本地/离线推理 local_inference, local_embed
utility_server 非LLM公用事业 web_search, get_weather
orchestrator 路由和发现 动态服务器管理

🔄 工作流示例

  1. 请求:用户/系统向编排器发送请求
  2. 发现:编排者阅读 config/mcp_servers.json
  3. 路由:请求被路由到适当的MCP服务器
  4. 执行:工具通过执行 @mcp.tool 装饰器
  5. 响应:向客户端返回统一响应

🛠️ 添加新服务器

  1. 按照模板创建新的服务器目录
  2. 实施 server.py 使用FastMCP
  3. 在中添加工具 tools/ 目录
  4. 更新 config/mcp_servers.json
  5. 将环境变量添加到 .env

📚 文档

每台服务器都包含详细的文档:

  • 设置和配置说明
  • 带参数的工具参考
  • 示例使用和集成
  • 扩展指南

🔐 安全

  • 存储在环境变量中的API密钥
  • 源代码中没有硬编码凭据
  • 每台服务器都在独立的进程中运行
  • 可配置的访问控制

🤝 贡献

  1. 遵循既定的文件夹结构
  2. 使用FastMCP装饰器作为工具/资源
  3. 包含全面的文档字符串
  4. 添加新功能的测试
  5. 更新文档

📄 许可证

MIT许可证-有关具体的许可信息,请参阅各个服务器目录。