使用说明
集成MCP的AI代理
基于Streamlit的AI代理应用程序,支持多个LLM提供者,并与模型上下文协议(MCP)服务器集成,通过工具、资源和提示增强功能。
特性
- 🤖 多个LLM提供商:支持OpenAI、Anthropic和谷歌模型
- 🔧 MCP集成:连接到MCP服务器以获取工具和资源
- 💬 交互式聊天:实时对话,流式响应
- ⚙️ 可配置设置:可定制的系统提示、温度和令牌限制
- 🛠️ 工具执行:自动解析和执行工具调用
- 📁 资源访问:访问MCP资源和提示
- 🎨 现代用户界面:干净、响应迅速的Streamlit界面
快速开始
1.安装
# Clone the repository
git clone <repository-url>
cd ai-agent-mcp
# Install dependencies
pip install -r requirements.txt
2.环境设置
创建一个 .env 文件基于 env_example.txt:
# Copy the example file
cp env_example.txt .env
# Edit with your API keys
OPENAI_API_KEY=your_openai_api_key_here
ANTHROPIC_API_KEY=your_anthropic_api_key_here
GOOGLE_API_KEY=your_google_api_key_here
3.运行应用程序
streamlit run app.py
应用程序将在您的浏览器中打开 http://localhost:8501.
配置
LLM提供商
该应用程序支持三个LLM提供者:
OpenAI
- 模型:GPT-4、GPT-4涡轮增压器、GPT-3.5涡轮增压器
- API密钥:设置
OPENAI_API_KEY在您的环境中
Anthropic
- 模型:第三篇作品,第三篇十四行诗,第三章俳句
- API密钥:设置
ANTHROPIC_API_KEY在您的环境中
谷歌
- 模型:Gemini Pro,Gemini Pro Vision
- API密钥:设置
GOOGLE_API_KEY在您的环境中
MCP服务器
MCP(模型上下文协议)服务器提供工具、资源和提示来扩展代理的功能。该应用程序使用与Claude Desktop相同的配置格式。
添加MCP服务器
- 转到“MCP服务器”选项卡
- 点击“➕ 添加新MCP服务器”
- 提供:
- 服务器名称:唯一标识符(例如,文件系统、勇敢搜索)
- 命令:要运行的命令(例如npx、uvx、python)
- 参数:每行一个(例如-y、@modelcontextprotocol/server文件系统)
- 环境变量:KEY=VALUE格式(可选)
- 点击“添加服务器”
MCP服务器配置示例
文件系统服务器:
{
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/directory"]
}
勇敢的搜索:
{
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-brave-search"],
"env": {
"BRAVE_API_KEY": "your-api-key"
}
}
PostgreSQL:
{
"command": "uvx",
"args": ["mcp-server-postgres", "postgresql://user:pass@localhost/db"]
}
Claude桌面配置兼容性
应用程序可以直接从/向加载和保存配置 claude_desktop_config.json,使其与Claude Desktop的MCP服务器设置完全兼容:
- 从克劳德桌面加载:单击“📁 从claude_desktop_config“加载以导入现有服务器
- 保存到克劳德桌面:单击“💾 保存到claude_desktop_config.json“导出配置
- 相同格式:使用与Claude Desktop相同的JSON结构,实现无缝兼容
用法
基本聊天
- 在侧栏中配置LLM提供者
- 初始化代理
- 在聊天选项卡中开始聊天
使用工具
代理可以自动使用可用的MCP工具。只需询问需要使用工具的内容:
"Can you list the files in my documents folder?"
"What's the weather like in New York?"
"Search for information about Python asyncio"
代理人将:
- 确定合适的工具
- 执行工具调用
- 以用户友好的格式提供结果
高级配置
系统提示
使用系统提示自定义代理的行为:
You are a helpful coding assistant. Always provide code examples and explain your reasoning.
温度控制
- 0.0:确定性、重点明确的回应
- 0.7:平衡创造力和一致性(默认)
- 1.0+:更具创造性和多样性的回应
令牌限制
使用最大令牌控制响应长度(100-8000)。
API集成
创建自定义LLM提供程序
扩展 BaseLLMProvider 类别:
from src.llm_providers import BaseLLMProvider, Message, LLMResponse
class CustomProvider(BaseLLMProvider):
async def generate_response(self, messages, system_prompt=None, **kwargs):
# Implement your custom logic
pass
async def stream_response(self, messages, system_prompt=None, **kwargs):
# Implement streaming logic
pass
自定义MCP服务器
创建实现模型上下文协议的MCP服务器:
# Example tool registration
tools = [
{
"name": "calculate",
"description": "Perform mathematical calculations",
"inputSchema": {
"type": "object",
"properties": {
"expression": {"type": "string"}
}
}
}
]
建筑
核心组件
src/agent.py:主要AI代理实现src/llm_providers.py:LLM提供程序抽象src/mcp_client.py:MCP服务器集成src/config.py:配置管理app.py:流线型UI应用程序
数据流
- 用户输入→ 流线型UI
- UI → AI 代理
- 代理→ LLM提供者(用于生成响应)
- 代理→ MCP服务器(用于工具执行)
- 结果→ UI → User
故障排除
常见问题
“初始化代理失败”
- 检查API密钥设置是否正确
- 验证网络连接
- 确保LLM提供程序可访问
“找不到MCP服务器”
- 验证服务器路径是否正确
- 检查服务器是否可执行
- 查看服务器参数
“工具调用失败”
- 检查MCP服务器是否正在运行
- 验证工具参数
- 查看服务器日志
日志记录
启用调试日志记录:
import logging
logging.basicConfig(level=logging.DEBUG)
演出
为了获得更好的性能:
- 对长输出使用流式响应
- 限制对话历史记录长度
- 优化MCP服务器响应时间
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
支持
如有疑问和支持:
- 在GitHub上创建问题
- 检查文档
- 查看示例配置