语义项目搜索与符号重命名工具

提供基于语义的项目搜索和AST感知的符号重命名功能,适用于代码编辑和开发环境。

  • by gitlevich
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 gitlevich/mcp-tools

使用说明

mcp工具

两个MCP(模型上下文协议)服务器,用于Claude Code和Cursor:语义项目搜索和AST感知符号重命名。

服务器

项目嵌入

由OpenAI嵌入和ChromaDB支持的语义项目搜索。为您的项目建立索引 .py, .ts, .tsx,以及 .md 将文件存入本地向量数据库,然后通过从代码和文档中返回最相关的块来回答自然语言查询。

暴露的工具:

  • search(query, top_k=10) --按含义而非关键字查找相关代码和文档
  • index_status() --检查索引状态
  • reindex() --强制全面重建

索引在每次搜索时都会增量刷新(基于mtime),因此无需手动重建即可保持最新状态。

要求: 环境中的OpenAI API密钥(OPENAI_API_KEY).

重命名

跨整个代码库的AST感知符号重命名。重命名函数、类、变量、接口和类型别名——更新所有引用,包括导入。

工具暴露:

  • rename_symbol(file_path, old_name, new_name) --重命名并更新所有引用

设置

需要 紫外线 以及Node.js(用于TypeScript重命名)。

# Install Python dependencies
cd project_embed && uv venv && uv pip install -e ".[dev]"
cd ../rename && uv venv && uv pip install -e ".[dev]" && npm install

配置

添加到您的项目 .mcp.json (克劳德代码)或 ~/.cursor/mcp.json (光标):

{
  "mcpServers": {
    "project-embed": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "--directory", "/path/to/mcp-tools/project_embed", "python", "server.py"],
      "env": {
        "PROJECT_ROOT": "/path/to/your/project"
      }
    },
    "rename": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "--directory", "/path/to/mcp-tools/rename", "python", "server.py"],
      "env": {
        "PROJECT_ROOT": "/path/to/your/project"
      }
    }
  }
}

环境变量

变量 服务器 默认值 描述
PROJECT_ROOT 都是 cwd 要索引/重命名的项目根
CHROMA_DIR 项目嵌入 $PROJECT_ROOT/.cache/project-embed 向量索引的存储位置
TSCONFIG_PATH 重命名 $PROJECT_ROOT/frontend/tsconfig.json TypeScript项目的tsconfig路径

测试

cd project_embed && uv run pytest tests/ -v
cd ../rename && uv run pytest tests/ -v