Token导航 LogoToken导航TokenDH.com
MCP Hello World Rust Lmstudio logo
AI代理未说明官方级别未说明来源级核验

MCP Hello World Rust Lmstudio

MCP Server

一个用Rust编写的MCP(Model Context Protocol)服务器,专为LM Studio设计,提供标准化的协议实现和集成指南。

工具数

1

提示词数

0

GitHub Stars

1

资源数

0
AI开发Rust本地部署JSON-RPC

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

veltrea

提供方

veltrea

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

LM Studio的MCP Hello World

这是一个用Rust编写的最小的、独立的MCP(模型上下文协议)服务器,专门设计为 LM 工作室.

💡 目的

虽然官方的MCP SDK提供了高级抽象,但LM Studio目前有具体的、未记录的要求(黄金法则),这可能会导致标准实现失败。

\[!注意\] 这些观察结果是在调试会话期间收集的 2026-02-05 同时试图让MCP服务器在LM Studio中工作。随着LM Studio的快速发展,这些应该被视为当前的“提示”,而不是官方规范。

该项目使用标准输入/输出上的原始JSON-RPC从头开始实现协议,以准确演示如何满足当今的这些要求。

🏆 人工智能辅助开发集成指南

AI助手喜欢 谷歌反重力 已经对标准MCP规范有了深入的了解。通过简单地提供这4个“桥接规则”作为外部约束,您通常可以一次性为LM Studio生成一个完全兼容的小型MCP服务器:

基于一些尝试和错误 2026-02-05,以下实现细节似乎可以确保与当前版本的LM Studio的稳定集成:

  1. 二进制位置:当二进制文件位于特定目录结构中时,LM Studio看起来最稳定。

- 推荐路径: ~/.lmstudio/extensions/plugins/mcp/ / - 配置您的 mcp.json 指向此位置的二进制文件。

  1. 协议版本验证:在 initialize 握手时,LM Studio发送 protocolVersion (例如。, 2025-06-18).将此确切版本镜像回客户端可以提高兼容性。
   // snippet from main.rs
   "initialize" => {
       let client_version = req.params.as_ref()
           .and_then(|p| p.get("protocolVersion"))
           .and_then(|v| v.as_str())
           .unwrap_or("2024-11-05");

       let response = JsonRpcResponse {
           jsonrpc: "2.0".to_string(),
           result: Some(serde_json::json!({
               "protocolVersion": client_version, // Mirror client's version
               "capabilities": { "tools": {} },
               "serverInfo": { "name": "mcp-hello-world", "version": "0.1.0" }
           })),
           id: req.id,
       };
   }
  1. 严格的JSON-RPC合规性(否 null 错误):LM Studio的解析器可能对以下内容敏感 null 价值观。对于成功的响应,省略以下内容更安全 error 完全字段,而不是将其设置为 null.
   #[derive(Debug, Serialize)]
   struct JsonRpcResponse {
       pub jsonrpc: String,
       #[serde(skip_serializing_if = "Option::is_none")]
       pub result: Option,
       #[serde(skip_serializing_if = "Option::is_none")] // Field is omitted if None
       pub error: Option,
       pub id: Option,
   }
  1. 工具调用响应结构:工具输出必须包装在 content 数组并包含 isError 旗帜。
   "tools/call" => {
       let response = JsonRpcResponse {
           jsonrpc: "2.0".to_string(),
           result: Some(serde_json::json!({
               "content": [{ "type": "text", "text": "Hello, World!" }],
               "isError": false
           })),
           error: None,
           id: req.id,
       };
   }

🚀 入门指南

先决条件

  • (货物)

构建

cargo build --release

运行(独立)

您可以在终端中手动测试服务器:

# Send an initialize request
echo '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2025-06-18"},"id":1}' | ./target/release/mcp-hello-world

🛠 特性

  • 标准握手:支持 initializenotifications/initialized.
  • 问候工具:提供简单 hello 验证功能的工具。
  • 文件记录:用途 flexi_logger 将日志输出到与可执行文件位于同一目录中的文件中,有助于后台调试。

📄 许可证

麻省理工学院

目录标签

目录标签

AI开发Rust本地部署JSON-RPCMCP协议LMStudio

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP