Nomen MCP Server

使用说明

  • 项目简介
    • Nomen 是一个以 Nostr 为媒介、使用 SurrealDB 作为存储后端的后端服务框架。它实现了 MCP 服务器核心能力:通过 JSON-RPC 规范向 LLM 客户端提供上下文信息、资源数据、以及可注册执行的工具(Tools),并支持基于会话的能力声明、不同传输通道(stdio/HTTP)以及 Context-VM 模式,为 LLM 应用提供可扩展的上下文服务。
  • 主要功能点
    • MCP 服务器核心:处理 MCP 的标准请求/响应(JSON-RPC 2.0),支持初始化、工具查询与调用、以及其他扩展能力。
    • Tools(工具)注册与执行:暴露诸如 nomen_search、nomen_store、nomen_ingest、nomen_messages、nomen_entities、nomen_consolidate、nomen_delete、nomen_groups、nomen_send 等工具,供 LLM 客户端调用。
    • HTTP 与 STDIO 传输:提供 stdio(MCP 服务器模式)和 HTTP 服务器模式,方便在不同框架中接入。
    • 会话与权限:包含会话、群组、权限及分层存取控制的实现路径,能对资源进行分级访问控制。
    • 服务器端集成:与 Nostr、SurrealDB、嵌入式向量服务、上下文虚拟机等组件协同工作,支持资源的管理、嵌入、对话上下文、以及 Conolidation 流程。
    • Context-VM:提供纯 Nostr 请求/响应的上下文 VM,便于不使用 MCP 的代理场景。
  • 安装步骤
    • 克隆仓库并编译
      • cargo build --release
    • 启动 MCP/HTTP 服务器
      • 可通过标准 MCP 客户端规则调用相应启动模式,例如:
        • npmp 版本的命令行示例:nomen serve --stdio
        • 或者 HTTP 模式:nomen serve --http 127.0.0.1:3000
  • 服务器配置(供 MCP 客户端参考,客户端本身不需要此配置)
    • 服务器名称与启动命令(示例 JSON 配置,用于 MCP 客户端了解如何连接服务器) { "server_name": "Nomen MCP Server", "command": "nomen", "args": ["serve", "--stdio"], "transport": "stdio", "notes": "MCP 客户端需要的仅是服务器地址与传输方式的配置信息,实际连接通过 JSON-RPC 请求完成。可选地使用 --http 以 HTTP API 方式暴露 MCP。" }
    • 注释说明
      • server_name:服务器在客户端侧展示的名称,用于区分不同 MCP 服务实例。
      • command/args:启动服务器的命令和参数,客户端无需解析这些字段,只需要知道服务器地址和传输方式。
      • transport:传输协议,stdio 表示通过标准输入输出进行通信,http 表示通过 HTTP 服务进行通信。
  • 基本使用方法
    • 启动方式
      • 通过 STDIO:nomen serve --stdio
      • 通过 HTTP:nomen serve --http 127.0.0.1:3000
    • 与 MCP 客户端的交互要点
      • 客户端向 MCP 服务器发送标准的 JSON-RPC 请求,服务器返回 JSON-RPC 响应。
      • 支持 initialize、tools/list、tools/call 等方法,客户端可通过工具清单了解可用工具并调用执行。
    • 运行后端时的注意事项
      • 服务器将使用 SurrealDB 作为本地持久化存储,嵌入式向量服务及嵌入工具共同工作以提供强大的上下文能力。
      • 如需 Context-VM,MCP 服务器支持 Context-VM 模式与 Nostr 原生请求/响应的交互。

服务器信息