Supermodel MCP 服务器
使用说明
-
项目简介
- 该仓库实现了一个基于 MCP 的后端服务,用于向 LLM 客户端提供可读取的资源、可执行的工具以及可渲染的提示输出。核心功能包括两种工具(overview 与 symbol_context)、对代码图的缓存与预计算、以及通过 JSON-RPC 进行的请求/响应处理。服务器通过标准输入/输出(stdio)与客户端通信,便于在命令行、容器或管道环境中集成。
-
主要功能点
- 基于 MCP 协议实现核心服务端:支持初始化(initialize)、获取工具列表(tools/list)、执行工具(tools/call)等 JSON-RPC 请求。
- 工具集成:仅实现两种工具,overview(整体架构概览)与 symbol_context(符号上下文分析),输出以 Markdown 形式渲染的文本内容。
- 资源与工具数据:使用对代码仓库的预计算图(graphs)来实现子秒级响应,支持缓存、TTL、LRU 驱逐等缓存策略。
- 预计算与缓存:提供 precache 指令用于在启动时对仓库进行图谱预计算并持久化到磁盘,减少运行时 API 调用。
- 无缓存回退与 API 回退:若无本地缓存,且未开启无 API 回退,则可回退到 Supermodel 的 API 进行分析;可通过配置禁用回退以实现缓存优先的运行模式。
- 传输协议:默认通过 stdio 进行传输,便于在本地开发、容器化部署和与 Inspector 等工具配合使用。
-
安装步骤
- 获取代码并安装依赖
- 克隆仓库、进入项目目录后执行 npm install。
- 构建和运行
- 构建项目:npm run build
- 启动服务器(默认工作目录可选):node dist/index.js
- 启动并带有工作目录:node dist/index.js /path/to/repo
- 启动并在启动时执行预计算缓存:node dist/index.js /path/to/repo --precache
- 运行与验证
- 可以使用 MCP Inspector 或集成的场景进行集成测试;服务器会暴露标准的 MCP JSON-RPC 接口,示例请求包含 initialize、tools/list、tools/call 等。
- 获取代码并安装依赖
-
服务器配置(给 MCP 客户端的启动信息示例,非客户端代码) 以下为配置示例的结构描述,请以 JSON 形式提供给客户端配置工具。注:实际使用中,MCP 客户端不需要解析这段注释性信息,仅需知道服务器命令即可启动。示例仅为帮助理解配置字段含义。
{ "mcpServers": { "supermodel": { "command": "npx", "args": ["-y", "@supermodeltools/mcp-server"], "env": { "SUPERMODEL_API_KEY": "your-api-key", "SUPERMODEL_BASE_URL": "https://api.supermodeltools.com", "SUPERMODEL_CACHE_DIR": "/path/to/cache" // 可选,缓存目录 } // 说明: // - SUPERMODEL_API_KEY: 调用 Supermodel API 时所需的密钥,必要时应在环境变量中配置 // - SUPERMODEL_BASE_URL: API 基础地址,默认值为 https://api.supermodeltools.com // - SUPERMODEL_CACHE_DIR: 预计算图的本地缓存位置,若提供,服务器将尝试从该目录加载缓存 // - 其他运行参数请按客户端使用习惯配置 // - 客户端不需要用到此处的代码实现,只需要知道服务器的启动信息 } } }
-
基本使用方法
- 启动后,客户端可以按 MCP 规范向服务器发送以下请求并获得对应响应:
- initialize:进行协议握手,声明能力和服务器信息
- tools/list:获取可用工具清单(overview、symbol_context)
- tools/call:调用指定工具并获取输出(文本内容或错误信息)
- 使用建议
- 首次使用前可通过 precache 提前计算图谱以获得更快响应
- 当处理大仓库时,可通过设置 SUPERMODEL_TIMEOUT_MS 调整 API 超时时间
- 如需离线或缓存优先,可通过 SUPERMODEL_NO_API_FALLBACK 进行模式切换
- 启动后,客户端可以按 MCP 规范向服务器发送以下请求并获得对应响应: