代码语义搜索插件

Claude Context是一款为AI编程助手提供代码语义搜索功能的MCP插件,支持本地向量数据库存储和多项目隔离管理。

  • by Dexus
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Dexus/claude-context

使用说明

你的整个代码库都是Claude的上下文

克劳德上下文 是一个MCP插件,它为Claude code和其他AI编码代理添加了语义代码搜索,为它们提供了整个代码库的深层上下文。

🧠 您的整个代码库作为上下文:Claude Context使用语义搜索从数百万行中查找所有相关代码。不需要多轮发现。它将结果直接带入克劳德的背景中。

💰 大型代码库的成本效益:与每次请求都将整个目录加载到Claude中(这可能非常昂贵)不同,Claude Context有效地将您的代码库本地存储在向量数据库中,并且只在上下文中使用相关代码来控制成本。

🏠 LanceDB的本地优先:默认情况下,Claude Context使用LanceDB进行本地嵌入式矢量存储,不需要外部服务。快速设置,数据保留在您的机器上。


🚀 演示

模型上下文协议(MCP)允许您将Claude Context与您最喜欢的AI编码助手集成,例如Claude Code。

🚀 快速开始

30秒内完成设置 -只有一个命令!

步骤1:获取OpenAI API密钥

从获取免费的API密钥 开放人工智能 (开始于 sk-)

步骤2:添加到克劳德代码

claude mcp add claude-context -e OPENAI_API_KEY=your-openai-api-key -- npx @dexus1985/claude-context-mcp@latest

就是这样! 🎉 Claude Context将:

  • ✅ 自动安装,无需设置
  • ✅ 使用LanceDB在本地存储所有内容(不需要云服务)
  • ✅ 使用任何大小的代码库
  • ✅ 启用混合矢量+文本搜索以获得更好的结果

第三步:开始使用

  1. 在项目目录中打开Claude Code
  2. 让Claude“索引这个代码库”
  3. 然后问“查找身份验证逻辑”或“显示数据库连接代码”等问题

📁 多项目支持

Claude Context通过为每个代码库创建独立的集合来自动处理多个项目:

  • 每个项目都会根据项目的绝对路径获得自己的集合
  • 项目彼此完全隔离
  • 通过在不同目录中打开Claude Code在项目之间切换
  • 所有数据都存储在本地 ~/.claude-context/lancedb/

系统要求:

  • Node.js>=20.0.0(Claude Context在本地工作-不需要外部服务!)

请参阅 克劳德代码MCP文档 了解更多详情。

其他MCP客户端配置

任何MCP客户端的简单设置-只需添加您的OpenAI API密钥!

Gemini CLI

创建或编辑 ~/.gemini/settings.json 文件:

{
  "mcpServers": {
    "claude-context": {
      "command": "npx",
      "args": ["@dexus1985/claude-context-mcp@latest"],
      "env": {
        "OPENAI_API_KEY": "your-openai-api-key"
      }
    }
  }
}
Qwen Code

创建或编辑 ~/.qwen/settings.json 文件:

{
  "mcpServers": {
    "claude-context": {
      "command": "npx",
      "args": ["@dexus1985/claude-context-mcp@latest"],
      "env": {
        "OPENAI_API_KEY": "your-openai-api-key"
      }
    }
  }
}
Cursor

首选 Settings -> Cursor Settings -> MCP -> Add new global MCP server

将此添加到光标 ~/.cursor/mcp.json 文件:

{
  "mcpServers": {
    "claude-context": {
      "command": "npx",
      "args": ["-y", "@dexus1985/claude-context-mcp@latest"],
      "env": {
        "OPENAI_API_KEY": "your-openai-api-key"
      }
    }
  }
}
Void

首选 Settings -> MCP -> Add MCP Server

将以下配置添加到Void MCP设置中:

{
  "mcpServers": {
    "code-context": {
      "command": "npx",
      "args": ["-y", "@dexus1985/claude-context-mcp@latest"],
      "env": {
        "OPENAI_API_KEY": "your-openai-api-key",
      }
    }
  }
}
Claude Desktop

添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "claude-context": {
      "command": "npx",
      "args": ["@dexus1985/claude-context-mcp@latest"],
      "env": {
        "OPENAI_API_KEY": "your-openai-api-key",
      }
    }
  }
}
Windsurf

Windsurf支持通过JSON文件进行MCP配置。将以下配置添加到Windsurf MCP设置中:

{
  "mcpServers": {
    "claude-context": {
      "command": "npx",
      "args": ["-y", "@dexus1985/claude-context-mcp@latest"],
      "env": {
        "OPENAI_API_KEY": "your-openai-api-key",
      }
    }
  }
}
VS Code

Claude Context MCP服务器直接与Claude Code和其他MCP兼容客户端集成:

{
  "mcpServers": {
    "claude-context": {
      "command": "npx",
      "args": ["-y", "@dexus1985/claude-context-mcp@latest"],
      "env": {
        "OPENAI_API_KEY": "your-openai-api-key",
      }
    }
  }
}
Cherry Studio

Cherry Studio允许通过其设置界面进行可视化MCP服务器配置。虽然它不直接支持手动JSON配置,但您可以通过GUI添加新服务器:

  1. 导航至 设置→ MCP服务器→ 添加服务器.
  2. 填写服务器详细信息:
    • 名字: claude-context
    • 类型: STDIO
    • 命令: npx
    • 参数: ["@dexus1985/claude-context-mcp@latest"]
    • 环境变量:
      • OPENAI_API_KEY: your-openai-api-key
      • MILVUS_ADDRESS: milvus-cloud-public-endpoint
      • MILVUS_TOKEN: milvus-cloud-api-key
  3. 保存配置以激活服务器。
Cline

Cline使用JSON配置文件来管理MCP服务器。要集成提供的MCP服务器配置:

  1. 打开Cline并单击 MCP服务器 顶部导航栏中的图标。

  2. 选择 已安装 选项卡,然后单击 高级MCP设置.

  3. 在 cline_mcp_settings.json 文件,添加以下配置:

{
  "mcpServers": {
    "claude-context": {
      "command": "npx",
      "args": ["@dexus1985/claude-context-mcp@latest"],
      "env": {
        "OPENAI_API_KEY": "your-openai-api-key",
      }
    }
  }
}
  1. 保存文件。
Augment

要在增强代码中配置Claude Context MCP,您可以使用图形界面或手动配置。

A.使用增强代码UI

  1. 点击汉堡菜单。

  2. 选择 设置.

  3. 导航到 工具 部分。

  4. 点击 +添加MCP 按钮。

  5. 输入以下命令:

    npx @dexus1985/claude-context-mcp@latest
    
  6. 命名MCP: 克劳德上下文.

  7. 点击 添加 按钮。


B.手动配置

  1. 按Cmd/Ctrl Shift P或转到增强面板中的汉堡包菜单
  2. 选择编辑设置
  3. 在“高级”下,单击settings.json中的“编辑”
  4. 将服务器配置添加到 mcpServers 数组中 augment.advanced 对象
"augment.advanced": { 
  "mcpServers": [ 
    { 
      "name": "claude-context", 
      "command": "npx", 
      "args": ["-y", "@dexus1985/claude-context-mcp@latest"],
      "env": {
        "OPENAI_API_KEY": "your-openai-api-key",
      }
    }
  ]
}
Roo Code

Roo Code为MCP服务器使用JSON配置文件:

  1. 打开Roo Code并导航到 设置→ MCP服务器→ 编辑全局配置.

  2. 在 mcp_settings.json 文件,添加以下配置:

{
  "mcpServers": {
    "claude-context": {
      "command": "npx",
      "args": ["@dexus1985/claude-context-mcp@latest"],
      "env": {
        "OPENAI_API_KEY": "your-openai-api-key",
      }
    }
  }
}
  1. 保存文件以激活服务器。
Other MCP Clients

服务器使用stdio传输并遵循标准MCP协议。通过运行以下命令,它可以与任何兼容MCP的客户端集成:

npx @dexus1985/claude-context-mcp@latest

有关MCP环境变量配置的更多详细信息,请参阅我们的 环境变量指南.

📚 需要更多帮助? 查看我们的 完整的文件 获取详细指南和故障排除提示。



🏗️ 建筑

🔧 主要特点

  • 🔍 混合搜索:结合向量相似性和全文搜索的高级混合搜索,使用RRF(往复式排名融合)获得更好的结果
  • 🤖 基于代理的交互式搜索:人工智能驱动的搜索优化,参与多轮对话,以了解您的意图并提供精确相关的结果
  • 📊 智能结果排名:基于语义相关性、代码上下文和查询模式优化搜索结果的智能排名算法
  • 🏠 100%本地:所有内容都使用LanceDB在本地运行-您的代码永远不会离开您的机器
  • ⚡ 快速和增量:仅处理已更改文件的智能索引
  • 🧩 AST供电:使用抽象语法树进行智能代码分块,以获得更好的上下文
  • 🗄️ 无限可能:在本地处理任何大小的代码库
  • 🛠️ 零配置:开箱即用-只需添加您的OpenAI API密钥

核心组件

Claude Context是一个包含三个主要包的monorepo:

  • @dexus1985/claude-context-core:具有嵌入和矢量数据库集成的核心索引引擎
  • @dexus1985/claude-context-mcp:用于AI代理集成的模型上下文协议服务器

支持的技术

  • 矢量数据库: LanceDB (本地、嵌入式、零配置)
  • 嵌入: 开放人工智能 text-embedding-3-small(其他供应商可用:VoyageAI、Ollama、Gemini)
  • 代码分析:基于AST的智能组块,支持LangChain回退
  • 语言:TypeScript、JavaScript、Python、Java、C++、C#、Go、Rust、PHP、Ruby、Swift、Kotlin、Scala、Markdown
  • AI客户端:Claude Code、Cursor、Windsurf、Gemini CLI和所有兼容MCP的客户端
🔧 Advanced: Optional Cloud Vector Database

对于企业团队或高级用例,您可以通过设置环境变量来配置Milvus/Zilliz Cloud:

claude mcp add claude-context -e OPENAI_API_KEY=your-key -e VECTOR_DB_TYPE=milvus -e MILVUS_TOKEN=your-token -- npx @dexus1985/claude-context-mcp@latest

📦 使用克劳德语境的其他方法

MCP服务器是将Claude Context与Claude Code等AI助手一起使用的主要方式。

使用核心包构建应用程序

这 @dexus1985/claude-context-core 该包为代码索引和语义搜索提供了基本功能。

import { Context, LanceDBVectorDatabase, OpenAIEmbedding } from '@dexus1985/claude-context-core';

// Initialize embedding provider
const embedding = new OpenAIEmbedding({
    apiKey: process.env.OPENAI_API_KEY || 'your-openai-api-key',
    model: 'text-embedding-3-small'
});

// Initialize vector database (LanceDB - local, no setup required)
const vectorDatabase = new LanceDBVectorDatabase({
    uri: './.claude-context/lancedb' // Local storage path
});

// Create context instance
const context = new Context({
    embedding,
    vectorDatabase
});

// Index your codebase with progress tracking
const stats = await context.indexCodebase('./your-project', (progress) => {
    console.log(`${progress.phase} - ${progress.percentage}%`);
});
console.log(`Indexed ${stats.indexedFiles} files, ${stats.totalChunks} chunks`);

// Perform semantic search
const results = await context.semanticSearch('./your-project', 'vector database operations', 5);
results.forEach(result => {
    console.log(`File: ${result.relativePath}:${result.startLine}-${result.endLine}`);
    console.log(`Score: ${(result.score * 100).toFixed(2)}%`);
    console.log(`Content: ${result.content.substring(0, 100)}...`);
});

🛠️ 发展

设置开发环境

# Clone repository
git clone https://github.com/danielbowne/claude-context.git
cd claude-context

# Install dependencies
pnpm install

# Build all packages
pnpm build

# Start development mode
pnpm dev

建筑

# Build all packages
pnpm build

# Build specific package
pnpm build:core
pnpm build:vscode
pnpm build:mcp

运行示例

# Development with file watching
cd examples/basic-usage
pnpm dev

支持的文件扩展名

默认情况下,Claude Context支持:

  • 编程语言: .ts, .tsx, .js, .jsx, .py, .java, .cpp, .c, .h, .hpp, .cs, .go, .rs, .php, .rb, .swift, .kt, .scala, .m, .mm
  • 文档: .md, .markdown, .ipynb

忽略模式

常见目录和文件会自动忽略:

  • 构建输出: node_modules/**, dist/**, build/**, out/**, target/**, coverage/**, .nyc_output/**
  • 版本控制: .git/**, .svn/**, .hg/**
  • IDE/编辑器文件: .vscode/**, .idea/**, *.swp, *.swo
  • 缓存目录: .cache/**, __pycache__/**, .pytest_cache/**
  • 日志和临时: logs/**, tmp/**, temp/**, *.log
  • 环境文件: .env, .env.*, *.local
  • 压缩/捆绑文件: *.min.js, *.min.css, *.bundle.js, *.bundle.css, *.chunk.js, *.map

看 常见问题解答指南 有关支持的文件扩展名和忽略模式的详细和自定义配置。


📖 例子

检查 /examples 完整使用示例目录:

  • 基本用法:简单的索引和搜索示例

❓ 常见问题解答

常见问题:

有关详细答案和更多故障排除提示,请参阅我们的 常见问题解答指南.


🤝 贡献

我们欢迎捐款!请查看我们的 贡献指南 了解如何开始的详细信息。

特定于软件包的贡献指南:


🗺️ 路线图

  • [x] 基于AST的代码分析,以提高理解
  • [x] 支持其他嵌入提供程序
  • [x] 基于代理的交互式搜索模式
  • [x] 增强的代码分块策略
  • [x] 搜索结果排名优化

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。


🔗 链接


🙏 谢谢

特别感谢 张 和那个 Zilliz团队 用于创建原始的Claude Context项目。此分支建立在LanceDB提供本地第一矢量数据库体验的良好基础之上。