使用LangGraph和Bedrock LLM演示本地流式HTTP MCP
改编自Python MCP SDK和LangChain MCP适配器。
在本地运行的步骤
- 启动MCP服务器
- 使用MCP检查器验证MCP服务器是否正在运行
- 运行python客户端测试MCP服务器
MCP服务器
改编自 LangGraph MCP简单流式Http无状态服务器示例
一个无状态MCP服务器示例,演示了StreamableHttp传输而不维护会话状态。这个例子非常适合理解如何在多节点环境中部署MCP服务器,在这些环境中,请求可以路由到任何实例。在这个仓库的例子中,只使用了一个MCP服务器节点。
特性
- 在无状态模式下使用StreamableHTTP传输(mcp_ses_id=None)
- 每个请求都会创建一个新的临时连接
- 请求之间没有保持会话状态
- 任务生命周期仅限于单个请求
- 适用于多节点环境中的部署
服务器公开了2个工具。
- 添加
- 乘
用法
- 在终端中,确保您位于样本的总文件夹中。不要导航到包含server.py文件的文件夹。
- 启动服务器
# Using default port 3000
uv run mcp-simple-streamablehttp-stateless
# [Optional] Using custom port
uv run mcp-simple-streamablehttp-stateless --port 3000
# [Optional] Custom logging level
uv run mcp-simple-streamablehttp-stateless --log-level DEBUG
# [Optional] Enable JSON responses instead of SSE streams
uv run mcp-simple-streamablehttp-stateless --json-response- 如果它运行正常,您应该看到服务器现在正在本地地址运行,如
http://0.0.0.0:3000MCP服务器将可在/mcp路径。
确保在服务器打开的情况下离开终端,以便在检查器和客户端中使用它。
MCP检查员
https://modelcontextprotocol.io/docs/tools/inspector
- 运行检查器
# This will start the inspector on a different port than the server is running
npx @modelcontextprotocol/inspector- 对于“运输类型”,选择
Streamable HTTP
- 对于URL,添加
http://0.0.0.0:3000/mcp或者您使用的任何本地主机+端口组合
客户端
用Python编写的流式HTTP客户端,用作测试HTTP传输方法的基础文件。这是非常简单的,但展示了如何使用Python SDK mcp.client.streamable_http.
此本地客户端调用 LangGraph代理 它使用亚马逊基岩模型 create_react_agent.
用法
您可以使用 client.py 或 client-readable.py 文件以测试MCP服务器。
- 选项1:
client.py=这是您在大多数示例中看到的,它在末尾有一个print语句,用于查看代理调用的完整响应输出。 - 选项2:
client-readable.py=功能与client.py文件完全相同,除了它添加了一些额外的代码,使代理的整体输出和调用在终端输出中可读。
先决条件
- AWS CLI凭据必须允许访问客户端中调用的Amazon Bedrock模型。
- 跑 aws configure 在命令行界面(CLI)中,验证您是否设置了正确的访问权限,或者您是否假设了一个具有所需权限的配置文件 ~/.aws/credentials 设置(MacOS)。
- 运行以下命令以测试服务器。
# Option 1
python client.py
# Option 2
python client-readable.py要测试来自代理的不同响应,请调整文件中具有 agent.ainvoke() 以传达不同的信息。
