MCP Server Catalog
Ten MCP servers ship under the sonny.sh/mcp/ namespace. Each is its own Go module in its
own private repository. The sonny.sh/mcp/<name> pages provide machine-readable
go-import metadata for authorized consumers. Browser visitors stay on the
public documentation site. These modules are commercial software; see
Licensing and access
.
| Server | What it covers | Entrypoint |
|---|---|---|
analyst | Reproducible statistical analysis | cmd/analyst |
atlassian | The complete Atlassian API capability surface | cmd/atlassian |
code-manager | Code, dependency and delivery intelligence for the CodePros organisation | cmd/code-manager |
forensics | Evidence-preserving forensic orchestration | cmd/forensics |
msft | Microsoft Graph and related Microsoft API surface, as permission-scoped tools | cmd/msft-mcp |
netcap | Capture, deep packet inspection, assets and controlled packet modification | cmd/netcap |
project-manager | Project management with evidence-preserving transcripts | cmd/project-manager, cmd/pm-parse-worker |
threat-intel | Provenance-aware threat intelligence | cmd/threat-intel |
vuln | Normalised vulnerability intelligence | cmd/vuln |
web-crawler | Controlled web acquisition and extraction | cmd/web-crawler |
Each server also ships a generated configs/<name>.json server configuration, a docs/ tree,
and (for most) a minimal examples/basic program, generated by
apic from its API contract.
Module paths matter here
The vanity prefix and the Go module path agree for eight of the ten, but not all:
| Server | go.mod module path |
|---|---|
analyst, atlassian, forensics, netcap, project-manager, threat-intel, vuln, web-crawler | sonny.sh/mcp/<name> |
code-manager | gitlab.com/devnw/codepros/sonny/mcp/code-manager |
msft | devnw.dev/mcp/msft |
For the eight, go install sonny.sh/mcp/<name>@latest works: the redirect and the declared
module path agree. For code-manager and msft the vanity URL still redirects the browser and
still resolves the repository, but Go requires the required path and the declared path to match,
so install from the declared path:
go install sonny.sh/mcp/analyst@latest
go install gitlab.com/devnw/codepros/sonny/mcp/code-manager/cmd/code-manager@latest
go install devnw.dev/mcp/msft/cmd/msft-mcp@latest
go install needs access to the repositories and, for a private
host, GOPRIVATE/GONOSUMDB and credentials configured. Check each repository’s own status
before relying on it: several are at an early milestone — code-manager describes itself as the
M0 foundation with real MCP wiring landing later, and msft as a bootstrap skeleton whose
generated tool surface lands under its tracked epics. Read the repository’s README.md and
docs/ for the current tool surface rather than assuming one.Registering one with Sonny
Write the binary you built into an mcp.yaml server entry, then approve it so the allowlist
pins it (Trust model
):
# ~/.config/sonny/mcp.yaml
servers:
- name: analyst
type: stdio
command: /usr/local/bin/analyst
env_allowlist: ["ANALYST_TOKEN"]
sonny mcp approve server analyst --command /usr/local/bin/analyst
sonny mcp list --connect
Or write a project-scoped entry in .sonny/mcp.yaml and approve it from inside the repository:
sonny mcp approve server analyst --project
Servers that expose an SSE endpoint are registered with type: sse and url, and must
declare an egress.allow_hosts policy naming their own host — remote egress is deny-by-default
and a remote server without a policy loads but is never connected.
Transport notes
Most servers are built from the same generated skeleton, whose default server configuration
listens on 127.0.0.1 with a /health endpoint, a /ws/mcp WebSocket route, and transports
including http, websocket and stdio. Sonny speaks stdio and sse to MCP servers.
Configure these servers as stdio subprocesses (or as sse with an egress policy); Sonny does
not connect to a raw HTTP or streamable_http MCP endpoint. Consult each repository for how to
select its stdio transport.
Running Sonny’s own tools as an MCP server
The catalog is not one-directional. sonny mcp-server exposes Sonny’s own catalog-classified,
host-pure tools over stdio, so another MCP client can drive Sonny:
sonny mcp-server --allowed-tools read_file,edit_file
| Flag | Effect |
|---|---|
--allowed-tools <csv> | comma-separated tool names to expose; empty exposes none |
--allow-host-effects | explicitly permit model-driven filesystem, network and process effects on this host |
--realm-contained | require and use Sonny’s verified realm process environment |
--proxy-config <file> / --proxy-server <name> | expose an allowlisted upstream MCP definition through Sonny as a traced proxy |
--supervisor-endpoint / --supervisor-tenant / --supervisor-session | serve admitted tools from an existing supervisor |
--allow-host-effects itself; do not add
it because a client asks you to.