使用说明
MCP概念证明
此存储库包含一个复杂的模型上下文协议(MCP)服务器 通过...实现 快速API.该项目展示了先进的API设计模式 包括OAuth2身份验证、动态API发现和全面的群 可以部署到AWS Fargate的管理功能。
特性
🔐 身份验证和安全
- OAuth2与JWT:承载令牌认证系统
- 用户管理:内置用户数据库,具有基于角色的访问权限
- 受保护的端点:需要身份验证的安全API操作
- 发展模式:与简单令牌身份验证向后兼容
🔍 增强型MCP代理
- 动态API发现:从OpenAPI元数据中自动发现端点
- 通用操作支持:执行任何发现的API操作
- 回退兼容性:静态YAML配置的优雅降级
- 10倍以上的操作:全面的端点覆盖与静态配置
🤖 OpenAI集成
- GPT-4o-mini型号:由OpenAI最新迷你模型驱动的快速、经济高效的人工智能
- 智能对话:具有高级推理的自然语言界面
- 智能MCP操作:AI理解用户意图并执行适当的MCP操作
- 会话上下文:维护对话历史记录,以实现更好的互动
- 模型灵活性:在GPT-4o-mini、GPT-4o和其他型号之间切换
- API终点:用于聊天和智能查询功能的RESTful端点
💬 交互式界面
- 交互式CLI:具有流式响应的全功能命令行界面
- web界面:用于浏览器交互的现代网络聊天界面
- 统一数据库:两个接口使用相同的MCP数据库和身份验证
- 会话管理:用户特定的对话保存和恢复
- 实时流媒体:实时响应流媒体,提供即时反馈
- 选项卡完成:命令和工具名称的智能完成
📊 综合API
- CRUD操作:完整的畜群管理(创建、读取、更新、删除)
- 搜索和筛选:使用灵活的参数按名称搜索畜群
- 分页:具有跳过/限制控制的高效数据检索
- 统计:实时牛群分析和报告
- 健康监测:系统健康检查和数据库状态
🚀 高级操作
- MCP执行:受保护的操作执行端点
- 广播系统:向连接的客户端广播消息
- 模型列表:可用的MCP型号和功能
- 实时分析:实时系统统计和性能指标
快速开始
-
安装依赖项:
pip install -r requirements.txt -
配置OpenAI(可选):
export OPENAI_API_KEY="your-openai-api-key-here" -
为数据库添加种子:
python -m app.seed -
启动服务器:
uvicorn app.main:app --reload -
获取访问令牌:
curl -X POST "http://localhost:8000/api/v1/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "username=johndoe&password=secret" -
尝试交互式代理:
# Interactive CLI (uses MCP database authentication) python interactive_agent.py # Web interface (in separate terminal, same database) python web_interface.py # Visit http://localhost:8080 and login with johndoe/secret # Demo all features python demo_agent_usage.py # Test unified database access python test_unified_database.py
数据库路径可以通过配置 DATABASE_PATH 环境变量。
如果未设置,则默认为 mcp.db 在工作目录中。
AI模型配置
系统现在使用 GPT-4o-mini 作为最佳性能和成本的默认模型:
🤖 当前型:GPT-4o-mini
- 演出:对于大多数任务,速度比GPT-4快2倍
- 成本:每个代币的成本显著降低
- 质量:交互式聊天和MCP操作的高质量响应
- 可用性:最新的OpenAI模型,提高了效率
🔄 模型切换
- 命令行界面:使用
/model <name>切换模型 - 可用型号:gpt-4o-mini、gpt-4o、gpt-4涡轮增压、gpt-3.5涡轮增压
- 会话持续:跨CLI会话保存模型选择
- web界面:默认情况下使用gpt-4o-mini
💡 模型建议
- gpt-4o-mini:最适合交互式聊天和一般任务(默认)
- gpt-4o:用于复杂的推理任务
- gpt-3.5涡轮增压:基本交互的回退
统一数据库系统
CLI和web界面现在都使用 同一MCP数据库 对于身份验证和操作:
🔑 共享认证
- 两个接口都对同一用户数据库进行身份验证
- CLI和web使用相同的JWT令牌系统
- 跨界面的一致用户管理
💾 数据库一致性
- 用户帐户:在CLI和web界面之间共享
- MCP操作:两者都使用相同的API终结点
- 工具发现:两个界面中都有相同的工具集
- 对话历史:界面特定但用户隔离
🔄 跨界面优势
- 登录
johndoe/secret或alice/wonderland在两个界面中 - 通过web界面执行的MCP操作会影响与CLI相同的数据库
- 一致的工具可用性和功能
- 每个用户的统一会话管理
认证
可用用户
- 约翰多 / 秘密 -活跃用户帐户
- 爱丽丝 / 仙境 -活跃用户帐户
OAuth2流
# Get access token
curl -X POST "http://localhost:8000/api/v1/token" \
-d "username=johndoe&password=secret"
# Use token in requests
curl -H "Authorization: Bearer YOUR_TOKEN" \
"http://localhost:8000/api/v1/herd"
增强的代理使用
动态发现模式(推荐)
# List all dynamically discovered operations
python -m agent http://localhost:8000 --list-tools
# Execute any operation with parameters
python -m agent http://localhost:8000 --execute health_check_api_v1_health_get --token YOUR_TOKEN
# Create new herd
python -m agent http://localhost:8000 --execute create_herd_api_v1_herd_post \
--params '{"name": "New Farm", "location": "Colorado"}' --token YOUR_TOKEN
静态配置模式
# Traditional static configuration
python -m agent http://localhost:8000 --token YOUR_TOKEN
增强型代理演示
体验全部功能:
python demo_enhanced_agent.py
这表明:
- 动态与静态发现比较
- 所有可用操作执行
- 错误处理和回退机制
- 实时牛群管理操作
交互式代理演示
体验AI驱动的交互式代理:
CLI界面:
python interactive_agent.py
# Default: GPT-4o-mini model
# Use /model gpt-4o to switch models
功能:实时聊天、流式响应、命令系统、标签完成
Web界面:
python web_interface.py
# Visit http://localhost:8080
# Login with johndoe/secret or alice/wonderland
# Uses GPT-4o-mini by default
特点:现代web UI、MCP数据库身份验证、实时消息传递
功能演示:
python demo_agent_usage.py
这表明:
- OpenAI集成和聊天功能
- 智能MCP操作执行
- 自然语言查询处理
- API端点使用示例
API操作
核心畜群管理
GET /api/v1/herd-按页码列出畜群POST /api/v1/herd-创建新群GET /api/v1/herd/{id}-获取特定畜群PUT /api/v1/herd/{id}-更新畜群DELETE /api/v1/herd/{id}-删除畜群
高级功能
GET /api/v1/herd/search/name-按名称搜索畜群GET /api/v1/herd/stats-获取牛群统计数据GET /api/v1/health-系统健康检查
受保护的MCP操作
POST /api/v1/mcp/execute-执行MCP操作POST /api/v1/mcp/broadcast-广播消息GET /api/v1/mcp/models-列出可用型号
OpenAI代理端点
POST /api/v1/agent/chat-与OpenAI代理直接聊天POST /api/v1/agent/query-使用自然语言的智能MCP查询GET /api/v1/agent/capabilities-代理功能和配置GET /api/v1/agent/tools-可用的MCP工具GET /api/v1/agent/status-代理运行状态
身份验证端点
POST /api/v1/token-OAuth 2令牌登录GET /api/v1/users/me-当前用户信息GET /api/v1/users/me/profile-详细简介
测试
# Run all tests
pytest -q
# Run specific test files
pytest tests/test_agent.py -v
pytest tests/test_list_herd.py -v
容器部署
# Build container
docker build -t mcp .
# Run container
docker run -p 8000:80 mcp
基础设施
这 terraform/ 目录提供AWS部署配置:
- ECR存储库:容器图像存储
- Fargate服务:无服务器容器部署
- 负载均衡器:高可用性和可扩展性
cd terraform
terraform init
terraform plan
terraform apply
文档
项目结构
├── app/ # FastAPI application
│ ├── api/v1/endpoints/ # API route handlers
│ ├── core/ # Configuration and security
│ ├── models.py # Database models
│ ├── schemas.py # Pydantic schemas
│ └── services/ # Business logic
├── agent/ # Enhanced MCP agent
├── tests/ # Test suite
├── terraform/ # AWS infrastructure
└── demo_enhanced_agent.py # Full capabilities demo
MCP发现文件可在以下网址获得 model_context.yaml 用于静态配置。
