Resolve capabilities by intent
Add natural-language use_when hints once. Search and resolve index them with live tool metadata, so an agent can find the right server even when it is not pinned.
Follow the discovery loop
Connect each harness once. In lazy mode, agents can match the current task against your live catalog — including unpinned tools — then call the right capability through one gateway while mcphub keeps 15 agent configs in sync.
$ brew install abdul-hamid-achik/tap/mcphubCapability routing
In lazy mode, mcphub keeps the catalog out of the prompt but not out of reach. Tool metadata and your use_when hints stay searchable, so an agent can resolve the current task, inspect the match, and call it through the gateway.
“Fetch a public HTTP response as Markdown for source-backed research”
webpageHTTPMarkdownresearchhitspec__fetchBounded HTTP response → inline Markdown“Investigate evidence across code, CLI output, and databases”
evidencecase filetool routingverificationcortex__investigateBounded investigation with retained evidence“Inspect the repository plan before developing a feature”
repositoryplanconvergenceread-onlybob__planDeterministic plan and digest before editsSee it run
One YAML file in, twelve synced harnesses out — and a local ledger of what every server actually costs you.
$ mcphub sync
» claude (claude, gateway) → ~/.claude.json
update mcphub
» codex (codex, gateway) → ~/.codex/config.toml
update mcphub
» copilot (copilot, gateway) → ~/.copilot/mcp-config.json
update mcphub
» crush (crush, gateway) → ~/.config/crush/crush.json
update mcphub
» hermes (hermes, gateway) → ~/.hermes/config.yaml
update mcphub
» opencode (opencode, gateway) → ~/.config/opencode/opencode.json
update mcphub
Dry run. Re-run with --write to apply (a .bak is saved first).How it works
mcphub initWrite mcphub.yaml once — or import the servers your agents already declare with --from-agents.
mcphub sync --writePush the right config into every harness. Dry-run by default, a timestamped .bak before any write.
mcphub mcp serveYour agent gets one gateway. Lazy mode resolves unpinned tools from use_when hints and live metadata, then records every call locally.
Syncs into 12 harnesses
one registry → the right capability → one gateway