使用说明
MCP流式HTTP服务器和客户端
该项目演示了如何构建和交互 模型上下文协议(MCP) Python中的流式HTTP服务器和客户端。它包括无状态服务器、受Google OAuth保护的服务器和能够与MCP工具集交互的Gemini驱动的ADK客户端。
1.️⃣ 无状态流式服务器
地点: streamable_http_server/1-stateless-streamable/
这些是 无状态, 可流式传输 使用模型上下文协议(MCP)构建的HTTP服务器。无状态意味着在工具调用过程中不会保留内存或会话。
目录
server1.py:提供add_numbers和subtract_numbers工具。server2.py:提供multiply_numbers和divide_numbers工具。main.py:运行Launchpad脚本server1或server2来自CLI。
🚀 入门指南
-
从根目录创建虚拟环境
# macOS / Linux uv venv source ./.venv/bin/activate # Windows (PowerShell) uv venv .venv\scripts\activate -
安装要求
uvuv sync --all-groups -
运行服务器
-
跑
server1(加+减):uv run --active streamable_http_server/1-stateless-streamable/main.py --server server1 -
跑
server2(乘+除):uv run --active streamable_http_server/1-stateless-streamable/main.py --server server2
-
2.️⃣ Google OAuth–受保护的服务器
地点: streamable_http_server/2-google-oauth-simple-server/
此服务器演示了 OAuth代理模式 随着 谷歌作为上游供应商。它保护Google OAuth 2.0背后的MCP服务器,允许MCP客户端使用 DCR(动态客户端注册), PKCE,以及 环回重定向URI.
server.py:MCP资源服务器充当Google的OAuth代理。README.md:设置、环境变量和流程的详细说明。
3.️⃣ MCP流式HTTP客户端
地点: streamable_http_client/
这是一个教育项目,演示如何连接到 模型上下文协议(MCP) 流式HTTP服务器,从服务器中发现工具,并使用 谷歌ADK代理 由...驱动 谷歌双子座.
⚙️ 安装说明
-
创建虚拟环境
# macOS / Linux uv venv source ./.venv/bin/activate # Windows (PowerShell) uv venv .venv\scripts\activate -
安装依赖项
uv sync --all-groups -
设置环境变量
创建一个
.env内部文件streamable_http_client:GOOGLE_API_KEY=your-google-api-key -
配置MCP服务器
编辑
streamable_http_client/theailanguage_config.json文件:{ "mcpServers": { "server1": { "type": "http", "url": "http://localhost:3000/mcp" }, "server2": { "type": "http", "url": "http://localhost:3001/mcp" }, "terminal": { "type": "stdio", "command": "/Users/theailanguage/.local/bin/uv", "args": [ "--directory", "/Users/theailanguage/mcp/mcp_stremable_http/stdio_server/1-terminal-server", "run", "terminal_server.py" ] } } } -
运行客户端
uv run universal_client/1-google-adk-gemini-mcp-client/cmd.py这将启动一个交互式命令行聊天循环,通过HTTP或STDIO连接到MCP服务器,并使用从每个服务器发现的工具与Gemini驱动的ADK代理进行交互。
4.️⃣ Google OAuth–受保护的客户端
地点: universal_client/3-google-oauth-simple-client/
此客户端演示如何对 Google OAuth–受保护的MCP服务器 使用OAuth代理模式。它
- 处理环回重定向URI。
- 自动支持DCR+PKCE。
- 与受保护的工具交互(
get_time,get_user_info).
运行方式:
source .venv/bin/activate
uv run ./universal_client/3-google-oauth-simple-client/client.py
5.️⃣ 即将推出
🧠 状态流式服务器
A. 有状态的, 可流式传输 使用MCP的HTTP服务器,在工具调用之间维护状态,并启用可恢复的事件流。
🔧 Claude桌面集成
如果要将这些MCP服务器与Claude Desktop集成,请使用以下配置:
{
"mcpServers": {
"server1": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:3000/mcp"
]
},
"server2": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:3001/mcp"
]
}
}
}
将此另存为 claude_desktop_config.json.
警告!-这使用了一个名为的第三方软件包 mcp-remote 这不是官方的人类学或克劳德方案
📜 许可证
此存储库和其中的代码根据 GNU通用公共许可证v3.0。请参阅 LICENSE 文件以获取完整详细信息。
内置于❤️ 靠近 AI语言 教授和演示如何使用FastMCP、Pydantic和ADK在Python中创建可流式传输的MCP服务器和代理。