adessoGPT迷你版
通过可流式HTTP协议集成MCP(模型上下文协议)的聊天机器人项目。
建筑
┌─────────────┐ ┌──────────────────┐ ┌─────────────┐
│ Frontend │────▶│ .NET Backend │────▶│ MCP Server │
│ (React) │ │ + Gemini LLM │ │ (Python) │
└─────────────┘ └──────────────────┘ └─────────────┘
│ │
│ MCP Streamable HTTP │
│◀──────────────────────▶│
│ │
┌──────┴──────┐ ┌──────┴──────┐
│ Function │ │ Tools │
│ Calling │ │ - add │
└─────────────┘ │ - get_time │
└─────────────┘组件
| 组件 | 技术 | 描述 |
|---|---|---|
| 前端 | React + Vite | 用户交互聊天界面 |
| 后端 | NET 10 + Gemini | 带 LLM 函数调用的 API 服务器 |
| MCP客户端 | 自定义HTTP客户端 | 实现MCP流式HTTP协议 |
| MCP 服务器 | Python + FastMCP | 通过 MCP 提供工具 |
条件
安装
1.知识库klonen
git clone
cd adesso-gpt2. 设置环境变量
cp .env.example .env编辑 .env 设置您的 API 密钥:
GEMINI_API_KEY=dein_api_key_hier
MCP_URL=http://localhost:8000/mcp3.MCP服务器(Python)
cd mcp-server
pip install mcp[cli] python-dotenv4.后端(.NET)
cd backend-dotnet/AdessoGpt.Api
dotnet restore5.前端(React)
cd frontend
npm install开始
重要 : 这三个组件必须同时运行。
终端1:MCP服务器
cd mcp-server
python server.py
# Läuft auf http://localhost:8000/mcp终端2:后端
cd backend-dotnet/AdessoGpt.Api
dotnet run
# Läuft auf http://localhost:50873号航站楼:前端
cd frontend
npm run dev
# Läuft auf http://localhost:5173打开http://localhost:5173在浏览器。
使用
Chatbot 可以使用 MCP 工具。示例提示:
| Prompt | Tool | 预期答案 |
|---|---|---|
| “是42+17吗?” | add | "59" |
“现在几点了?” get_time | 当前时间 | |
加上100和200。 add | "300" |
MCP工具
MCP 服务器提供以下工具:
add(a: int, b: int) -> int
加两个整数。
get_time(tz: str = "Europe/Berlin") -> str
作为 ISO 字符串返回当前时间。
技术细节
MCP流式HTTP协议
这 McpHttpClient MCP Streamable HTTP 协议:
- 初始化握手:
initialize+notifications/initialized - 会话管理:
Mcp-Session-Id头球 - 工具调用:
tools/callJSON-RPC请求 - SSE解析从服务器发送事件中提取JSON
函数调用流程
1. User: "Was ist 5 + 3?"
2. Backend → Gemini: Prompt + Tool-Definitionen
3. Gemini: Tool Call Request (add, a=5, b=3)
4. Backend → MCP Server: tools/call (add)
5. MCP Server: Führt add(5, 3) aus → 8
6. Backend ← MCP Server: Result (8)
7. Gemini: Formuliert Antwort
8. User: "Das Ergebnis ist 8."项目结构
adesso-gpt/
├── .env.example # Umgebungsvariablen Template
├── backend-dotnet/
│ └── AdessoGpt.Api/
│ ├── Program.cs # API Endpoints + Gemini Integration
│ └── McpHttpClient.cs # MCP Streamable HTTP Client
├── frontend/
│ └── src/
│ └── App.tsx # Chat UI
└── mcp-server/
└── server.py # MCP Server mit Tools许可证
麻省理工学院
