Smooth.CodeRepositoryIndexMcp 服务器端实现

使用说明(Markdown 格式)

  • 项目简介

    • 该项目是一整套基于 MCP 的后端/server 实现,旨在为 AI 客户端提供对代码仓库的上下文信息、资源数据、工具注册与调用以及提示模板渲染能力。核心组件包括 ASP.NET Core HTTP API 服务(HTTP/SSE 传输)、STDIO 传输的 MCP 服务,以及一组工具用于查询与操作索引(如 get_file、get_agents_context、get_domain_map、search_codebase 等)。
  • 主要功能点

    • MCP 协议支持:通过 JSON-RPC 与 AI 客户端进行请求/响应交互,支持查询、执行工具、获取资源/AGENTS.md、获取域映射等能力。
    • 资源与工具管理:托管 AGENTS.md、域映射、资源与代码片段等资源,注册并执行 Tools,提供对外部功能的访问能力。
    • Prompt 模板渲染:渲染用于对话的系统提示片段和上下文信息,帮助 LLM 客户端获取一致的上下文。
    • 多传输支持:既可通过 STDIO(标准输入/输出)传输,也可通过 HTTP/ SSE 流式传输,适配不同编辑器或 IDE 的集成方式。
    • 会话与域声明:服务端维护会话状态,声明各 bounded context 的能力与资源范围,支持对多仓库的统一管理。
    • 索引与检索集成:结合本仓库的代码索引组件,提供对代码、AGENTS.md、域映射等的快速查询能力,且支持跨仓库模式。
  • 安装与运行步骤

    • 先决条件
      • .NET 10 SDK
      • Git(用于仓库根路径解析与变更检测等)
      • 可选:ripgrep(用于外部检索优化)
    • 构建与发布
      • 使用 .NET 工具构建或直接运行对应的 API/CLI 项目,以启动 MCP HTTP/API 服务器或 STDIO 服务器。
    • 运行模式与传输
      • HTTP/API 模式:通过 API 服务暴露 MCP 端点,客户端可以通过 HTTP 请求进行 JSON-RPC 调用。
      • STDIO 模式:通过标准输入/输出进行 JSON-RPC 通信,适用于代码代理、集成环境等。
  • 服务器配置(MCP 客户端连接所需的最小信息)

    • serverName: smooth-code-repo-index
    • command: dotnet
    • args: ["run", "--project", "src/Smooth.CodeRepositoryIndexMcp.Api/Smooth.CodeRepositoryIndexMcp.Api.csproj", "--root", "<仓库根路径>", "--workspace", ".index"]
    • 说明:以上配置用于在客户端启动一个 MCP 服务器实例,HTTP API 将对外暴露 MCP 服务。root 指定要索引的代码仓库根目录,workspace 指定索引数据的全局工作区目录(通常为 .index/),MCP 客户端通过 serverName 与对应的 command/args 与服务器建立连接并进行后续的 JSON-RPC 调用。
  • 基本使用方法

    • 启动服务器后,客户端(LLM/AI 辅助工具)可通过 MCP 协议向服务器请求以下能力:
      • 获取域映射、加载 AGENTS.md 内容、搜索代码、根据路径定位上下文、获取特定上下文的 AGENTS.md、以及执行其他工具。
    • 常见操作流程示例(概览)
      • 初始化连接并获取服务器信息与能力描述
      • 使用 where_am_i、get_domain_map、get_agents_context 等工具获取上下文与资源
      • 使用 search_codebase 等工具在索引中检索代码并获取相关上下文
      • 根据需要加载目标 AGENTS.md 内容以优化对话上下文
    • 断开连接与清理
      • 正确关闭 MCP 会话,按需要停用 HTTP/STDIO 服务,或在多仓库场景下清理缓存与索引数据。
  • 备注

    • 本实现包含 HTTP API 服务端、STDIO 转 transport、以及一整套工具/查询/索引组件,能够支持多仓库场景,具备完整的服务器端功能集合,符合 MCP 服务器的核心职责与工作流。

服务器信息