返回市场
结构化MCP服务器

结构化MCP服务器

作者:RGGH7 星标更新:2025-04-09

项目介绍

Rust

🔍 使用Rust的MCP服务器及Inspector示例:SSE传输与加法工具

来源: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服务器
  • ✅ 将MCP客户端连接到服务器
  • ✅ 注册自定义工具:AddTool,用于加两个数
  • ✅ 通过MCP列出注册的工具
  • ✅ 与RIG集成并使用该工具提示LLM代理

🧠 代码概述

#[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工具。

主函数设置:

  • 跟踪
  • MCP服务器和传输(SSE)
  • 初始化并列出可用工具的MCP客户端
  • 使用MCP工具的具有OpenAI后端的RIG代理

然后代理运行提示:

let response = agent.prompt("Add 10 + 10").await;

🧪 示例输出

成功运行时,你会看到如下日志:

初始化:Ok(...)
工具:Ok([...])
构建RIG代理
提示RIG代理
代理响应:Some("20")

🧰 技术栈

  • 🦀 Rust与tokio
  • 📡 来自mcp_core的SSE传输
  • 🔧 MCP服务器/客户端架构
  • 🤖 具有OpenAI模型的RIG代理
  • 🌐 MCP Inspector web界面

📦 依赖项

确保你的Cargo.toml中有这些依赖项:

[dependencies]
tokio = { version = "1", features = ["full"] }
anyhow = "1"
serde_json = "1"
mcp_core = "..."
mcp_core_macros = "..."
rig = "..."

用适当的版本号替换...,基于你的环境。


📍 Inspector GUI

访问http://localhost:5173以查看和交互MCP Inspector UI。


✅ 测试日志样本

查询参数:{ transportType: 'sse', url: 'http://localhost:3001/sse' }
已连接到SSE传输
已连接MCP客户端到后端服务器传输
设置了MCP代理
收到sessionId为cdd4a8be-57e2-44e3-9b81-3df300e86f22的消息

截图来自2025-04-07 23-22-21


📬 问题或反馈?

欢迎随时打开一个问题或开始讨论!