内容
# 克劳德SVN工具
适用于 [克劳德代码](https://docs.claude.com/en/docs/claude-code) 和 [协作](https://claude.com/product/cowork) 的Subversion(SVN)集成。
封装本地 `svn` 命令行界面为MCP工具,以便克劳德可以运行 `status`、`log`、`diff`、`info`、`list`、`cat`、`blame`、`update`、`checkout`、`add`、`revert`、`merge` 和 `resolve` 命令,针对您的工作副本。`svn commit` 命令故意不暴露 — 仓库写入权限由您自行决定。
## 安装
### 协作
两种方法:
**拖放至聊天(最简单)** 下载 [`svn-tools.plugin`](./svn-tools.plugin),然后从文件资源管理器/访达拖放至任意打开的协作对话中。它将渲染为安装卡片 — 点击安装。(从文件管理器双击文件不会产生任何效果 — 没有操作系统文件关联。)
**或通过自定义菜单** 协作标签 → **自定义** 在左侧边栏 → **添加插件** → **上传文件** → 拖放或浏览至文件。协作的文件选择器可能会过滤为 `.zip` 格式 — 如果是这样,只需将 `svn-tools.plugin` 重命名为 `svn-tools.zip`(无论是哪种存档格式都可以),然后重试。
### 克劳德代码
```bash
/plugin marketplace add EvoPulseGaming/claude-svn-tools
/plugin install svn-tools@claude-svn-tools
```
## 先决条件
- Subversion 命令行客户端(`svn`)位于 `PATH` 中。可以使用 `svn --version` 验证。
- Python 3.8+ 位于 `PATH` 中,作为 `python`。MCP服务器是一个单一的零依赖Python脚本。
- 缓存的SVN凭证。服务器以 `--non-interactive` 运行 `svn`,因此它永远不会提示输入密码 — 如果凭证未缓存,命令将失败,并出现明确的身份验证错误,您可以通过交互式运行任意 `svn` 命令重新缓存它们。
## 配置
安装后,通过编辑已安装插件的 `.mcp.json`,将插件指向默认工作副本:
```json
{
"mcpServers": {
"svn": {
"command": "python",
"args": ["${CLAUDE_PLUGIN_ROOT}/server/svn_mcp_server.py"],
"env": {
"SVN_DEFAULT_WC": "K:\\my-project",
"SVN_TIMEOUT_SEC": "60",
"SVN_MAX_OUTPUT_BYTES": "200000"
}
}
}
}
```
| 变量 | 默认值 | 用途 |
|---|---|---|
| `SVN_DEFAULT_WC` | (无) | 工具调用省略 `path` / `cwd` 时使用的默认工作副本路径。 |
| `SVN_TIMEOUT_SEC` | `60` | 每个 `svn` 调用的硬超时。 |
| `SVN_MAX_OUTPUT_BYTES` | `200000` | 返回的stdout+stderr的上限;超过此限制时截断并标记。 |
## 更新
编辑 `plugins/svn-tools/` 下的任何内容后:
1. 在 `plugins/svn-tools/.claude-plugin/plugin.json` 和 `.claude-plugin/marketplace.json` 中均增加 `version` 版本号。
2. 重新构建软件包: `cd plugins/svn-tools && zip -r ../../svn-tools.plugin . -x "*/__pycache__/*"`
3. 提交并推送。
## 许可证
[取消许可](./LICENSE) — 公共领域奉献。您可以对其做任何事情。