来源:https://dev.to/joshmo_dev/using-model-context-protocol-with-rig-m7o
该项目演示了如何使用服务端发送事件(SSE)来设置MCP(模型上下文协议)服务器和客户端。它包括一个简单的加法工具,并与RIG代理集成以进行LLM提示。
克隆此仓库并运行:
cargo run
在另一个终端中启动MCP Inspector:
npx @modelcontextprotocol/inspector sse http://127.0.0.1:3001/sse
你会看到如下输出:
正在启动MCP Inspector...
代理服务器监听端口3000
新的SSE连接
查询参数:{ transportType: 'sse', url: 'http://localhost:3001/sse' }
SSE传输:url=http://localhost:3001/sse, headers=
已连接到SSE传输
已连接MCP客户端到后端服务器传输
创建了web应用传输
设置了MCP代理
🔍 MCP Inspector已在http://localhost:5173运行🚀
你现在可以在http://localhost:5173查看web界面。
ServerSseTransport设置自定义MCP服务器AddTool,用于加两个数#[tool(
name = "Add",
description = "将两个数字相加。",
params(a = "要相加的第一个数字", b = "要相加的第二个数字")
)]
async fn add_tool(a: f64, b: f64) -> Result<ToolResponseContent> {
Ok(tool_text_content!((a + b).to_string()))
}
这定义了在MCP服务器中注册的Add工具。
主函数设置:
然后代理运行提示:
let response = agent.prompt("Add 10 + 10").await;
成功运行时,你会看到如下日志:
初始化:Ok(...)
工具:Ok([...])
构建RIG代理
提示RIG代理
代理响应:Some("20")
mcp_core的SSE传输确保你的Cargo.toml中有这些依赖项:
[dependencies]
tokio = { version = "1", features = ["full"] }
anyhow = "1"
serde_json = "1"
mcp_core = "..."
mcp_core_macros = "..."
rig = "..."
用适当的版本号替换
...,基于你的环境。
访问http://localhost:5173以查看和交互MCP Inspector UI。
查询参数:{ transportType: 'sse', url: 'http://localhost:3001/sse' }
已连接到SSE传输
已连接MCP客户端到后端服务器传输
设置了MCP代理
收到sessionId为cdd4a8be-57e2-44e3-9b81-3df300e86f22的消息
欢迎随时打开一个问题或开始讨论!