上下文_经济_MCP
用于确定性上下文检索的轻量级本地MCP服务器\ 设计旨在保持简单、可预测且运行成本低廉。
我们喜欢把钱放在真正有价值的地方。
这个工具源于这种心态,我们正在分享它,这样其他人就可以用更少的资源做更多的事情。
______________________________________________________________________
🚦 法律与使用
使用项目前请阅读本节内容:
- 布赖顿大学 与谷歌、Anthropic、OpenAI或任何其他供应商合作
- 你带来并管理你的 拥有Gemini CLI凭据
- 你有责任 使用、计费和合规性
- 此存储库是 仅源代码 (非托管,非商业)
- 按原样提供,没有专门的支持或路线图承诺。
如果你找到了改进的方法,请随时分享。
______________________________________________________________________
🧭 此服务器的功能
Context_Recon_MCP侧重于 仅检索.
它有助于工具和代理:
- 检查本地代码库
- 确定性搜索
- 提取稳定、可引用的摘录
它故意这样做 不 修改文件或修改项目。
范围概览
- 🖥️ 仅在本地运行
- 🧠 使用Gemini CLI作为上下文检索引擎
- 🧾 稳定性和可审计性的确定性搜索和摘录
- 🔒 仅检索表面(无代码编辑)
- 🚫 默认情况下排除点前缀路径
- 🗂️ 在广泛扫描期间跳过通用系统/缓存目录
______________________________________________________________________
🧰 刀具表面
一套小而专注的MCP工具:
| 工具 | 说明 |
|---|---|
context.project_overview | 目录方向和密钥文件提示 |
context.index_inspection | 索引状态、限制、Gemini状态、仪表板URL |
context.code_search | 项目中的词汇发现 |
context.relevant_code | 查询摘录排名 |
context.context_recon | 单工具语义检索包装器 |
context.file_slice | 带有哈希和mtime的权威摘录 |
context.tool_update | 从git中提取最新的服务器更改(pull --ff-only) |
context.tool_cleanup | 终止兄弟/孤立服务器进程 |
______________________________________________________________________
🖥️ 本地仪表板
默认URL:
http://127.0.0.1:8765服务于 ui/index.html.
仪表板功能
- 连接和状态检查
- 请求计数和令牌总数
- 来自本地Gemini CLI身份验证的使用情况和配额信息
- 文件资源管理器、查询控制台、代码段检查器
- 单击以加载最近的MCP活动
- 常用查询芯片
运行时行为
- UI刷新运行 仅在打开时
- 刷新时不进行模型连接检查
- 可见性感知后台轮询
- 默认情况下禁用Gemini自动轮询
- 父进程消失时自动退出孤立进程(
ppid == 1) - 15分钟后自动怠速退出
- 可选启动自动更新(
git pull --ff-only) - 可选的定期自动更新轮询(默认每5分钟一次)
- 保守的令牌使用默认值
如果仪表板已关闭,则不会运行UI刷新。\ 对于仅限终端的检查,请使用 context.index_inspection.
______________________________________________________________________
📦 安装
./scripts/install_system.sh默认路径
${XDG_DATA_HOME:-$HOME/.local/share}/context_recon_mcp~/.local/bin/context-recon-mcp
所需环境(OAuth模式)
GEMINI_DEFAULT_AUTH_TYPE=oauth-personal
NO_BROWSER=true
OAUTH_CALLBACK_HOST=127.0.0.1可选环境(某些工作区/代码辅助帐户需要)
GOOGLE_CLOUD_PROJECT=
GOOGLE_CLOUD_PROJECT_ID=可选工艺标签:
CONTEXT_RECON_PROCESS_NAME=Context_Recon_MCP可选流程生命周期控制:
# Environment variable (launcher default is true). Set false to disable orphan self-shutdown.
CONTEXT_RECON_ORPHAN_SHUTDOWN=true# config.yaml lifecycle defaults
orphan_shutdown_enabled: true
idle_shutdown_seconds: 900可选更新控件:
# Optional environment overrides
CONTEXT_RECON_AUTO_UPDATE_ON_START=true
CONTEXT_RECON_UPDATE_REMOTE=origin
CONTEXT_RECON_UPDATE_BRANCH=main
CONTEXT_RECON_UPDATE_ALLOW_DIRTY=false
CONTEXT_RECON_UPDATE_TIMEOUT_SECONDS=45
CONTEXT_RECON_UPDATE_POLL_SECONDS=300# config.yaml update defaults
auto_update_on_start: true
update_remote: "origin"
update_branch: "" # empty means current branch
update_allow_dirty: false
update_timeout_seconds: 45
update_poll_seconds: 300笔记:
- 更新使用
git pull --ff-only并且不会创建合并提交。 - 如果存在局部变化
update_allow_dirty=false,则跳过更新。 - 成功更新代码后,重新启动MCP以加载新的服务器代码。
进程清理(过时的服务器)
首选的清理路径是MCP工具 context.tool_cleanup.
终端回退(保留最新的服务器PID并停止旧的重复项):
pids="$(pgrep -f 'context-recon-mcp/src/server.py' || true)"; keep="$(printf '%s\n' "$pids" | sort -n | tail -n 1)"; printf '%s\n' "$pids" | while IFS= read -r pid; do [ -n "$pid" ] && [ "$pid" != "$keep" ] && kill "$pid"; done______________________________________________________________________
🔌 MCP配置示例
命令
context-recon-mcp食品法典委员会(~/.codex/config.toml)
[mcp_servers.Context_Recon_MCP]
command = "context-recon-mcp"
args = []
enabled = true
[mcp_servers.Context_Recon_MCP.env]
GEMINI_DEFAULT_AUTH_TYPE = "oauth-personal"
NO_BROWSER = "true"
OAUTH_CALLBACK_HOST = "127.0.0.1"
CONTEXT_RECON_ORPHAN_SHUTDOWN = "true"
CONTEXT_RECON_AUTO_UPDATE_ON_START = "true"
CONTEXT_RECON_UPDATE_POLL_SECONDS = "300"
GOOGLE_CLOUD_PROJECT = ""
GOOGLE_CLOUD_PROJECT_ID = ""克劳德代码(~/.claude.json)
{
"Context_Recon_MCP": {
"type": "stdio",
"command": "context-recon-mcp",
"args": [],
"env": {
"GEMINI_DEFAULT_AUTH_TYPE": "oauth-personal",
"NO_BROWSER": "true",
"OAUTH_CALLBACK_HOST": "127.0.0.1",
"CONTEXT_RECON_ORPHAN_SHUTDOWN": "true",
"CONTEXT_RECON_AUTO_UPDATE_ON_START": "true",
"CONTEXT_RECON_UPDATE_POLL_SECONDS": "300",
"GOOGLE_CLOUD_PROJECT": "",
"GOOGLE_CLOUD_PROJECT_ID": ""
}
}
}光标/VS代码
{
"mcpServers": {
"Context_Recon_MCP": {
"command": "context-recon-mcp",
"args": [],
"env": {
"GEMINI_DEFAULT_AUTH_TYPE": "oauth-personal",
"NO_BROWSER": "true",
"OAUTH_CALLBACK_HOST": "127.0.0.1",
"CONTEXT_RECON_ORPHAN_SHUTDOWN": "true",
"CONTEXT_RECON_AUTO_UPDATE_ON_START": "true",
"CONTEXT_RECON_UPDATE_POLL_SECONDS": "300",
"GOOGLE_CLOUD_PROJECT": "",
"GOOGLE_CLOUD_PROJECT_ID": ""
}
}
}
}可选CLI提供程序覆盖(任何主机)
CONTEXT_RECON_RERANK_PROVIDER="auto"(或gemini,claude,codex)CONTEXT_RECON_GEMINI_COMMAND="gemini"CONTEXT_RECON_GEMINI_ARGS="--model gemini-2.5-pro"CONTEXT_RECON_CLAUDE_COMMAND="claude"CONTEXT_RECON_CLAUDE_ARGS="--model claude-3-7-sonnet-20250219 --max-turns 1 --no-session-persistence --disable-slash-commands --tools \"\""CONTEXT_RECON_CLAUDE_PROMPT_MODE="arg"(或stdin)CONTEXT_RECON_CLAUDE_USAGE_SOURCE="auto"(或web,oauth,off)CONTEXT_RECON_CLAUDE_COOKIE_SOURCE="auto"(或manual,off)CONTEXT_RECON_CLAUDE_COOKIE_HEADER="sessionKey=..."CONTEXT_RECON_CODEX_COMMAND="codex"CONTEXT_RECON_CODEX_ARGS="-m codex-mini-latest"CONTEXT_RECON_CODEX_PROMPT_MODE="arg"(或stdin)CONTEXT_RECON_CODEX_USAGE_SOURCE="auto"(或web,oauth,off)CONTEXT_RECON_CODEX_COOKIE_SOURCE="auto"(或manual,off)CONTEXT_RECON_CODEX_COOKIE_HEADER="__Secure-next-auth.session-token=..."CONTEXT_RECON_BROWSER_COOKIE_ORDER="safari,chrome,brave,edge,chromium,firefox,opera"
*_ARGS 接受JSON数组(例如。 ["--model","gemini-2.5-pro"])或shell样式的字符串。
默认值+config.yaml示例
默认值(当您什么都不做时):
- 供应商:
auto(首次可用:gemini→claude→codex) - Gemini模型:无论您的Gemini CLI默认为什么
- 克劳德模型:
claude-3-haiku-20240307(通过下面的参数) - Codex型号:
codex-mini-latest
编辑 config.yaml 要固定不带env变量的提供者/模型:
reranker_provider: "claude"
claude_args:
- "--model"
- "claude-3-haiku-20240307"
- "--max-turns"
- "1"
- "--no-session-persistence"
- "--disable-slash-commands"
- "--tools"
- ""reranker_provider: "codex"
codex_args:
- "-m"
- "codex-mini-latest"reranker_provider: "gemini"
gemini_args:
- "--model"
- "gemini-2.5-pro"如果缺少所选的提供程序CLI,服务器将按上述顺序自动回退到下一个可用的CLI。
环境变量始终覆盖 config.yaml.
Claude适配器注释:
- 增加
--output-format json和--json-schema自动生成结构化输出,默认args限制轮次和令牌效率工具。 - 使用同步遵循CodexBar风格的web cookie策略;使用
*_COOKIE_HEADER用于手动Cookie。
Codex适配器注释:
- 用途
codex exec引擎盖下。 - 增加
--output-schema和--output-last-message自动生成结构化JSON输出。 - 默认为
--sandbox read-only和--ask-for-approval never除非你覆盖这些标志。 - 默认模型设置为
codex-mini-latest因为它针对Codex CLI和Codex启动默认值进行了优化。 - 使用同步遵循CodexBar风格的web仪表板cookie路径;如果cookie不可用,仪表板将显示使用情况为不可用。
令牌使用跟踪:
- Gemini使用CLI统计数据。
- Claude/Codex尝试在可用时从CLI JSON读取使用字段;否则,我们根据提示/输出大小进行估计。
______________________________________________________________________
🧪 发展
python -m venv .venv
source .venv/bin/activate
pip install -e .[dev]
pytest -q______________________________________________________________________
📄 许可证
麻省理工学院(见 LICENSE).
______________________________________________________________________
Maintained by the team behind AI Stage Coach, a training-focused shooting analysis app built with the same cost-conscious, judgment-first approach. Train Smarter. Improve Faster.
