Skip to content

Bake in the smbCloud CLI's stdio MCP server#41

Merged
paydii merged 2 commits into
developmentfrom
feature/smbcloud-mcp-builtin
Jul 20, 2026
Merged

Bake in the smbCloud CLI's stdio MCP server#41
paydii merged 2 commits into
developmentfrom
feature/smbcloud-mcp-builtin

Conversation

@paydii

@paydii paydii commented Jul 19, 2026

Copy link
Copy Markdown
Collaborator

sigit already bakes in its official HTTP MCP server. This adds a second built-in entry: the smbCloud CLI's stdio server (smb --mcp), so smbCloud project and deployment tools (mcp__smbcloud__project_list, deployments, me, ...) work out of the box, with no mcp.toml setup.

How it behaves

  • The entry is only added when the smb binary is actually on PATH (checked with the platform's executable suffix, so .exe on Windows). Users without smbcloud-cli installed see nothing in /mcp instead of a spawn failure.
  • A user-defined mcp.toml server named smbcloud overrides the baked-in one, same never-clobber rule as the official sigit entry.
  • Opt out with smbcloud = false in mcp.toml or SIGIT_MCP_SMBCLOUD=off, mirroring official = false / SIGIT_MCP_OFFICIAL.
  • Like the official server's query tools, smbcloud's read-only tools (me, deployments, project_list, project_show) run without a permission prompt. This uses an explicit allow-list rather than the official server's list_/get_ name-shape check, so a tool the list doesn't know fails safe to mutating; project_create/project_update/project_delete stay behind the ask-by-default gate, and query-shaped names on foreign servers get no exemption.

Testing

  • cargo fmt -- --check, cargo clippy --tests -- -D warnings, and cargo test --locked are all green locally (237 tests, including new coverage for the opt-out flag, the PATH probe, the namespace suffix helper, and the read-only classification).
  • Smoke-tested the real server: piped an initialize/tools/list handshake into smb --mcp over stdio and got the expected 7 tools back, confirming it speaks the newline-delimited JSON-RPC framing sigit's stdio client expects.

paydii added 2 commits July 19, 2026 13:55
sigit already bakes in its official HTTP MCP server. This adds a second
built-in entry: the smbCloud CLI's stdio server (smb --mcp), so smbCloud
project and deployment tools are available without any mcp.toml setup.

The entry is only added when the smb binary is actually on PATH, so users
without smbcloud-cli installed see nothing rather than a spawn failure in
/mcp. A user-defined server named smbcloud overrides the baked-in one, and
it can be switched off with smbcloud = false in mcp.toml or
SIGIT_MCP_SMBCLOUD=off, mirroring the official server's opt-outs.
The official server's query tools already run without prompting; give the
baked-in smbCloud CLI server the same treatment for its read-only tools
(me, deployments, project_list, project_show).

Unlike the official server's list_/get_ name-shape check, this is an
explicit allow-list, since smb's tool names follow no such convention. A
name the list doesn't know (say, from a newer smb release) fails safe to
mutating, and the exemption only applies when smbcloud is the whole
server name, so a foreign server can't borrow it.
@paydii paydii self-assigned this Jul 19, 2026
@paydii
paydii merged commit d43d986 into development Jul 20, 2026
18 checks passed
@paydii
paydii deleted the feature/smbcloud-mcp-builtin branch July 20, 2026 18:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants