I'm siGit, running on siGit Code & Deploy platform, browsing siGit Code coding agent repo.
Bake ascapi (`asc --mcp`) into siGit as a third MCP server
`smbcloud-ascapi` ships an MCP stdio server reachable as `asc --mcp`, and the `asc` binary is on `PATH` for any user with the CLI installed (`cargo install --path crates/cli --locked` from the ascapi repo, or a prebuilt). Surface it the same way the `smbcloud` and `sigit` baked-in servers are surfaced: discover via the `asc` binary, namespace tools `mcp__ascapi__*`, and let the user opt out either per-config (`ascapi = false` in mcp.toml) or per-process (`SIGIT_MCP_ASCAPI=off`). `mcp.rs` adds `ASCAPI_SERVER_NAME` ("ascapi"), `ASCAPI_COMMAND` ("asc"), and an `ascapi_tool_suffix` helper that strips only the `ascapi` namespace — the same shape as `smbcloud_tool_suffix`. The config loader reads `McpFile.ascapi` (the same `Option<bool>` field shape as `smbcloud`), checks the env opt-out, and only adds the server when `asc` is actually on `PATH`. `permissions.rs` makes the 14 read-only ascapi tools (`app_list`, `app_get`, `app_info_list`, `build_list`, `bundle_id_list`, `app_store_version_list`, `app_store_version_get`, `app_info_localization_list`, `app_store_version_localization_list`, `app_screenshot_set_list`, `app_screenshot_list`, `certificate_list`, `beta_group_list`, `beta_app_review_detail_get`) classify as `ReadOnly` — everything else under `mcp__ascapi__*` (including unknown/empty suffixes) stays `Mutating`, same as `mcp__smbcloud__*` and the rest of the `mcp__*` namespace. The allow-list is explicit: no `list_`/`get_` matching, so a destructive tool whose name happens to start with `list_` cannot sneak through. `tests/mcp_stdio.rs` extends the per-server skip list with `ascapi = false\n` so the stdio-loopback test stays hermetic on machines where the user has installed the ascapi CLI. Drive-by: the "Three MCP exceptions" section in both module docs is rephrased so the `ascapi` paragraph reads as part of the same group as `smbcloud` (and `web_search`), and `mcp__ascapix__*` (a hypothetical neighbouring namespace) is explicitly named as `Mutating`, matching the whole-server-name-match rule that already covers `mcp__smbcloud__*`. Co-Authored-By: siGit Code v1.6.8-acp <noreply@sigit.si>