人工智能模型管理器MCP服务器
一个强大的模型上下文协议(MCP)服务器,提供对本地AI模型(通过Ollama)和基于云的模型(OpenAI、Anthropic、Google Gemini、Mistral AI)的统一访问。该服务器支持智能模型路由、成本跟踪和全面的模型管理。
🌟 特性
多提供商支持
- 局部模型:Ollama(火焰、Mistral、Code火焰、PHI-3等)
- 云API:
- OpenAI(GPT-4o、GPT-4 Turbo、GPT-3.5) - 人象(克劳德3.5十四行诗、克劳德3作品集、克劳德3俳句) - 谷歌(双子座1.5 Pro,双子座1.5 Flash) - 西北风AI(西北风大,西北风小)
核心能力
- 🔄 统一接口:适用于所有模型提供程序的单个API
- 💰 成本跟踪:自动代币计数和成本计算
- 📊 使用情况分析:详细的统计数据和性能指标
- 🎯 智能路由:基于需求的智能选型
- 💬 对话管理:保存和恢复对话上下文
- ⚡ 流媒体支持:实时响应流
- 🔍 模型比较:比较多个模型的输出
- 🏥 健康监测:提供商可用性和状态检查
📋 先决条件
- Python 3.10或更高版本
- 安装Ollama(适用于本地型号)- 安装Ollama
- 云提供商的API密钥(可选)
🚀 快速开始
1.安装
# Clone or navigate to the project directory
cd ai-model-manager-mcp
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt2.配置
复制示例环境文件并配置API密钥:
cp .env.example .env编辑 .env 并添加您的API密钥:
# Required for cloud providers
OPENAI_API_KEY=your_openai_key_here
ANTHROPIC_API_KEY=your_anthropic_key_here
GOOGLE_API_KEY=your_google_key_here
MISTRAL_API_KEY=your_mistral_key_here
# Ollama configuration (if not using defaults)
OLLAMA_HOST=http://localhost:114343.安装Olama型号(可选)
# Install some popular local models
ollama pull llama3.2
ollama pull mistral
ollama pull codellama4.运行服务器
python -m src.server🔧 MCP工具
list_models
列出已配置提供程序中的所有可用型号。
参数:
provider(可选):按提供商名称筛选capability(可选):按能力筛选(聊天、完成、愿景等)
例子:
{
"provider": "ollama",
"capability": "chat"
}get_model_info
获取特定型号的详细信息。
参数:
model(必填):型号名称provider(必填):提供商名称
例子:
{
"model": "gpt-4o",
"provider": "openai"
}generate
使用指定的模型生成文本。
参数:
model(必填):型号名称provider(必填):提供商名称prompt(可选):文本提示messages(可选):聊天消息数组system_prompt(可选):系统提示max_tokens(可选):要生成的最大令牌数temperature(可选):温度(0-2,默认值:0.7)
例子:
{
"model": "llama3.2",
"provider": "ollama",
"prompt": "Explain quantum computing in simple terms",
"temperature": 0.7
}compare_models
比较同一提示下多个模型的输出。
参数:
models(必填):模型/提供者对数组prompt(必填):文本提示temperature(可选):温度(默认值:0.7)
例子:
{
"models": [
{"model": "llama3.2", "provider": "ollama"},
{"model": "gpt-4o-mini", "provider": "openai"},
{"model": "claude-3-haiku-20240307", "provider": "anthropic"}
],
"prompt": "Write a haiku about programming"
}get_usage_stats
获取使用统计数据和成本。
参数:
model(可选):按型号筛选provider(可选):按提供商筛选group_by(可选):按字段分组(型号、提供商)
例子:
{
"group_by": "provider"
}save_conversation
保存对话以供以后检索。
参数:
title(必填):对话标题model(必填):使用的型号provider(必填):已使用提供商messages(必填):对话消息数组
例子:
{
"title": "Python Tutorial Discussion",
"model": "gpt-4o",
"provider": "openai",
"messages": [
{"role": "user", "content": "How do I use async/await?"},
{"role": "assistant", "content": "Async/await is..."}
]
}list_conversations
列出已保存的对话。
参数:
limit(可选):对话数(默认值:50)offset(可选):分页偏移量(默认值:0)
health_check
检查所有配置的提供程序的运行状况。
📚 MCP资源
stats://usage
所有模型的总体使用统计数据(JSON格式)。
config://providers
所有提供程序的配置状态(JSON格式)。
💡 使用示例
与Claude Desktop一起使用
添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"ai-model-manager": {
"command": "python",
"args": ["-m", "src.server"],
"cwd": "/path/to/ai-model-manager-mcp",
"env": {
"OPENAI_API_KEY": "your-key",
"ANTHROPIC_API_KEY": "your-key"
}
}
}
}与其他MCP客户端一起使用
服务器使用stdio传输,可以与任何兼容MCP的客户端集成。
🏗️ 建筑
ai-model-manager-mcp/
├── src/
│ ├── models/ # Base model interfaces
│ ├── providers/ # Provider implementations
│ ├── storage/ # Database and configuration
│ ├── routing/ # Smart routing logic (future)
│ ├── utils/ # Utilities (future)
│ └── server.py # Main MCP server
├── config/
│ └── models.json # Model definitions
├── tests/ # Test suite
└── data/ # Database storage (created at runtime)🔐 安全说明
- API密钥存储在环境变量中
- 数据库在本地存储使用统计信息
- 在生产过程中,考虑加密存储的API密钥
- 永不承诺
.env文件到版本控制
📊 成本跟踪
服务器会自动跟踪:
- 令牌使用(输入/输出)
- 每次请求的成本
- 延迟度量
- 供应商绩效
通过以下方式访问统计数据:
get_usage_stats工具stats://usage资源- 直接数据库查询
🛠️ 发展
运行测试
pytest tests/代码格式化
black src/
ruff check src/类型检查
mypy src/🤝 贡献
欢迎投稿!需要改进的地方:
- 其他提供商集成
- 智能路由实施
- 增强成本优化
- 模型性能基准测试
- UI/统计仪表板
📝 许可证
麻省理工学院许可证-您可以在项目中自由使用!
🐛 故障排除
Ollama连接问题
# Check if Ollama is running
ollama list
# Restart Ollama service
# macOS: Restart Ollama app
# Linux: systemctl restart ollamaAPI关键问题
- 验证密钥是否正确设置
.env - 检查关键权限和配额
- 确保键值中没有多余的空格
数据库问题
# Reset database
rm -rf data/
# Server will recreate on next run📞 支持
对于问题和疑问:
- 检查故障排除部分
- 审查供应商文件
- 在GitHub上打开一个问题
🎯 路线图
- \[\]基于任务复杂性的智能路由
- \[\]模型性能基准测试
- \[\]成本优化建议
- \[\]用于统计的Web仪表板
- \[\]支持更多的提供商(Cohere、Together AI)
- \[\]微调工作流管理
- \[\]模型评估工具
______________________________________________________________________
建于❤️ 使用模型上下文协议
