关于 siGit CLI
siGit CLI 是用于 sigit.si 的命令行工具,可管理仓库、PR、Issue、代码搜索和 Cloud Sessions。它也能通过 stdio 将这些操作提供给 AI Agent,并可限制工具范围或设为只读。
主要功能
- 01管理仓库、PR 和 Issue
- 02搜索代码并管理 Cloud Sessions
- 03读取命令支持 JSON 输出
- 04按工具集筛选 MCP 工具
- 05提供只读 MCP 模式
适用场景
- 01在终端查看仓库和 PR
- 02让 AI Agent 分流 Issue
- 03限制 Agent 只能读取数据
MCP 相关
运行 `si mcp` 可通过 stdio 将相同命令提供为 MCP 工具。支持只读模式和按工具集筛选;凭据复用 `si auth login` 保存的令牌。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
sigit-si-cli
si 是 sigit.si 的命令行界面,可用于登录、管理仓库、审查拉取请求、分类处理问题、搜索代码,以及在终端中驱动 Cloud Sessions。它就是 sigit.si 的 gh。
安装
cargo install --path crates/cli
这会安装一个名为 si 的二进制文件。
用法
si auth login # sign in with your sigit.si account
si repo list # your repositories
si repo create my-project --private
# Inside a repo checkout, si infers OWNER/NAME from the sigit.si git remote —
# --repo is only needed when you're not standing in one.
si pr list
si pr view 42
si pr create --title "Fix the thing" --base main
si issue list --state open
si issue create --title "Bug: ..." --body "Steps to reproduce..."
si code search "TODO" --ref main
si code view README.md
si session new --title "Refactor auth"
si billing show
si browse # open the current repo on sigit.si
si api repos # raw escape hatch for any endpoint
在任何读取命令中传入 --json,即可获得机器可读的输出。
作为 MCP 服务
si mcp 会通过标准输入输出,将这些相同的命令作为 MCP 工具提供给 AI Agent:
{
"mcpServers": {
"sigit": { "command": "si", "args": ["mcp"] }
}
}
无需进行身份验证——服务会复用 si auth login 存储的令牌。将编辑器指向某个检出目录后,仓库工具默认会使用你当前所在的仓库,因此 Agent 无需指定仓库名称,就能说“列出未关闭的拉取请求”;create_pull_request 同样会默认将当前检出的分支设为源分支。
如果 Agent 不需要全部工具,可以精简工具列表:
si mcp --read-only # drop every tool that writes
si mcp --toolsets repo,issue,pr,code # or SIGIT_TOOLSETS=repo,issue
工具集包括 account、repo、issue、pr、code、hook、session 和 billing。sigit.si 也在 /api/v1/mcp 提供远程 MCP 服务,供更倾向于通过 HTTP 而非启动二进制文件进行连接的客户端使用。
环境
si --environment dev repo list # a local sigit.si server (localhost:3000)
SIGIT_HOST=staging.example.com si repo list
凭据按环境存储在 ~/.sigit/token(或 ~/.sigit-dev/token)中。SIGIT_TOKEN 会覆盖存储的令牌,CI 正是通过这种方式在无需交互式登录的情况下进行身份验证。
工作区布局
crates/sigit-si-api— 独立的、类型化的 Rust 客户端,用于访问 sigit.si JSON API。不依赖 CLI(clap、dialoguer 等);任何需要与 sigit.si 通信的 Rust 项目都可使用,包括桌面应用。crates/cli—si二进制文件:命令解析、终端渲染、git 远程地址解析和凭据存储,基于sigit-si-api构建。
sigit.si 目前尚未为问题、拉取请求和代码搜索提供 REST 接口——这些功能通过 AI Agent 使用的同一个 MCP(Model Context Protocol)JSON-RPC 端点提供。sigit-si-api 在内部使用该传输机制;在调用处看不到它。
MCP Registry 条目
此仓库会向官方 MCP Registry发布两个条目,分别对应连接到相同工具的两种方式,让支持 Registry 的客户端可以一键添加其中任意一个:
| 条目 | 文件 | 说明 |
|---|---|---|
si.sigit/cli | server.json | 此 CLI:一个通过 cargo 包列出、可通过标准输入输出运行 si mcp 的条目。 |
si.sigit/sigit | server-sigit.json | sigit.si/api/v1/mcp 上托管的服务,一个远程 Streamable-HTTP 条目。sigit-si-api 与之通信,也是官方服务 siGit Code 内置的服务。 |
CLI 保留 server.json,因为这是此仓库发布的内容,也是 mcp-publisher 默认使用的文件名。同级条目以各自的末级名称命名,因此文件名能表明它发布的是哪个条目。
两个条目都通过 release-mcp-registry.yml 工作流发布,并通过 sigit.si 上的 DNS TXT 记录证明命名空间所有权,而不是使用 GitHub OIDC,因此一份凭据即可覆盖这两个条目。包条目还有第二道门槛:Registry 会从 crates.io 获取 crate,并在其 README 中查找 mcp-name: si.sigit/cli 标记,因此该标记必须放在此文件中。crate 版本不可变,因此发布时若未包含该标记,就永远无法列入 Registry;修复则需要发布新版本。内部设置和发布操作手册与服务一同保存在私有的 sigit-si 仓库中。
开发
make build # cargo build --workspace
make test # cargo test --workspace
make lint # cargo clippy --workspace --all-targets -- -D warnings
make fmt # cargo fmt --all
make check # fmt + lint + test
免责声明
所有破折号均由 Seto Elkahfi 撰写。
许可证
Apache-2.0
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。