• 项目简介
    • narsil-mcp 是一个用 Rust 编写的 MCP 服务器实现,目标是为大语言模型客户端提供标准化的资源管理、工具注册与执行、以及可自定义的 Prompt 渲染能力,以便在本地环境中进行深度代码理解与分析工作流。
  • 主要功能点
    • MCP 协议核心能力:通过 JSON-RPC 进行请求/响应(如读取资源、调用工具、获取 Prompt 等),并实现会话管理与能力声明。
    • 资源与数据访问:提供对代码资源、文件、项目结构等的读取与检索能力,支持增量索引、历史与变更检测等特性(与 README/实现中的索引机制一致)。
    • 工具注册与执行:内置 76+ 工具,覆盖仓库/符号/依赖等各类分析、查询和操作,LLM 客户端可通过工具调用实现外部功能扩展。
    • Prompt 模板与渲染:定义并渲染可定制的 Prompt 模板,支持多种 LLM 交互模式。
    • 多语言解析与分析支持:树台(Parser) 支持多语言,提供符号提取、调用图、数据流、控流、 taint 分析等分析能力。
    • 安全与隐私:本地化运行,降低外部数据泄露风险,内置安全机制与可配置的规则引擎。
    • 传输协议与前端集成:默认 JSON-RPC over STDIO,另有 SSE、WebSocket 等传输选项,以及前端嵌入与可视化界面(前提是编译时开启 frontend 特性)。
  • 安装与运行
    • 构建与安装(从源代码编译)
      • 克隆仓库并构建 Release 版本:
        • cargo build --release
        • 二进制文件位于 target/release/narsil-mcp
    • 直接安装脚本(README 提供的一键安装脚本也可使用)
      • curl -fsSL https://raw.githubusercontent.com/postrv/narsil-mcp/main/install.sh | bash
    • 运行示例(最小配置):
      • narsil-mcp --repos /path/to/your/project
  • 服务器配置(MCP 客户端需要的启动信息)
    • 服务器名称:narsil-mcp
    • 启动命令与参数示例(以 MCP 客户端配置为目标,实际运行请替换为实际路径和仓库)
    • 配置示例(JSON,描述服务器名称、启动命令以及参数): { "servers": { "narsil-mcp": { "command": "/absolute/path/to/narsil-mcp", "args": ["--repos", "/path/to/your/projects"] } // 如需对接多仓库或启用附加特性,可在此处追加其他服务器条目 } // 说明:以上配置用于 MCP 客户端在启动时对 MCP 服务器进行定位与连接。 // 客户端实际使用时无需更改服务端的实现细节,只需确保 command 与 args 指向正确的可执行文件及工作目录。 }
  • 基本使用方法
    • 启动并索引仓库
      • 启动服务器:narsil-mcp --repos /path/to/your/project
    • 与 MCP 客户端交互
      • 通过 JSON-RPC 2.0 风格的请求与响应进行通信,例如初始化、查询工具、获取资源、执行分析工具等。
    • 常用工作流
      • 通过工具接口读取项目结构、符号、调用图、依赖分析等。
      • 调用 neural/embeddings 等功能进行语义搜索(如需要开启 neural 特性)并结合本地资源。
      • 使用前端可选界面进行可视化分析(需要在编译时开启 frontend 特性)。
  • 备注与注意
    • 该仓库包含大量测试与基准代码,实际发布可通过 cargo 构建产出可执行文件后直接运行。核心实现覆盖 MCP 的服务器端能力、资源/工具管理、以及跨语言分析能力,属于完整的 MCP 服务器实现,而非仅仅是客户端示例。
    • MCP 客户端配置仅需指明服务器启动命令与参数,服务端实现对外暴露的接口将自动被 MCP 客户端发现并使用。

信息

分类

AI与计算