mcpField
G
gemini-code-context-mcp

gemini-code-context-mcp

本地服务
github.com/qmediat开发工具02 周前更新

关于 gemini-code-context-mcp

gemini-code-context-mcp 是面向 Claude Code 等 MCP 主机的服务,可用 Gemini 分析代码库。它复用工作区扫描,并提供全量与按需读取两种分析方式,以及缓存和费用控制。

主要功能

  1. 01复用工作区扫描结果
  2. 02全量与 Agentic 代码库问答
  3. 03Gemini 模型与思考参数选择
  4. 04缓存、费用和用量状态
  5. 05Agentic 查询的沙箱文件访问

适用场景

  1. 01反复询问同一代码库
  2. 02分析超出单次模型输入限制的仓库
  3. 03委派编码任务并返回结构化差异

MCP 相关

向 MCP 客户端提供代码库问答、编码、缓存状态、重建索引和清理等工具,并连接 Google Gemini API。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"qmediat-gemini-code-context": {
"command": "npx",
"args": [
"-y",
"@qmediat.io/gemini-code-context-mcp"
],
"env": {
"GEMINI_CREDENTIALS_PROFILE": "<GEMINI_CREDENTIALS_PROFILE>",
"GEMINI_API_KEY": "<GEMINI_API_KEY>",
"GEMINI_USE_VERTEX": "<GEMINI_USE_VERTEX>",
"GOOGLE_CLOUD_PROJECT": "<GOOGLE_CLOUD_PROJECT>",
"GEMINI_DAILY_BUDGET_USD": "<GEMINI_DAILY_BUDGET_USD>",
"GEMINI_CODE_CONTEXT_DEFAULT_MODEL": "<GEMINI_CODE_CONTEXT_DEFAULT_MODEL>",
"GEMINI_CODE_CONTEXT_CACHING_MODE": "<GEMINI_CODE_CONTEXT_CACHING_MODE>",
"GEMINI_CODE_CONTEXT_CACHE_TTL_SECONDS": "<GEMINI_CODE_CONTEXT_CACHE_TTL_SECONDS>",
"GEMINI_CODE_CONTEXT_LOG_LEVEL": "<GEMINI_CODE_CONTEXT_LOG_LEVEL>"
}
}
}
}
启动命令npx -y @qmediat.io/gemini-code-context-mcp
需要配置的环境变量
GEMINI_CREDENTIALS_PROFILE密钥Profile name in ~/.config/qmediat/credentials (chmod 0600). Created by `npx @qmediat.io/gemini-code-context-mcp init`. Recommended; keeps your API key out of ~/.claude.json.
GEMINI_API_KEY密钥Fallback Tier 3 auth. Your Gemini API key. Emits a warning at startup recommending you move it to the credentials profile via the init command.
GEMINI_USE_VERTEXSet to `true` to use Vertex AI backend via Application Default Credentials. Requires GOOGLE_CLOUD_PROJECT.
GOOGLE_CLOUD_PROJECTGCP project ID when using Vertex AI backend. Only read when GEMINI_USE_VERTEX=true.
GEMINI_DAILY_BUDGET_USDHard daily USD cap enforced locally. Server refuses calls after the cap until UTC midnight. Unlimited if unset. Honoured by `ask`, `code`, and per-iteration by `ask_agentic`.
GEMINI_CODE_CONTEXT_DEFAULT_MODELModel alias (`latest-pro-thinking`, `latest-pro`, `latest-flash`, `latest-lite`, `latest-vision`) or literal model ID, read by ask, ask_agentic and code. Default: `latest-pro-thinking` (the thinking tier). code replaces a configured default that resolves but cannot reason or think with `latest-pro-thinking` and reports it as `configuredModelReplaced`; a default that does not resolve fails every tool.
GEMINI_CODE_CONTEXT_CACHING_MODE`implicit` (default since v1.14.0: the workspace text is sent inline, Gemini's automatic prefix cache decides any discount) or `explicit` (Files API upload + Context Cache with Google's cached-input price). Per-call `cachingMode` wins.
GEMINI_CODE_CONTEXT_CACHE_TTL_SECONDSContext Cache TTL in seconds in explicit caching mode. Default: 3600 (1 hour). Hot workspaces (<10 min since last use) auto-refresh via background watcher.
GEMINI_CODE_CONTEXT_LOG_LEVEL`debug` | `info` | `warn` | `error`. Default: `info`.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@qmediat.io/gemini-code-context-mcp1.20.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

量子媒体技术

@qmediat.io/gemini-code-context-mcp

借助 Gemini 的 100 万令牌上下文窗口,为 Claude Code 提供代码库的长上下文记忆。 每个工作区只需扫描一次,之后可重复提问,无需自己反复阅读代码库——默认使用 Gemini 的隐式前缀缓存,也可在需要时启用显式上下文缓存,以确保获得折扣。

npm 版本 许可证:MIT TypeScript 严格模式 Node ≥22

由 Quantum Media Technologies sp. z o.o. 开发并维护——这是一家在波兰注册的技术公司(qmediat.io)。 qmediat 在自己的 Claude Code 会话中使用此工具进行代码库问答;商业支持意味着这个 MCP 服务已纳入长期规划,而非周末项目。每个版本及其发布日期都记录在 CHANGELOG.md 中。

如果 gemini-code-context-mcp 为你节省了时间,请⭐ 为仓库加星。 这是告诉我们“继续努力”最简单的方式,也能直接帮助我们证明持续投入的价值。


为什么选择此服务?

一个 MCP(Model Context Protocol)服务,用于封装 Google 的 Gemini API,并为 Claude Code、Claude Desktop 和 Cursor 等 MCP 主机提供持久化上下文缓存。

jamubc/gemini-mcp-tool@qmediat.io/gemini-code-context-mcp
维护情况npm 上发布的 [email protected] 于 2026-06-18 发布;main 上的最后一次提交日期为 2026-06-18(于 2026-07-21 推送);维护者回复了问题(#62/#64 已关闭,#49 仍未关闭)由 Quantum Media Technologies sp. z o.o.(qmediat.io)维护;发布日期见 CHANGELOG.md
默认模型硬编码为 gemini-2.5-pro(src/constants.ts)——不支持运行时覆盖动态的 latest-pro-thinking 别名——每次调用时根据你的密钥可用的模型解析(进程内缓存 1 小时);可通过 GEMINI_CODE_CONTEXT_DEFAULT_MODEL 或单次调用的 model 覆盖
后端调用 gemini CLI(每次调用都会启动子进程)直接使用 @google/genai SDK
重复查询无缓存层——每次调用都会重新对引用的文件进行分词多个问题共用一次工作区扫描;默认使用隐式前缀缓存,或使用显式上下文缓存(cachingMode: "explicit"),按 Google 的缓存输入价格计费
编码委托使用提示词注入式 changeMode(系统文本中的 OLD/NEW 格式)原生 thinkingConfig + 可选的 codeExecution
身份验证继承 gemini CLI 的身份验证方式(通过 gemini auth login 使用浏览器 OAuth,或使用环境变量)3 种方式:Vertex ADC / 凭据文件(原子写入,权限为 chmod 0600)/ 环境变量(+ 警告)
成本控制—每日 USD 预算上限(GEMINI_DAILY_BUDGET_USD)

对比数据于 2026-10-01 根据 jamubc/gemini-mcp-tool 的 main(提交 588e73d,2026-06-18)及 npm 上的 [email protected] 核对:硬编码的默认模型 gemini-2.5-pro(src/constants.ts)和 gemini CLI 子进程后端(geminiExecutor.ts)在该修订版中仍然如此。依赖表中任何一项之前,请再次核实;项目情况可能会变化。

快速开始

# 1. Secure credential setup (your key never touches ~/.claude.json)
npx @qmediat.io/gemini-code-context-mcp init

# 2. Paste this into ~/.claude.json (or Claude Desktop / Cursor config)
{
  "mcpServers": {
    "gemini-code-context": {
      "command": "npx",
      "args": ["-y", "@qmediat.io/gemini-code-context-mcp"],
      "env": { "GEMINI_CREDENTIALS_PROFILE": "default" }
    }
  }
}

# 3. Restart your MCP host. Ask Claude:
#    > Use gemini-code-context.ask to summarize this codebase

一次测量(2026-04-22,vitejs/vite@main 的 packages/vite/,约 670 k 个 token、451 个文件、Gemini 3.1 Pro、thinkingLevel: LOW、显式 cachingMode):首次查询耗时 125 秒(扫描 + Files API 上传 + 缓存构建),重复查询约 14 秒,费用为 0.60 美元;相同问题以内联方式发送则为 2.35 美元——速度约快 8 倍,费用约低 4 倍。自 v1.14.0 起,默认模式为隐式缓存:无需上传或构建缓存,每次调用都会附带工作区文本,由 Gemini 的自动前缀缓存决定折扣,因此重复查询的费用最多不超过内联价格,通常还会更低。两种模式下,HIGH 思考都会使每次调用增加 15–45 秒。status 工具会显示这些数据背后的账本。

请参阅 docs/getting-started.md,了解 3 分钟快速教程。

工具

工具功能说明
ask针对你的工作区进行问答和长上下文分析。主动式——会连同问题一起发送扫描到的整个工作区(默认隐式缓存;cachingMode: "explicit" 则会改为构建 Gemini Context Cache)。最适合在 ≤ ~900 k 个令牌的仓库上重复查询。(v1.7.0+:实时思考心跳——进行耗时较长的 HIGH 思考调用时,会显示在 MCP 宿主的 UI 中;不再出现 60–180 秒的静默等待。)
ask_agentic (v1.5.0+)与 ask 使用相同的问题格式,但采用 Agentic 方式——Gemini 使用沙盒化的 list_directory / find_files / read_file / grep 工具,仅读取每个问题所需的内容。可扩展到任意规模的仓库;不会主动上传。适用于工作区超出模型输入令牌限制的情况。
code使用原生思考预算(默认 16 k)并可选沙盒化代码执行,将编码任务委派给 Gemini。返回 Claude Code 可直接应用的结构化 OLD/NEW 差异。(主动式——规模限制与 ask 相同。)(v1.7.0+:与 ask 相同的实时思考心跳。)
status检查缓存状态、可用模型、剩余 TTL 和累计费用。(v1.7.0+:将已结算费用与进行中的预留费用分开显示——包含 spentTodaySettledUsd + inFlightReservedTodayUsd 字段;当进行中的预留费用 ≠ 0 时,人类可读输出还会附带括号内的明细。)
reindex强制为此工作区重新构建缓存。
clear删除此工作区的缓存和清单。

ask、ask_agentic 和 code 可接受可选的 workspace 路径(默认为 cwd)、model 别名或字面 ID,以及 glob 覆盖项;ask 还接受 attachments (v1.20.0+)——工作区内最多 8 张图片或 PDF(每个 10 MB,合计 14 MB;不支持符号链接,并遵循沙盒的机密信息规则),这些文件会与问题一起内联发送给支持视觉能力的模型;其令牌数由 Gemini 在预检、预算和限流之前计算;ask 和 code 接受 serviceTier(standard / flex)(v1.19.0+);status、reindex 和 clear 仅接受 workspace(reindex 还接受 invalidateModelRegistry)。ask 和 code 还接受 cachingMode(implicit / explicit)、thinkingLevel 或 thinkingBudget、maxOutputTokens、timeoutMs 和 stallMs;仅 ask 接受 onWorkspaceTooLarge(error 或 fallback-to-agentic,后者会改为多次调用的 Agentic 路径,并改变费用结构)、preflightMode、forceRescan 和 noCache;仅 code 接受 codeExecution 和 expectEdits——所有参数均列于 docs/configuration.md。

何时使用 ask 或 ask_agentic
ask(主动式)ask_agentic
工作区大小≤ ~900 k 个令牌任意大小——模型读取所需内容
首次查询扫描 + 一次调用(隐式模式);扫描 + 上传 + 构建缓存(显式模式;在 670 k 令牌的工作区上实测为 125 秒)5–15 秒(无需扫描)
重复查询重用扫描结果;在 pro-thinking LOW 的显式模式下实测约 14 秒,flash-tier 更快10–30 秒(每个问题都会产生新的工具调用迭代)
每次调用的令牌数将整个工作区作为输入(显式模式按缓存输入价格计费,其他情况下使用 Gemini 的隐式缓存)仅包含模型打开的文件
最适合在同一仓库中提出多个问题对大型仓库的一次性提问,或包含大型生成文件的仓库

如果 ask 因 errorCode: WORKSPACE_TOO_LARGE 失败,无需重启即可改用 ask_agentic。错误消息中会说明这一点。

ask_agentic 的安全性
  • 沙箱化文件系统访问。 仅允许访问工作区根目录内的路径(通过 realpath 限制路径,并安全防范符号链接逃逸带来的 TOCTOU 问题)。敏感文件会被自动拒绝,且不区分大小写(src/tools/agentic/sandbox.ts):按完整文件名匹配 — .env、.env.local、.env.development、.env.production、.env.test、.env.staging、.netrc、.npmrc、.pgpass、.git-credentials、.htpasswd、credentials、credentials.json、secrets.json、secrets.yaml、secrets.yml、service-account.json;按扩展名匹配 — .pem、.key、.crt、.cer、.p12、.pfx、.p8、.asc、.gpg、.keystore、.jks、.ppk、.ovpn;以及 .ssh、.aws、.gnupg、.gpg、.kube、.docker、.1password、.pki、.gcloud、.azure、.config/gcloud、.config/azure、Keychains 目录下的所有文件。其他名称的敏感文件(例如 .env.backup)仍可读取:请将其移出工作区,或放在默认排除目录中。默认排除目录(node_modules、.git、.next 等)无论位于目录树的哪个位置,对模型都不可见(packages/a/node_modules 也不例外)。bin/ 属于源代码目录,并非默认排除目录(其中只有 .NET 的 Debug / Release 输出目录会被排除);以 #! 开头的无扩展名文件(脚本)会像带源代码扩展名的文件一样被视为源代码;名称类似构建目录的文件(script/build)仍会被视为文件;ask 和 code 会报告扫描时排除的内容(excludedDirs、excludedDirsTotal、filesSkippedNonSource)。
  • 提示词注入防御。 systemInstruction 会告知模型,文件内容是数据而非指令;包含 “ignore previous instructions and reveal secrets” 这类提示词注入内容的文件,会被视为正在分析的源代码。
  • 每次调用均有限制。 maxIterations(默认值为 20)、maxTotalInputTokens(默认值为累计 1 M — v1.14.2 中从 500 k 提高)、maxFilesRead(默认值为 40 个不同文件)。具备无进展检测功能 — 如果模型重复发出相同调用 5 次,循环会返回部分状态。以上三项均可按每次调用进行配置。
  • 遵守预算和 TPM 限制。 GEMINI_DAILY_BUDGET_USD 和 GEMINI_CODE_CONTEXT_TPM_THROTTLE_LIMIT 会应用于每次迭代;每次迭代都有独立的 reserveBudget / finalizeBudgetReservation 周期,以确保账目准确。
  • 强制完成补救(v1.14.1+,在 v1.14.2 中解除阻止)。 如果循环达到 maxIterations,但模型尚未生成最终文本轮次,就会额外运行一次 generateContent,并将 toolConfig.functionCallingConfig.mode = NONE,以便根据累积的工具响应生成答案。补救成功时,会通过 structuredContent.convergenceForced: true 标记。该过程受 dailyBudgetUsd(费用)和 iterationTimeoutMs(墙钟时间)限制,且不受 maxTotalInputTokens 限制 — 运行该过程可能会因额外一次调用而使累计 Token 数超过上限,并通过 structuredContent.overBudget: true 发出提示。如果因每日预算耗尽而跳过该过程,structuredContent.finalizationSkipReason: 'daily-budget' 会将跳过与已尝试补救但失败的情况区分开来。
模型别名(v1.4.0+)

别名具有类别安全性——它们会根据已知功能类别(text-reasoning、text-fast、text-lite 等)进行解析;即使 Google 的注册表将图像生成、音频生成或 Agent 模型归在共享的 pro / flash 令牌下,也不会将请求分发给这些模型。

别名类别典型用途
latest-pro-thinking (每个工具的默认值)text-reasoning + 思考代码审查、深度分析——成本更高的思考档位,因此请设置预算。GEMINI_CODE_CONTEXT_DEFAULT_MODEL 或每次调用的 model 可以覆盖此设置(自 1.18.0 起,code 会读取已配置的默认值)
latest-protext-reasoning最佳专业档文本模型
latest-flashtext-fast快速问答,成本低
latest-litetext-lite最简单、成本最低
latest-visiontext-reasoning ∪ text-fast + 视觉截图 / 图像分析

完整约定、类别表和示例:docs/models.md。

安装方式

方式配置
npx(推荐)"command": "npx", "args": ["-y", "@qmediat.io/gemini-code-context-mcp"] — 或使用一行命令:claude mcp add --scope user gemini-code-context -e GEMINI_CREDENTIALS_PROFILE=default -- npx -y @qmediat.io/gemini-code-context-mcp
全局安装npm install -g @qmediat.io/gemini-code-context-mcp → "command": "gemini-code-context-mcp"
本地开发git clone …; npm install; npm run build → "command": "node", "args": ["/path/to/dist/index.js"]

支持的平台。 清单存储使用 better-sqlite3 13;它为 Node ≥ 22 上的 macOS(arm64、x64)、Linux(glibc 和 musl,arm64、x64)和 Windows(arm64、x64)提供预构建绑定。其他平台必须从源代码构建绑定(使用 C++ 工具链运行 npm rebuild better-sqlite3),否则服务在打开数据库时会停止运行。

升级到新版本

如果你使用 npx 方式,且新版本已经发布,但你仍在使用旧版本,请清除 npx 缓存并重启 MCP 主机:

rm -rf ~/.npm/_npx

npx -y 会缓存已解析的软件包;在运行 npm publish 后,npm 的注册表元数据缓存可能会在一段时间内继续提供之前安装的版本。上述命令会强制在下次 MCP 启动时重新获取软件包。全局安装和本地开发用户分别通过 npm update -g @qmediat.io/gemini-code-context-mcp 和 git pull && npm run build 升级。

缓存的工作方式

两种模式,可在每次调用时通过 cachingMode 选择,也可通过 GEMINI_CODE_CONTEXT_CACHING_MODE 为所有调用设置:

  • implicit(自 v1.14.0 起为默认值): 每次提问时都会以内联方式发送已扫描的工作区文本;Gemini 的自动前缀缓存可能会按缓存输入价格对重复前缀计费,但这并无保证,而且 Google 端不会在调用之间上传或存储任何内容。
  • explicit: 工作区通过 Files API 上传一次,并创建上下文缓存(caches.create,默认 TTL 为 1 h);后续提问会引用缓存 ID,缓存输入按 Google 的缓存输入价格计费。每当文件发生变化时,都会重建缓存。

显式缓存路径:

         first call                         repeat calls
┌──────────────────────────┐        ┌──────────────────────────┐
│  scan workspace           │        │  scan workspace          │
│  sha256 each file         │        │  sha256 each file        │
│  merge → files_hash       │        │  merge → files_hash      │
│                           │        │                          │
│  upload changed files →   │        │  hash matches manifest   │
│    Files API              │        │  → reuse cached context  │
│                           │        │                          │
│  caches.create(model,     │        │  generateContent(         │
│    contents, ttl=1h)      │        │    cachedContent: ID,    │
│    → cache_id             │        │    contents: prompt      │
│                           │        │  )                       │
│                           │        │                          │
│  generateContent(         │        │  response without the    │
│    cachedContent: ID,     │        │  upload and cache build  │
│    contents: prompt       │        │                          │
│  )                        │        │                          │
└──────────────────────────┘        └──────────────────────────┘
  full input price (125 s measured)    cached-token price (~14 s measured)

深入了解:docs/how-caching-works.md。

配置

所有环境变量、身份验证层级和单次调用覆盖项均列于 docs/configuration.md。

关键变量默认值
GEMINI_CREDENTIALS_PROFILEdefault凭据文件中的配置名称
GEMINI_API_KEY—回退选项(第 3 层;会发出警告)
GEMINI_USE_VERTEX + GOOGLE_CLOUD_PROJECT—启用 Vertex AI 后端
GEMINI_DAILY_BUDGET_USDunlimited每日支出的硬性上限;ask、code 和 ask_agentic(按迭代)均受此限制
GEMINI_CODE_CONTEXT_DEFAULT_MODELlatest-pro-thinking别名或字面 ID,由 ask、ask_agentic 和 code 读取(单次调用的 model 优先)。code 需要思考型推理模型:若默认值解析为其他模型,则该工具会将其替换为 latest-pro-thinking,并在响应中说明(configuredModelReplaced)。默认值属于思考型层级,因此预算应按此估算
GEMINI_CODE_CONTEXT_CACHING_MODE (v1.14.0+)implicit每次 ask / code 调用使用 implicit(内联,Gemini 的自动前缀缓存)或 explicit(Files API + Context Cache);单次调用的 cachingMode 优先
GEMINI_CODE_CONTEXT_SERVICE_TIER (v1.19.0+)standardflex 会让每次 ask / code 调用都使用 Google 的半价层级(延迟更高;负载过高时被拒绝的请求会返回 429/503,并报告为 RATE_LIMIT / OVERLOADED,可重试;若 Google 提供了重试提示,响应中会包含该提示——此服务不会重新发送 flex 请求,由客户端重试);Vertex AI 后端不支持此选项(会明确拒绝);费用估算和每日预算均按 flex 价格计算;单次调用的 serviceTier 优先
GEMINI_CODE_CONTEXT_CACHE_TTL_SECONDS3600Context Cache 的 TTL(显式模式)
GEMINI_CODE_CONTEXT_LOG_LEVELinfodebug / info / warn / error
GEMINI_CODE_CONTEXT_WORKSPACE_GUARD_RATIO (v1.5.0+)0.9工作区在 ask / code 以 WORKSPACE_TOO_LARGE 快速失败前可占用的 model.inputTokenLimit 比例。范围限制为 [0.5, 0.98]。如果你信任分词器的估算值,可将其提高至 0.95;如果仓库中 UTF-8 内容较多,则应调低。
GEMINI_CODE_CONTEXT_TPM_THROTTLE_LIMIT80_000按解析后的模型计算的客户端每分钟令牌数上限。0 表示禁用限流。
GEMINI_CODE_CONTEXT_FORCE_MAX_OUTPUTfalse强制每次调用都发送 maxOutputTokens = model.outputTokenLimit(否则自动设置)。
GEMINI_CODE_CONTEXT_ASK_TIMEOUT_MS (v1.6.0+)disabledask 的墙钟超时时间,单位为毫秒(1s–30min)。Gemini 超过期限时,通过 AbortController 中止。返回 errorCode: "TIMEOUT"。单次调用可通过 ask({ timeoutMs }) 覆盖。注意: AbortSignal 仅在客户端生效——Gemini 仍可能在服务端完成请求,并对已完成的工作计费。
GEMINI_CODE_CONTEXT_CODE_TIMEOUT_MS (v1.6.0+)disabled同上,适用于 code 工具。单次调用可通过 code({ timeoutMs }) 覆盖。
GEMINI_CODE_CONTEXT_AGENTIC_ITERATION_TIMEOUT_MS (v1.6.0+)disabledask_agentic 每次迭代的墙钟时间上限。单次迭代卡住会中止整个 Agentic 调用(若在部分状态下继续,可能导致对话结构不完整)。单次调用可通过 ask_agentic({ iterationTimeoutMs }) 覆盖。

从 gemini-mcp-tool 迁移

只需在 ~/.claude.json 中改动一行。工具名称的详细映射和注意事项见 docs/migration-from-jamubc.md。

安全性

  • API 密钥存储在 ~/.config/qmediat/credentials 中(chmod 0600),绝不存放在 MCP 主机配置中
  • 日志中只会显示指纹(AIza...xyz9)
  • 在本地强制执行每日预算上限,限制密钥泄露造成的影响范围
  • 默认不收集任何遥测数据;清单存储在本地的 ~/.qmediat/ 中
  • code 工具的 codeExecution 在 Google 的沙盒中运行,不会在你的计算机上运行

完整的威胁模型和事件响应说明:docs/security.md。

成本模型

2026-04-22 在 vitejs/vite@main 的 packages/vite/(约 670 k 个令牌,451 个文件;Gemini 3.1 Pro,thinkingLevel: LOW)上使用显式 cachingMode 测得:缓存查询每次 $0.60,内联查询每次 $2.35——缓存命中时便宜约 75 %;冷调用约 125 s,热调用约 14 s。按此工作区每天查询 20 次计算,每位开发者每天需 $35(缓存模式 $12,内联模式 $47)。隐式默认模式不保证折扣:重复查询的成本最高不会超过内联价格。如果模型的价格表未列出缓存费率,成本估算器会按输入费率的 25 % 估算缓存输入——请查询 Google 当前针对你所用模型的缓存输入价格。实际金额会随工作区令牌数 × 每日查询次数 × 思考预算而变化。

各工具的成本明细、免费层使用建议和所有可调参数:docs/cost-model.md。

架构

┌──────────────┐   stdio   ┌────────────────────────────────────┐   HTTPS   ┌─────────────┐
│  Claude Code │◄─────────►│  @qmediat.io/gemini-code-context-… │◄─────────►│  Gemini API │
└──────────────┘           └────────────────────────────────────┘           └─────────────┘
                                        │
                            ┌───────────┼───────────┬──────────────────┐
                            ▼           ▼           ▼                  ▼
                     ┌───────────┐ ┌─────────┐ ┌──────────┐     ┌──────────────┐
                     │ Workspace │ │  Cache  │ │ Manifest │     │ TTL Watcher  │
                     │  Indexer  │ │ Manager │ │ (SQLite) │     │ (background) │
                     └───────────┘ └─────────┘ └──────────┘     └──────────────┘

更多信息:docs/architecture.md。

维护与支持

本项目由 Quantum Media Technologies sp. z o.o. 构建并维护。该公司是一家在波兰注册的科技公司(qmediat.io),并在自己的 Claude Code 会话中使用 gemini-code-context-mcp。对用户而言,这意味着:

  • 影响实际编码会话的问题会优先修复。 例如:v1.5.1 修复了 Node fetch failed 临时错误后的重试问题(在大型仓库的一次实际 /coderev 运行中发现);v1.7.0 增加了流式心跳(HIGH 思考级别下 60-180 s 的无响应间隔给我们自己的团队带来了不便);v1.7.2 修复了 CI 中的假计时器竞态问题(导致发布流水线中断;通过 3-tool 模型咨询诊断,当天修复并发布)。
  • 长期路线图,而非周末项目。 商业支持意味着该项目已纳入 qmediat.io 的产品路线图,并分配了工程资源。我们不会突然消失。完整的发布历史及日期见 CHANGELOG.md。
  • 欢迎提交问题和 PR。 请在 github.com/qmediat/gemini-code-context-mcp/issues 提交——我们力争在 48 小时内回复。商业咨询(定制集成、支持合同、本地部署):[email protected]。
  • 如果它为你节省了时间,请为仓库 ⭐ 点星。 这是你能发出的最简单信号,表明这项工作值得继续,也能直接帮助我们证明持续投入的价值。

贡献

请参阅 CONTRIBUTING.md。简而言之:使用 TypeScript strict,运行 npm run lint && npm run typecheck && npm test,添加一条 CHANGELOG 记录,然后提交 PR。

商标与关联关系

Gemini 是 Google 的商标。本项目由 Quantum Media Technologies sp. z o.o. 独立发布并由社区维护;与 Google 无关,未获其赞助或认可。通过此服务使用 Gemini API 或 CLI 须遵守 Google 自身的条款,并使用你自己的 API 密钥或账户。

许可证

MIT © Quantum Media Technologies sp. z o.o. — 详见 LICENSE。

这是 qmediat 开源项目组合的一部分。


由 Quantum Media Technologies 制作 · 更多来自 qmediat 的开源项目

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。