这是一个模型上下文协议(MCP)服务器,旨在解决代码库索引问题(直到代理可以处理)。
get_codebase_context) 工具给AI客户端(如Cursor,Claude Desktop)。list_repository_structure,read_files,grep_codebase)来理解代码。python -m venv venv
source venv/bin/activate # 在Windows上:venv\Scripts\activate
pip install -r requirements.txt
tree:确保系统中有tree命令可用。
brew install treesudo apt update && sudo apt install tree.env.example 到 .env。.env 并添加你的Google Gemini API密钥:
GEMINI_API_KEY="YOUR_ACTUAL_API_KEY"
--gemini-api-key 提供密钥。默认情况下,服务器以SSE模式运行,这允许你:
运行服务器:
python kontxt_server.py --repo-path /path/to/your/codebase
提示:你可以使用 pwd 来列出项目路径
服务器将在 http://127.0.0.1:8080/sse 默认启动。
对于其他选项:
python kontxt_server.py --repo-path /path/to/your/codebase --host 0.0.0.0 --port 6900
可以通过在运行服务器的终端中按 Ctrl+C 来停止服务器。服务器将尝试优雅地关闭,超时时间为3秒。
一旦你的服务器正在运行,你可以通过编辑 ~/.cursor/mcp.json 文件将Cursor连接到它:
{
"mcpServers": {
"kontxt-server": {
"serverType": "sse",
"url": "http://localhost:8080/sse"
}
}
}
提示:记得始终刷新Cursor设置或其他客户端中的MCP服务器,以便通过sse连接到MCP
如果你希望客户端启动并管理服务器进程:
python kontxt_server.py --repo-path /path/to/your/codebase --transport stdio
为此模式,配置你的 ~/.cursor/mcp.json 文件如下:
{
"mcpServers": {
"kontxt-server": {
"serverType": "stdio",
"command": "python",
"args": ["/absolute/path/to/kontxt_server.py", "--repo-path", "/absolute/path/to/your/codebase", "--transport", "stdio"],
"env": {
"GEMINI_API_KEY": "your-api-key-here"
}
}
}
}
--repo-path PATH: 必需。要分析的本地代码仓库的绝对路径。--gemini-api-key KEY: Google Gemini API密钥(如果提供则覆盖.env)。--token-threshold NUM: 上下文的目标最大令牌数。允许值为:
--gemini-model NAME: 使用的具体Gemini模型(默认:models/gemini-2.5-flash-preview-04-17)。--tokenizer-model NAME: 用于令牌估计的Hugging Face分词器ID(默认:google/gemma-7b;可通过KONTXT_TOKENIZER_MODEL覆盖)。--transport {stdio,sse}: 使用的传输协议(默认:sse)。--host HOST: SSE服务器的主机地址(默认:127.0.0.1)。--port PORT: SSE服务器的端口(默认:8080)。--cors-origins ORIGINS: 允许的CORS源的逗号分隔列表。如果省略,默认仅允许回环。--cors-credentials: 允许CORS凭证(默认禁用)。出于安全考虑,不使用通配符CORS。默认情况下,仅允许回环源:
http://127.0.0.1,http://localhost 和绑定的 host:port。要在开发期间允许特定的Web客户端,传递明确的源或使用环境变量:
python kontxt_server.py \
--repo-path /path/to/your/codebase \
--cors-origins http://localhost:3000,http://127.0.0.1:5173
# 或通过环境变量
KONTXT_CORS_ORIGINS="http://localhost:3000,http://127.0.0.1:5173" \
python kontxt_server.py --repo-path /path/to/your/codebase
注意:
GET,OPTIONS。头:全部。凭证:除非设置了--cors-credentials,否则禁用。此服务器使用google/gemma-7b分词器来估计令牌。该模型由Google在Hugging Face上进行了限制。
如果你还没有访问权限会发生什么:
如何获得访问权限(免费,约2分钟):
huggingface-cli login(或设置HF_TOKEN)。配置:
--tokenizer-model 或 KONTXT_TOKENIZER_MODEL:如果需要,使用不同的HF分词器ID。KONTXT_TOKENIZER_RELOAD_INTERVAL(秒,默认60):服务器重新尝试加载分词器的频率。示例查询:
提示:你可以进一步指定代理使用MCP工具,如果它没有使用:"auth文件第三代码块的最后一句话是什么?使用可用的MCP工具。"
你在查询中引用的文件/上下文将作为分析的上下文包括在内:
服务器会向Gemini提及这些文件,但不会自动读取或包含它们的内容。相反,Gemini将基于查询上下文决定读取哪些文件。
这种方法允许Gemini只读取实际需要的文件,防止上下文因无关文件内容而膨胀。
服务器跟踪不同操作的令牌使用情况:
这些信息在操作过程中被记录下来,帮助你监控API使用情况并优化查询。
PD:想要改进工具吗?欢迎PR。