模型上下文协议实现

一个完整的Rust实现的模型上下文协议(MCP),包含客户端和服务器组件,支持工具集成和自然语言交互。

  • by frederickjjoubert
  • Rust
  • 本地部署
  • 更新于
在 GitHub 查看 frederickjjoubert/rust-mcp-playground

使用说明

Rust MCP游乐场

A. 完成工作实施 Rust中的模型上下文协议(MCP),具有客户端和服务器组件以及完整的工具集成。

🚀 快速开始

运行交互式计算器聊天客户端:

cd projects/client
cargo run

这将:

  • 自动启动计算器服务器
  • 通过Anthropic API连接到Claude
  • 为数学运算提供聊天界面

示例用法:

You: add 15 to 27
🤖 Assistant: 15 + 27 = 42

You: what's the square root of 144?
🤖 Assistant: √144 = 12

📁 项目结构

rust-mcp-playground/
├── projects/                     # 🎯 Main implementations
│   ├── client/                   # Chat client with Anthropic integration
│   │   ├── .env                  # ANTHROPIC_API_KEY configuration
│   │   └── src/main.rs           # Full MCP client implementation
│   └── servers/calculator/       # Calculator MCP server
│       └── src/main.rs           # 6 mathematical tools
├── references/                   # 📚 Official examples
│   └── rust-mcp-sdk-examples/    # Complete SDK reference implementations
└── CLAUDE.md                     # Development guidance

✨ 特性

🧮 计算器服务器

  • 6数学工具:加、减、乘、除、平方、sqrt
  • 错误处理:除零、负平方根、无效输入
  • 输入验证:NaN和无穷大检查
  • MCP协议:最新rmcp 0.2.1 #[tool_router] 宏
  • 综合测试:所有操作的单元测试

💬 聊天客户端

  • 自然语言接口:用简单的英语提问
  • 工具发现:自动查找和使用服务器功能
  • 人类整合:使用克劳德进行智能响应
  • STDIO传输:管理服务器进程生命周期
  • 环境配置:来自的API密钥 .env 文件

🛠️ 技术实现

使用官方Rust MCP SDK构建:

  • rmcp 0.2.1-最新MCP实施
  • 协议版本:2024-11-05(现行MCP标准)
  • 运输:STDIO(MCP集成标准)
  • 工具注册:用于干净实现的声明性宏

架构:

// Server tool registration
#[tool_router]
impl Calculator {
    #[tool(description = "Add two numbers together")]
    fn add(&self, Parameters(AddRequest { a, b }): Parameters<AddRequest>) 
        -> Result<CallToolResult, McpError> { /* ... */ }
}

// Client spawns server and discovers tools automatically
let transport = TokioChildProcess::new(command)?;
let client = ().serve(transport).await?;
let tools = client.list_all_tools().await?; // Discovers all 6 calculator tools

📋 先决条件

  1. 锈 (2024年版)

  2. 无烟煤API密钥 -添加到 projects/client/.env:

    ANTHROPIC_API_KEY=your_key_here
    

🧪 发展

运行测试:

cd projects/servers/calculator
cargo test

独立构建组件:

# Server only
cd projects/servers/calculator
cargo build

# Client only  
cd projects/client
cargo build

单独调试服务器:

cd projects/servers/calculator
cargo run  # Waits for STDIO input

📖 学习资源

🎯 是什么让这个特别

这不仅仅是示例代码,而是 功能齐全的MCP系统 这表明:

✅ 现实世界中的MCP集成 具有工作工具发现和执行功能
✅ 生产就绪模式 通过适当的错误处理和验证
✅ 现代Rust MCP开发 使用最新的SDK功能
✅ 完整的客户端-服务器架构 具有自动流程管理功能
✅ 自然语言接口 由克劳德的智慧驱动

非常适合学习MCP概念、构建新的MCP工具或将MCP集成到现有应用程序中!