使用说明
MCP研讨会
该项目展示了 模型上下文协议(MCP) 具有多个服务器架构和AI驱动的代理客户端。该实现在两个版本中都可用 .NET 和 python.
架构概述
┌─────────────────────────────────────────────────────────────────┐
│ MCP Agent Client │
│ (Interactive AI Assistant) │
└──────────────┬──────────────────────────┬───────────────────────┘
│ │
│ STDIO │ HTTP (Streamable)
│ │
┌──────────────▼──────────────┐ ┌─────────▼───────────────────────┐
│ MCP Local Server │ │ MCP Bridge │
│ (In-memory tickets) │ │ (MCP over HTTP) │
│ :STDIO │ │ :5070 │
└─────────────────────────────┘ └─────────────┬───────────────────┘
│ REST API
│
┌─────────────▼───────────────────┐
│ Remote Server │
│ (REST API Backend) │
│ :5060 │
└─────────────────────────────────┘
组件
| 组件 | 描述 | 运输 |
|---|---|---|
| 远程服务器 | 带有票证数据的REST API后端 | 端口5060 |
| MCP电桥 | 包装REST API的MCP服务器 | 端口5070(HTTP) |
| MCP本地服务器 | 带有内存数据的独立MCP服务器 | STDIO |
| MCP代理客户端 | 使用MCP服务器的AI代理 | 交互式CLI |
可用的MCP工具
所有MCP服务器都公开了相同的票证管理工具:
| 工具 | 说明 |
|---|---|
GetAllTickets |
获取所有具有可选限制的支持票 |
GetTicket |
通过ID获取支持票(例如,ticket-001) |
UpdateTicket |
更新工单的状态(打开、进行中、已解决、已关闭) |
实现
选择您的首选实施方式:
🔷 .NET实现
- 内置于 .NET 10 和 ASP。NET核心
- 用途 模型上下文协议 NuGet包
- 用途 微软。扩展。人工智能 用于AI集成
- Azure OpenAI用于代理客户端
🐍 Python实现
- 内置于 Python 3.x 和 快速API
- 用途 主控程序 模型上下文协议SDK
- 用途 天蓝色人工智能项目 用于AI集成
- Azure OpenAI用于代理客户端
快速开始
每个实现都包含启动所有服务的脚本:
视窗
# For .NET
cd dotnet
start_all.cmd
# For Python
cd python
start_all.cmd
macOS/Linux
# For .NET
cd dotnet
chmod +x start_all.sh # Make executable (first time only)
./start_all.sh
# For Python
cd python
chmod +x start_all.sh # Make executable (first time only)
./start_all.sh
有关详细的设置说明,请参阅特定于实现的README。
共享数据
所有实现都从共享JSON文件中读取票证数据:
data/tickets.json
这确保了数据的一致性。NET和Python实现。
练习(可选)
准备好探索更多了吗?结账 练习.md 用于扩展研讨会的实践任务:
- 添加新的MCP工具(
CreateTicket,DeleteTicket) - 实施票证过滤和搜索
- 向MCP网桥添加身份验证
- 用注释扩展数据模型
- 还有更多奖励挑战!
许可证
麻省理工学院