内容
# 代码卸载工具
[](https://opensource.org/licenses/MIT)
[](https://www.npmjs.com/package/offload-mcp)
**将常规编码辅助工作卸载到更经济的模型。**
默认模型链使用Gemma,因为这些模型非常有用、开放且有趣。运行它们可能会占用大量RAM、GPU和设置;Gemini API(来自Google AI Studio的密钥)使其易于用于小型日常任务,几乎没有成本。你可以使用任何支持的模型ID。
## 安装
从 <https://aistudio.google.com/apikey> 获取免费的API密钥。
选择一种安装方式。
### 选项1:npx(推荐)
`npx` 按需下载并运行 `offload-mcp@latest`。您不需要全局安装该软件包。您的MCP客户端在启动服务器时运行此命令。
JSON风格的MCP配置:
```json
{
"mcpServers": {
"offload-mcp": {
"command": "npx",
"args": ["offload-mcp@latest"],
"env": { "GOOGLE_AI_API_KEY": "your_key" }
}
}
}
```
TOML风格的MCP配置:
```toml
[mcp_servers.offload-mcp]
command = "npx"
args = ["offload-mcp@latest"]
env = { GOOGLE_AI_API_KEY = "your_key" }
```
测试npm是否可以解析软件包:
```bash
npx offload-mcp@latest
```
这将启动一个MCP stdio服务器,因此它将等待MCP客户端而不是打印正常的CLI屏幕。
### 选项2:全局npm安装
一次性安装:
```bash
npm install -g offload-mcp
```
然后直接在MCP配置中使用二进制文件。
JSON风格的MCP配置:
```json
{
"mcpServers": {
"offload-mcp": {
"command": "offload-mcp",
"env": { "GOOGLE_AI_API_KEY": "your_key" }
}
}
}
```
TOML风格的MCP配置:
```toml
[mcp_servers.offload-mcp]
command = "offload-mcp"
env = { GOOGLE_AI_API_KEY = "your_key" }
```
更新全局安装:
```bash
npm update -g offload-mcp
```
## 使用
请求您的助手卸载例行工作:
```text
卸载当前差异的提交消息
卸载此翻译为墨西哥西班牙语:<text>
使用卸载功能总结src/index.ts
```
对于本地差异和文件,`offload_source` 是重要的路径,因为MCP服务器直接读取输入:
```text
offload_source(task="commit_message", source="git_diff")
offload_source(task="pr_description", source="git_staged_diff")
offload_source(task="code_summary", source="file", path="src/index.ts")
```
页脚示例:
```text
—— 通过gemma-4-31b-it卸载 · 307 模型令牌 · ~1,420 主要输入令牌避免 · [offload-mcp](https://github.com/peterhadorn/offload-mcp)
```
`model tokens` 来自API响应。`primary input tokens avoided` 是估计值,仅在使用 `offload_source` 时出现。
## 任务
```text
commit_message
pr_description
code_summary
translate
changelog_entry
naming_suggestion
classify
extract_data
code_review_single
docstring
subject_lines
freeform
```
使用 `freeform` 执行其他任务:
```text
offload(task="freeform", content="ECONNREFUSED 10.0.1.5:5432", prompt="重写为用户友好的错误消息。仅输出消息。")
```
## 状态
`offload_status` 显示本地使用计数器:
```text
今日:47/14400 调用(0.3%),28,500 模型令牌处理
本月:8 天 312 调用(平均 39/天),187,400 模型令牌处理
估计避免的主要输入:今日 ~12,800 令牌,本月 ~74,200 令牌
今日任务:
commit_message:18
docstring:12
code_summary:9
```
默认情况下,统计信息存储在 `~/.offload-mcp/usage.json` 中。只有计数器被存储,而不是任务内容。
## 配置
| 环境变量 | 默认值 | 描述 |
|---------|---------|-------------|
| `GOOGLE_AI_API_KEY` | - | 必需 |
| `OFFLOAD_MODEL` | `gemma-4-31b-it` | 首选模型 |
| `OFFLOAD_FALLBACK_MODELS` | `gemma-4-26b-a4b-it` | 以逗号分隔的备用模型 |
| `OFFLOAD_TIMEOUT_MS` | `20000` | 每个模型的请求超时 |
| `OFFLOAD_RETRIES_PER_MODEL` | `1` | 每个模型重试次数(1 = 无重试) |
| `OFFLOAD_RPD_LIMIT` | `14400` | 本地每日调用限制。如果您的Gemini API帐户有更严格的配额,请降低此限制。 |
| `OFFLOAD_LOG_PATH` | `~/.offload-mcp/usage.json` | 本地使用统计信息 |
默认情况下,请求首先尝试 `gemma-4-31b-it`,在超时、速率限制和瞬时服务器错误时回退到 `gemma-4-26b-a4b-it`。设置 `OFFLOAD_FALLBACK_MODELS=` 以禁用回退。
## 数据
offload-mcp 将任务内容发送到配置的Gemini API模型。除非您的策略允许,否则请勿卸载机密、私人客户数据、专有代码或受监管的数据。
`offload_source` 使用 `source="file"` 读取MCP服务器进程可以访问的任何文件路径。将 `path` 和 `cwd` 参数视为来自MCP客户端的受信任本地输入。
MIT