MCP servers
hipmmcode is a full Model Context Protocol client: stdio, HTTP, and SSE transports, OAuth 2.0 sign-in, standard .mcp.json files, and a trust gate for project-supplied servers. Each connected server's tools appear to the model as mcp__<server>__<tool>; its resources via ListMcpResources / ReadMcpResource.
Adding servers
# stdio — everything after `--` is the subprocess command
hipmmcode mcp add fs -- npx -y @modelcontextprotocol/server-filesystem /tmp
# HTTP
hipmmcode mcp add --transport http notion https://mcp.notion.com/mcp
# HTTP with an auth header
hipmmcode mcp add --transport http github https://api.githubcopilot.com/mcp/ \
--header "Authorization: Bearer <PAT>"
# raw JSON (same shape as a .mcp.json entry)
hipmmcode mcp add-json weather '{"type":"http","url":"https://…"}'
# a packaged .mcpb bundle
hipmmcode mcp add-mcpb ./server.mcpbUseful flags: -e KEY=VALUE (stdio env), -H "Header: V" (repeatable), --transport stdio|http|sse (inferred from URL when omitted), --client-id / --callback-port (OAuth).
Scopes
| Scope | Where it lives | Visibility |
|---|---|---|
local (default) | your config, keyed to this project | just you, just here |
project | .mcp.json in the repo | everyone on the repo — requires approval (below) |
user | your config | you, in every project |
hipmmcode mcp add -s project … writes the standard .mcp.json, so the whole team shares the server definition.
Managing
hipmmcode mcp list # merged view across scopes, marks [project, pending approval]
hipmmcode mcp get <name> # resolved config, secrets masked
hipmmcode mcp remove <name> # scope auto-detected, or -s to pin
hipmmcode mcp login <name> # browser OAuth flow for protected servers (--force re-auth)
hipmmcode mcp reset-project-choices [--all]Live in the REPL, /mcp opens the interactive panel: ↑/↓ select → view tools / reconnect / enable / disable / approve / reject:
› /mcp MCP servers 3 configured · 1 pending approval ❯ notion http · connected · 12 tools fs stdio · connected · 8 tools corp sse · [project, pending approval] Enter: View tools · r Reconnect · d Disable · a Approve · x Reject
Trust gate
A server that arrives via a project's .mcp.json stays pending until you approve it (/mcp approve or the panel) — checked-in config can't silently gain tool access. Decisions persist per project; reset with mcp reset-project-choices.
Agent-driven configuration
The agent can manage MCP itself through the McpConfig tool — "connect the Notion MCP server" just works, writing standard .mcp.json. Mutating operations are gated by the permission engine (prompt in default mode, fail-closed when unattended).
Live tool refresh
When a connected server's tool set changes mid-session (a server added, renamed, or removed a tool), the agent can call RefreshMcpTools to re-run tools/list over the existing connections and publish the changed schemas before its next request — no session restart needed. It fails safe: a failed refresh keeps the previous catalog, stale concurrent results can't overwrite newer ones, and a disconnected server is never silently redialed (reconnect from the /mcp panel instead).
Server config shape
.mcp.json / mcpServers entries:
{
"mcpServers": {
"fs": { "type": "stdio", "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"], "env": {} },
"notion": { "type": "http", "url": "https://mcp.notion.com/mcp", "headers": {} },
"corp": { "type": "sse", "url": "https://mcp.corp.dev/sse",
"headersHelper": "vault read -field=hdrs secret/mcp",
"oauth": { "clientId": "…", "callbackPort": 8080, "scopes": "read write" },
"timeout": 30000, "alwaysLoad": true }
}
}${VAR} environment expansion is supported in values; headersHelper runs a shell command that prints headers as JSON (short-lived tokens).
External sync & CLI overrides
mcpSyncFromClaude(default on) auto-imports MCP servers already configured for the.claudeecosystem, so existing setups work immediately.hipmmcode mcp sync offdisables; barehipmmcode mcp syncdoes a one-shot copy into user scope instead.--mcp-config <file|json>(repeatable) loads extra servers for one run;--strict-mcp-configuses only those, ignoring project/user/plugin/IDE sources.