代码参考优化器

一个高级的MCP服务器,通过AST解析智能提取最小相关代码上下文,分析代码差异并优化导入,显著减少AI助手的令牌使用。

  • by FosterG4
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 fosterg4/mcpsaver

使用说明

代码引用优化器MCP服务器

一种先进的MCP(模型上下文协议)服务器,它使用AST解析智能地提取最小的相关代码上下文,分析代码差异,并优化导入,从而大大减少AI助手的令牌使用。

主要特点

  • 智能上下文提取:使用AST解析仅识别和提取相关代码段
  • 多语言支持:Types/JavaScript、Python、Go、Rust、Java、C++等
  • 智能高速缓存:具有可配置持久性和可定制存储路径的LRU缓存
  • 令牌优化:过滤不必要的代码,同时保持语义完整性
  • 差异分析:通过语义理解提供最小、集中的代码差异
  • 导入优化:消除未使用的导入,并建议整合机会
  • 可配置的:通过具有持久设置的工具进行运行时配置
  • 简单集成:基于stdio的服务器和可选的HTTP服务器,易于与任何MCP客户端集成

快速入门(STDIO)

  • 一次性(推荐):
npx -y @fosterg4/mcpsaver

您应该看到: Code Reference Optimizer MCP server running on stdio.

  • 全局(可选):
npm i -g @fosterg4/mcpsaver
mcpsaver

HTTP模式

在端口8081上启动HTTP服务器(默认):

npx -y @fosterg4/mcpsaver mcpsaver-http
# or after build
npm run start:http

配置您的MCP客户端以使用HTTP二进制文件(如果支持),例如:

{
  "mcpServers": {
    "mcpsaver": { "command": "mcpsaver-http", "env": { "PORT": "8081", "LOG_LEVEL": "info" } }
  }
}

与MCP客户端一起使用

添加到MCP客户端配置中(示例 mcpServers.json):

{
  "mcpServers": {
    "mcpsaver": {
      "command": "npx",
      "args": ["-y", "@fosterg4/mcpsaver"],
      "env": {}
    }
  }
}

可用工具

该服务器提供7个强大的代码分析和优化工具:

🔍 extract_code_context

使用AST解析提取最小的、集中的代码上下文。智能地识别特定符号的相关代码段、导入和依赖关系。

{
  "filePath": "path/to/file.ts",
  "targetSymbols": ["myFunc", "MyClass"],
  "includeImports": true,
  "maxTokens": 1000
}

必需: filePath | 可选的: targetSymbols, includeImports, maxTokens

💾 get_cached_context

检索以前提取和缓存的代码上下文,以便在不重新解析的情况下快速访问。

{ "filePath": "path/to/file.ts", "cacheKey": "optional-key" }

必需: filePath | 可选的: cacheKey

📊 analyze_code_diff

通过语义理解和最小更新建议对代码差异进行智能分析。

{
  "filePath": "path/to/file.ts",
  "oldContent": "export function a() { return 1 }",
  "newContent": "export function a() { return 2 }"
}

必需: filePath, oldContent, newContent

🧹 optimize_imports

分析和优化导入语句,以消除冗余并提高代码效率。

{ "filePath": "path/to/file.ts", "usedSymbols": ["useEffect", "useMemo"] }

必需: filePath | 可选的: usedSymbols

⚙️ get_config

检索缓存行为、提取参数等的当前配置设置。

{ "section": "cache" }

可选的: section (缓存、提取、导入、差异、性能、语言、日志记录、安全)

🔧 update_config

更新配置设置,包括缓存策略、令牌限制和性能阈值。

{
  "config": {
    "cache": { "enablePersistence": true, "persistencePath": "/custom/cache/path" },
    "extraction": { "maxTokens": 2000 }
  }
}

必需: config

🔄 reset_config

将所有配置设置重置为默认值。

{}

无需参数

注意:工具结果作为MCP内容返回,其中包含一个 text 包含结果JSON的项,例如。

{
  "content": [{ "type": "text", "text": "{\n  \"...\": true\n}" }]
}

附加MCP功能

  • 提示:已列出但为空; get_prompt 返回 MethodNotFound。
  • 资源:已列出但为空;读取资源会返回MethodNotFound。
  • 根:将当前工作目录公开为单个根目录 workspace.
  • 采样:短粗; sampling/createMessage 返回 MethodNotFound。

例子

看 docs/EXAMPLES.md 查看每个工具的端到端请求示例。

配置

  • 呼叫 get_config, update_config, reset_config 管理运行时设置。
  • 如果支持,您还可以通过MCP客户端设置环境变量(例如。, LOG_LEVEL).

结构化日志记录

服务器使用轻量级结构化记录器。通过配置 get_config/update_config 或env:

  • 级别: config.logging.level (跟踪|调试|信息|警告|错误)
  • 文件日志记录: config.logging.enableFileLogging 和 config.logging.logPath

发展

npm ci
npm run build
npm start     # run built server (stdio)
npm run start:http # run built server (http)
npm run dev   # tsc --watch
npm test
npm run lint
npm run type-check

出版(维护者)

npm login
npm run clean && npm run build
npm version patch
npm publish --access public

许可证

麻省理工学院——见 LICENSE.