Token导航 LogoToken导航

MCP Server · 开发工具

MCP Codebase Search

一个本地优先的代码库语义搜索系统,使用模型上下文协议(MCP)进行集成,帮助AI助手发现现有代码实现,避免重复代码和错误文件编辑。

stdio官方级别未说明来源级核验工具 9mcp-codebase-ingest
代码搜索本地处理TypeScriptClaude

快速开始

作者 / 组织
teknologika
提供方
teknologika
运行时
Node.js

工具数量

9

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

2

仓库热度

收录来源

1 个

MCP World

选型结论

MCP Codebase Search 属于开发工具类 MCP Server,公开资料标注 9 个工具,通过stdio 本地进程接入,适配 Claude,有可以直接复制的安装命令;接入前要先准备 访问 Token。

分类

开发工具

传输方式

stdio

认证方式

访问 Token

部署方式

公开资料未说明

安装与配置

安装命令

npx mcp-codebase-ingest --path ./my-project --name my-project

客户端配置示例

{
  "mcpServers": {
    "mcp-codebase-search": {
      "command": "npx",
      "args": [
        "mcp-codebase-ingest",
        "--path",
        "./my-project",
        "--name",
        "my-project"
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Node.js,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 9 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

@技术/mcp代码库搜索

使用模型上下文协议(MCP)的代码库的本地第一语义搜索系统

📋 目录

概述

Codebase Memory MCP Server使LLM编码助手能够可靠地发现代码库中的现有代码,防止重复实现和错误的文件编辑。它使用本地嵌入、Tree sitter感知分块和LanceDB进行矢量存储——所有这些都在本地运行,不依赖于云。

版本历史

当前版本: 0.1.16

  • 0.1.16 -刷新的重新扫描日志记录的版本升级和文件可见性下降
  • 0.1.15 -更新后的MCP工具界面和服务器横幅的版本升级
  • 0.1.14 -针对MCP服务器、包清单和变更日志的过时索引检测和版本同步的Bug修复版本发布
  • 0.1.13 -指数新鲜度和 update_codebase_scan 改进
  • 0.1.12 -停滞警告和扩展的MCP工具表面

有关完整的发行说明,请参阅 更改日志.md.

为什么使用这个?

  • 防止重复代码:人工智能助手可以在创建新的实现之前找到现有的实现
  • 精确的代码导航:语义搜索理解代码含义,而不仅仅是关键字
  • 隐私第一:所有处理都在本地进行——你的代码永远不会离开你的机器
  • 快速高效:通过智能缓存优化快速搜索响应
  • 多语言:支持TypeScript、JavaScript、Python、Java、C#、Svelte、HTML、CSS、Markdown等
  • 智能过滤:从搜索结果中排除测试文件和库代码
  • 稳定性检测:索引可能过期时自动发出警告

特性

  • 🔒 本地优先:所有操作都在本地运行,没有外部API调用
  • 🔍 语义搜索:按含义查找代码,而不仅仅是关键字
  • 🌳 树保姆解析:AST感知代码分块以获得有意义的结果
  • 🤖 MCP集成:与MCP兼容的AI助手(Claude、Kiro等)无缝集成
  • 🌐 多语言支持:TypeScript、JavaScript、Python、Java、C#、Svelte、HTML、CSS、YAML、Markdown
  • 🖥️ Web管理UI:通过浏览器界面管理索引代码库
  • ⚡ 性能优化:具有智能结果缓存的快速搜索响应
  • 🎯 智能过滤:从结果中排除测试文件和库代码
  • 📊 详细统计:跟踪块计数、文件计数、语言分布和扫描时间
  • 🔄 增量重新扫描:基于哈希的更改检测--仅重新索引修改过的文件
  • 🚫 锁定文件排除:自动排除 package-lock.json, yarn.lock,以及其他锁定文件
  • ⚠️ 稳定性警告:当索引超过10分钟时,搜索结果包括警告

安装

全局安装(推荐)

npm install -g @teknologika/mcp-codebase-search

这使得三个命令在全球范围内可用:

  • mcp-codebase-search --用于AI助手的MCP服务器
  • mcp-codebase-ingest --用于索引代码库的CLI
  • mcp-codebase-manager --用于管理的Web UI

本地安装

npm install @teknologika/mcp-codebase-search

然后与一起使用 npx:

npx mcp-codebase-ingest --path ./my-project --name my-project
npx mcp-codebase-search
npx mcp-codebase-manager

需求

  • Node.js:22.0.0或更高
  • npm:10.0.0或更高版本
  • 磁盘空间:约500MB用于嵌入模型(首次使用时下载)

快速开始

1.为你的第一个代码库建立索引

mcp-codebase-ingest --path ./my-project --name my-project

输出示例:

Ingesting codebase: my-project
Path: /Users/dev/projects/my-project

Scanning directory...
Parsing files...
Generating embeddings...
Storing chunks...

✓ Ingestion completed successfully!

  Total files scanned: 256
  Supported files: 253
  Chunks created: 2,022
  Duration: 29.7s

Languages detected:
  typescript: 1,800 chunks (200 files)
  javascript: 150 chunks (40 files)
  markdown: 72 chunks (13 files)

2.配置您的MCP客户端

适用于克劳德桌面

添加 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "codebase-search": {
      "command": "mcp-codebase-search",
      "args": []
    }
  }
}

3.设置您的代理.md

添加一个 AGENTS.md 将文件添加到您的项目中,以指示AI助手在创建新代码之前使用代码库搜索工具:

# AGENTS.md — Codebase Dedupe Protocol

## Goal
Prevent duplicate implementations and "wrong file" edits by making **codebase-search** the *only valid source* for claims about what already exists in this repo during this session.

## Tools you MUST use for codebase discovery
- `list_codebases`
- `search_codebases`
- `get_codebase_stats`
- `get_chunk_content`
- `get_file_content`
- `get_adjacent_chunks`
- `list_files`
- `update_codebase_scan`

After updates run `update_codebase_scan` to refresh the index.

## Hard rule: No creation without a Dedupe Ticket
Before adding a new file, module, class, function, or helper, produce a Dedupe Ticket:

**Dedupe Ticket**
- Intent signature: ``
- Queries: ``
- Top matches: ``
- Decision: `reuse | extend | new`
- Rationale: ``

## Graceful degradation
If the MCP server is unavailable: state **DEGRADED MODE** and stop before making changes.

4.开始在您的AI助手中使用

配置后,您的AI助手可以使用这些工具:

  • list_colowers --查看所有具有扫描时间的索引代码库
  • 搜索_折扣 --带有过时警告的语义搜索
  • get_coordinate_stats --代码库的详细统计信息
  • get_chunk_content --按行范围检索特定代码块
  • 获取_文件_内容 --检索完整的文件内容
  • get_adjacent_chunks --检索块的周围上下文
  • 列表文件 --列出代码库中的所有索引文件
  • 更新_降级_扫描 --代码更改后逐步刷新索引
  • 开放式贬值管理器 --代表您在浏览器中启动Manager UI

5.(可选)浏览管理器UI

mcp-codebase-manager

开启 http://localhost:8008 在默认浏览器中,使用可视化界面:

  • 使用过滤器搜索代码库
  • 管理索引代码库
  • 查看统计信息和文件级详细信息
  • 添加具有实时进度跟踪功能的新代码库
  • 重新扫描更改

用法

摄入CLI

这 mcp-codebase-ingest 命令为语义搜索的代码库建立索引。

基本用法
mcp-codebase-ingest --path  --name 
选项
选项说明必填示例
-p, --path代码库目录的路径是--path ./my-project
-n, --name代码库的唯一名称是--name my-project
-c, --config配置文件路径否--config ./config.json
--no-gitignore禁用.gitignore过滤否--no-gitignore
示例
# Index a local project
mcp-codebase-ingest --path ~/projects/my-app --name my-app

# Index with custom config
mcp-codebase-ingest --path ./backend --name backend-api --config ./custom-config.json

# Index without gitignore filtering
mcp-codebase-ingest --path ./my-project --name my-project --no-gitignore

# Re-index an existing codebase (old data is automatically replaced)
mcp-codebase-ingest --path ~/projects/my-app --name my-app
什么会被索引?
  • ✅ TypeScript、JavaScript、Python、Java、C#、Svelte、HTML、CSS、YAML、JSON、Markdown
  • ✅ 嵌套子目录中的文件(递归扫描)
  • ✅ 语义代码块(函数、类、方法、接口)
  • ✅ 元数据标签(测试文件、库文件)
  • ❌ 大于1MB的文件(可配置)
  • ❌ 文件在 .gitignore (默认情况下)
  • ❌ 锁定文件(package-lock.json, yarn.lock, pnpm-lock.yaml等等)
  • ❌ 隐藏目录(以开头 .)
  • ❌ 构建输出(node_modules, dist, build, target等等)

MCP服务器

MCP服务器为AI助手提供了搜索和探索代码库的工具。

启动服务器
mcp-codebase-search

服务器在stdio模式下运行,并通过标准输入/输出与MCP客户端通信。

可用工具
list_codebases

列出所有带有元数据(包括扫描时间)的索引代码库。

输入: 无

输出:

{
  "codebases": [
    {
      "name": "my-project",
      "path": "/path/to/project",
      "chunkCount": 2022,
      "fileCount": 253,
      "lastIngested": "2026-03-21T06:18:24Z",
      "lastModified": "2026-03-21T06:18:24Z",
      "lastScanAge": 57,
      "lastRescanChangedAt": "2026-03-21T06:18:24Z",
      "lastRescanFilesChanged": 4,
      "lastRescanFilesAdded": 1,
      "lastRescanFilesModified": 2,
      "lastRescanFilesDeleted": 1,
      "lastRescanChangedFilePaths": ["src/a.ts", "src/b.ts"],
      "languages": ["typescript", "javascript", "markdown"],
      "status": "active"
    }
  ]
}

lastScanAge 是上次扫描后的秒数。 lastRescan* 字段总结了最近有意义的刷新。用它们来决定是否打电话 update_codebase_scan 在搜索之前。

search_codebases

跨索引代码库执行语义搜索。

输入:

{
  "query": "authentication function",
  "codebaseName": "my-project",
  "language": "typescript",
  "maxResults": 10,
  "includeContent": false,
  "topContentResults": 3
}

除以下字段外的所有字段 query 是可选的。集 includeContent: true 在每个结果中包含完整的源代码,或使用 topContentResults 仅包含最佳匹配的完整源代码。

输出:

{
  "results": [
    {
      "filePath": "src/auth/authenticate.ts",
      "startLine": 15,
      "endLine": 45,
      "language": "typescript",
      "chunkType": "function",
      "similarityScore": 0.92
    }
  ],
  "totalResults": 1,
  "queryTime": 45,
  "staleWarning": "Index is 47 minutes old. Call update_codebase_scan('my-project') to refresh."
}

staleWarning 当索引超过10分钟时出现。默认情况下,内容被排除在外,但 includeContent 和 topContentResults 可以将其包含在搜索响应中。

get_chunk_content

按文件路径和行范围检索特定块的源代码。

输入:

{
  "codebaseName": "my-project",
  "filePath": "src/auth/authenticate.ts",
  "startLine": 15,
  "endLine": 45
}

输出:

{
  "codebaseName": "my-project",
  "filePath": "src/auth/authenticate.ts",
  "startLine": 15,
  "endLine": 45,
  "language": "typescript",
  "chunkType": "function",
  "content": "export async function authenticate(...) { ... }",
  "lineNumberDrift": 0
}

lineNumberDrift 当在偏移的行范围内发现块时,该值为非零——这可能会在代码移动的增量重新扫描后发生。当没有找到精确匹配时,会自动使用模糊±5行搜索。

get_file_content

检索索引文件的完整内容。

输入:

{
  "codebaseName": "my-project",
  "filePath": "src/auth/authenticate.ts"
}

输出:

{
  "codebaseName": "my-project",
  "filePath": "src/auth/authenticate.ts",
  "language": "typescript",
  "content": "// full file content...",
  "chunkCount": 8,
  "totalLines": 245
}
get_adjacent_chunks

检索文件中特定块之前和之后的块。当搜索结果具有分割块类型时,使用此选项,如 method_part_2 或 class_part_5 您需要周围的上下文,而无需获取整个文件。

输入:

{
  "codebaseName": "my-project",
  "filePath": "src/auth/authenticate.ts",
  "startLine": 15,
  "endLine": 45,
  "before": 1,
  "after": 1
}

输出:

{
  "before": [
    {
      "startLine": 1,
      "endLine": 14,
      "chunkType": "function",
      "content": "..."
    }
  ],
  "reference": {
    "startLine": 15,
    "endLine": 45,
    "chunkType": "method"
  },
  "after": [
    {
      "startLine": 46,
      "endLine": 60,
      "chunkType": "method",
      "content": "..."
    }
  ]
}
list_files

列出包含元数据的代码库中的所有索引文件。

输入:

{
  "codebaseName": "my-project"
}

输出:

{
  "files": [
    {
      "filePath": "src/auth/authenticate.ts",
      "language": "typescript",
      "chunkCount": 8,
      "lastIngestion": "2026-03-21T06:18:24Z",
      "sizeBytes": 4521,
      "isTestFile": false,
      "isLibraryFile": false,
      "fileHash": "a1b2c3d4..."
    }
  ],
  "codebaseName": "my-project",
  "totalFiles": 253
}
get_codebase_stats

检索特定代码库的详细统计信息。

输入:

{
  "name": "my-project"
}

输出:

{
  "name": "my-project",
  "path": "/path/to/project",
  "chunkCount": 2022,
  "fileCount": 253,
  "lastIngestion": "2026-03-21T06:18:24Z",
  "languages": [
    { "language": "typescript", "fileCount": 200, "chunkCount": 1800 }
  ],
  "chunkTypes": [
    { "type": "function", "count": 800 },
    { "type": "method", "count": 1022 }
  ],
  "sizeBytes": 1250000
}
update_codebase_scan

通过扫描更改的文件来逐步刷新索引。仅对内容已更改的文件重新索引,未更改的文件将被跳过。扫描成功后,搜索缓存会自动清除。

输入:

{
  "name": "my-project",
  "verbose": false
}

集 verbose: true 在响应中包含添加、修改和删除的文件路径列表。

回应还包括 filesIndexed,报告扫描后索引中存在多少个唯一文件,以及 filesDropped,突出显示了扫描的支持文件和实际进入索引的文件之间的差距。

输出:

{
  "name": "my-project",
  "filesScanned": 253,
  "filesAdded": 2,
  "filesModified": 5,
  "filesDeleted": 1,
  "filesUnchanged": 245,
  "filesIndexed": 250,
  "filesDropped": 3,
  "chunksAdded": 18,
  "chunksDeleted": 12,
  "durationMs": 644,
  "cacheCleared": true,
  "message": "Successfully refreshed codebase 'my-project': 2 added, 5 modified, 1 deleted, 245 unchanged, 250 indexed"
}
open_codebase_manager

在默认浏览器中打开基于web的管理器UI。如果管理器服务器尚未运行,则自动启动它。

输入: 无

输出:

{
  "url": "http://localhost:8008",
  "message": "Opening codebase manager at http://localhost:8008",
  "serverStarted": true
}

管理器UI

Manager UI提供了一个基于浏览器的界面,用于管理索引代码库。

启动管理器
mcp-codebase-manager

开启 http://localhost:8008 自动。

特性

搜索选项卡:

  • 跨所有索引代码库的语义搜索
  • 按代码库和最大结果筛选
  • 排除测试文件和库文件
  • 带有颜色编码置信度评分的可折叠结果:

- 🟢 绿色(0.80–1.00):非常匹配 - 🟡 黄色(0.60–0.79):匹配良好 - 🔵 蓝色(0.00–0.59):较低匹配

管理选项卡:

  • 查看所有带有块计数和上次扫描日期的索引代码库
  • 使用文件夹浏览器和实时进度跟踪添加新代码库
  • 重新扫描代码库以进行增量更新
  • 查看每个文件的详细信息并从索引中删除单个文件
  • 重命名和删除代码库
  • 亮/暗主题切换

经理控制:

  • 退出按钮优雅地停止服务器并关闭浏览器选项卡

配置

配置存储在 ~/.codebase-memory/config.json.

配置文件示例

{
  "lancedb": {
    "persistPath": "~/.codebase-memory/lancedb"
  },
  "embedding": {
    "modelName": "Xenova/all-MiniLM-L6-v2",
    "cachePath": "~/.codebase-memory/models"
  },
  "server": {
    "port": 8008,
    "host": "localhost",
    "sessionSecret": "change-me-in-production"
  },
  "mcp": {
    "transport": "stdio"
  },
  "ingestion": {
    "batchSize": 100,
    "maxFileSize": 1048576,
    "maxChunkTokens": 512,
    "chunkOverlapTokens": 50,
    "storeFullFiles": true
  },
  "search": {
    "defaultMaxResults": 50,
    "cacheTimeoutSeconds": 60
  },
  "logging": {
    "level": "info"
  },
  "schemaVersion": "1.0.0"
}

配置选项

章节选项描述默认
lancedbpersistPathLanceDB存储目录~/.codebase-memory/lancedb
embeddingmodelName拥抱脸部模型Xenova/all-MiniLM-L6-v2
embeddingcachePath模型缓存目录~/.codebase-memory/models
serverport管理器UI端口8008
serverhost管理器UI主机localhost
serversessionSecret会话cookie机密自动生成
ingestionbatchSize每个嵌入批次的块数100
ingestionmaxFileSize最大文件大小(字节)1048576
ingestionmaxChunkTokens每个区块的最大令牌数512
ingestionchunkOverlapTokens块之间的令牌重叠50
ingestionstoreFullFiles存储完整文件内容 get_file_contenttrue
searchdefaultMaxResults默认结果限制50
searchcacheTimeoutSeconds搜索缓存TTL(重新扫描时自动清除)60
logginglevel日志冗长info

MCP客户端配置

克劳德桌面版

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

窗户: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "codebase-search": {
      "command": "mcp-codebase-search",
      "args": []
    }
  }
}

其他MCP客户端

{
  "mcpServers": {
    "codebase-search": {
      "command": "mcp-codebase-search",
      "args": [],
      "env": {
        "CONFIG_PATH": "~/.codebase-memory/config.json",
        "LOG_LEVEL": "info"
      }
    }
  }
}

验证配置

  1. 重新启动客户端应用程序
  2. 检查一下 codebase-search 出现在MCP服务器列表中
  3. 呼叫 list_codebases 验证连接

支持的语言

语言扩展块类型
TypeScript.ts, .tsx函数、类、方法、接口
JavaScript.js, .jsx函数、类、方法
python.py函数、类、方法
Java.java类、方法、字段、接口
C.cs类、方法、属性、接口
斯维尔特.svelte组件
超文本标记语言.html文件
CSS/scs.css, .scss文件
JSON.json文件
YAML.yaml, .yml文件
标记语言.md章节

不产生AST块的文件(例如仅配置或仅导入文件)被索引为单个文件级块,因此它们仍然可以搜索。

建筑

系统概述

┌─────────────────────────────────────────────────────────────┐
│                     Entry Points                             │
├──────────────┬──────────────────┬──────────────────────────┤
│  MCP Server  │  Ingestion CLI   │     Manager UI           │
│  (stdio)     │  (command-line)  │  (Fastify + Handlebars)  │
└──────┬───────┴────────┬─────────┴──────────┬───────────────┘
       │                │                    │
┌──────▼────────────────▼────────────────────▼───────────────┐
│                   Core Services                             │
├─────────────┬──────────────┬──────────────┬────────────────┤
│  Codebase   │    Search    │  Ingestion   │   Embedding    │
│  Service    │   Service    │   Service    │    Service     │
└──────┬──────┴──────┬───────┴──────┬───────┴────────┬───────┘
       │             │              │                │
┌──────▼─────────────▼──────────────▼────────────────▼───────┐
│                   Storage & Parsing                         │
├──────────────┬──────────────────┬─────────────────────────┤
│   LanceDB    │  Tree-sitter     │  Hugging Face           │
│ (Vector DB)  │  (Code Parsing)  │  (Embeddings, local)    │
└──────────────┴──────────────────┴─────────────────────────┘

数据流

摄入
Source Code → File Scanner → Tree-sitter Parser → Semantic Chunks
                                                         ↓
                                                  Token Counter
                                                         ↓
                                              Split Oversized Chunks
                                                         ↓
                                                 File Classifier
                                                         ↓
LanceDB ← Embeddings ← Embedding Service ← Tagged Chunks

分块策略: 树保姆提取语义单元(函数、类、方法)。超过512个标记的单位在具有50个标记重叠的行边界上分割。产生零AST块的文件会得到一个文件级块,以确保所有内容都是可搜索的。

搜索
Query → Embedding Service → Vector
                              ↓
                         LanceDB Search (top N×10 candidates)
                              ↓
                         Name/Symbol Boost (re-rank)
                              ↓
                         Apply Filters → Trim to N → Response

每次搜索后,搜索缓存都会自动清除 update_codebase_scan.

存储模式

LanceDB表命名: codebase_{name}_{schemaVersion} (例如。 codebase_my-project_1_0_0)

行结构:

{
  "id": "my-project_2026-03-21T06:18:24Z_0",
  "vector": [0.1, 0.2, "..."],
  "content": "export async function authenticate(...) { ... }",
  "filePath": "src/auth.ts",
  "startLine": 15,
  "endLine": 45,
  "language": "typescript",
  "chunkType": "function",
  "isTestFile": false,
  "isLibraryFile": false,
  "fileHash": "a1b2c3d4...",
  "fullFileContent": "// complete file content",
  "ingestionTimestamp": "2026-03-21T06:18:24Z",
  "_codebaseName": "my-project",
  "_path": "/path/to/project",
  "_lastIngestion": "2026-03-21T06:18:24Z"
}

故障排除

常见问题

“找不到命令:mcp代码库搜索”
npm install -g @teknologika/mcp-codebase-search
# or use npx
npx mcp-codebase-search
“初始化LanceDB失败”
# Check permissions
ls -la ~/.codebase-memory/lancedb

# Reset LanceDB (WARNING: deletes all indexed data)
rm -rf ~/.codebase-memory/lancedb

# Re-ingest
mcp-codebase-ingest --path ./my-project --name my-project
“嵌入模型下载失败”
# Check available disk space (~500MB needed)
df -h ~/.codebase-memory

# Clear model cache and retry
rm -rf ~/.codebase-memory/models
mcp-codebase-ingest --path ./my-project --name my-project
“搜索未返回任何结果”

语义搜索最适合描述性短语,而不是精确的标识符。尝试更广泛的查询:

# Instead of: "validateEmailAddress"
# Try: "email validation function"

要进行精确的标识符查找,请使用 get_file_content 经过广泛搜索后,最有可能的文件。

“管理器UI无法打开/端口正在使用中”
# Check what's using port 8008
lsof -i :8008

# Use a different port in config
# ~/.codebase-memory/config.json
{ "server": { "port": 8009 } }
代码更改后索引已过时

呼叫 update_codebase_scan 经过重大编辑。文件哈希意味着只有修改过的文件才会被重新嵌入,因此即使在大型代码库上,重新扫描也很快。

性能提示

  • 增加批量大小 为了更快的初始摄取(需要更多的RAM):
  { "ingestion": { "batchSize": 200 } }
  • 使用SSD存储 对于LanceDB持久性目录
  • 排除不必要的文件 通过 .gitignore
  • 定期重新扫描 --呼叫 update_codebase_scan 发生重大变化后

发展

设置

git clone https://github.com/teknologika/mcp-codebase-search.git
cd mcp-codebase-search
npm install
npm run build

脚本

npm run build          # Compile TypeScript + copy UI assets
npm test               # Run all tests
npm run test:watch     # Watch mode
npm run test:coverage  # Coverage report
npm run lint           # ESLint
npm run lint:fix       # Auto-fix lint issues
npm run clean          # Remove build artifacts
npm run typecheck      # Type check without building

项目结构

src/
├── bin/                    # Entry points (mcp-server, ingest, manager)
├── domains/                # Domain business logic
│   ├── codebase/           # Codebase CRUD and file operations
│   ├── search/             # Semantic search with caching
│   ├── ingestion/          # File scanning and indexing pipeline
│   ├── embedding/          # Local embedding generation
│   └── parsing/            # Tree-sitter + plaintext fallback parsers
├── infrastructure/         # External integrations
│   ├── lancedb/            # LanceDB client wrapper
│   ├── mcp/                # MCP server and tool schemas
│   └── fastify/            # Manager UI server and routes
├── shared/                 # Shared utilities
│   ├── config/             # Configuration management
│   ├── logging/            # Structured logging (Pino)
│   ├── types/              # Shared TypeScript types
│   └── utils/              # File hashing, token counting, classification
└── ui/                     # Web interface
    └── manager/
        ├── templates/      # Handlebars templates
        └── static/         # CSS and JavaScript

贡献

报告问题

  1. 搜索现有问题以避免重复
  2. 包括:Node.js版本、操作系统、复制步骤、错误消息

提交拉取请求

  1. 分叉并创建特征分支: git checkout -b feature/my-feature
  2. 进行更改、添加测试、更新文档
  3. 跑 npm test 和 npm run lint
  4. 承诺与 约定式提交: feat:, fix:, docs:等等。
  5. 打开拉取请求

贡献领域

  • 🌐 语言支持 --其他树型语法(Rust、Go、Ruby)
  • 🔍 搜索改进 --FTS/关键字搜索模式,用于精确查找标识符
  • ⚡ 演出 --搜索和摄取优化
  • 🎨 UI 改进 --管理器UI增强功能
  • 🐛 错误修复 --查看未决问题

安全

  • 没有外部API调用 --所有处理都是本地的
  • 无遥测 --未收集或传输使用数据
  • 仅限本地主机 --默认情况下,管理器UI绑定到localhost
  • 路径验证 --验证文件路径以防止目录遍历
  • 输入验证 --所有MCP工具输入均已AJV模式验证

建议:

  1. 不要将Manager UI暴露给公共网络
  2. 保持软件包更新: npm update -g @teknologika/mcp-codebase-search
  3. 运行安全审核: npm audit

许可证

MIT许可证——见 许可证 了解详情。

作者

技术

致谢

______________________________________________________________________

问题或议题? 打开一个问题

工具与能力

工具数量

9

资源数量

0

提示词数量

0

能力标签

代码搜索TypeScript本地部署语义分析本地处理多语言支持AI集成

支持客户端

Claude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 只提供 9 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Node.js,换机器要重新装一遍。
  • 需要自备访问 Token,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到访问 Token的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
MCP Codebase Search

MCP World · 本页

9stdio有1 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

MCP Codebase Search 怎么安装?

公开资料给出的安装命令是 npx mcp-codebase-ingest --path ./my-project --name my-project,运行环境为 Node.js。装完后按客户端要求写进 MCP 配置,重启客户端生效。

MCP Codebase Search 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Node.js;保存后完全退出客户端再打开,配置才会生效。

MCP Codebase Search 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

MCP Codebase Search 需要 API Key 吗?

公开资料标注的认证方式是访问 Token,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

MCP Codebase Search 支持哪些客户端?

公开资料标注支持 Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP