mcpField
S
siGit CLI

siGit CLI

本地服务
github.com版本控制6今天更新

关于 siGit CLI

siGit CLI 是用于 sigit.si 的命令行工具,可管理仓库、PR、Issue、代码搜索和 Cloud Sessions。它也能通过 stdio 将这些操作提供给 AI Agent,并可限制工具范围或设为只读。

主要功能

  1. 01管理仓库、PR 和 Issue
  2. 02搜索代码并管理 Cloud Sessions
  3. 03读取命令支持 JSON 输出
  4. 04按工具集筛选 MCP 工具
  5. 05提供只读 MCP 模式

适用场景

  1. 01在终端查看仓库和 PR
  2. 02让 AI Agent 分流 Issue
  3. 03限制 Agent 只能读取数据

MCP 相关

运行 `si mcp` 可通过 stdio 将相同命令提供为 MCP 工具。支持只读模式和按工具集筛选;凭据复用 `si auth login` 保存的令牌。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
cargosigit-si-cli1.3.0

工具

还没有获取到工具列表

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

详细介绍

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/cliserver.json此 CLI:一个通过 cargo 包列出、可通过标准输入输出运行 si mcp 的条目。
si.sigit/sigitserver-sigit.jsonsigit.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

评论

支持 Markdown

第一次接触 MCP?

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

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