Hosted MCP
Call shebang's MCP server over HTTPS, with either an shb_ key or sherlock OAuth, and what's different from the local server.
Hosted MCP
Instead of running shebang-mcp as a local stdio process, point any
MCP-over-HTTP-capable harness straight at:
https://api.shebang.pro/mcp
It's the same tools, the same schemas, the same behavior as the stdio
server (see tools reference) — with one
difference: no local filesystem. store_upload_file reads a path off
whatever disk the MCP server process can see; over stdio that's your own
machine, but the hosted server runs inside shebang's own infrastructure,
so a path there would name a file on shebang's side, not yours. The
hosted endpoint omits store_upload_file entirely and registers
store_upload_content in its place — upload by supplying the bytes
directly (contentBase64 or text) instead of a path. Every other tool
is identical between the two servers.
Authentication
The hosted endpoint accepts either credential, on the same header:
- An
shb_…key, same as everywhere else —Authorization: Bearer shb_.... - A sherlock OAuth access token, obtained via the authorization-code flow
(PKCE) against
auth.shebang.pro— the same kind of token your own app would use to call a database's Data API as a signed-in user.
Both are checked by the same code path, so a tool call never knows or cares which kind of credential it received; a token's home project (if its OAuth client has one) scopes it exactly like an app key bound to that project.
A request with neither credential gets 401 with a WWW-Authenticate: Bearer header naming
https://api.shebang.pro/.well-known/oauth-protected-resource — RFC 9728
protected-resource metadata — so a compliant OAuth client can discover
the authorization server with no manual configuration at all.
Set up a harness
Claude Code discovers and registers itself with no key ever leaving your machine:
claude mcp add --transport http shebang https://api.shebang.pro/mcp
On first use, Claude Code calls /mcp, gets the 401 above, fetches the
protected-resource document, follows authorization_servers to sherlock's
own discovery document, finds its dynamic client registration endpoint,
registers itself as a public OAuth client (PKCE, S256 only), and opens
your browser to sherlock's consent screen. Approve there and every
following call carries the issued access token automatically — nothing
to copy, paste, or store yourself.
Any other HTTP-capable MCP harness that also does this discovery
dance needs no more than the URL above. One that doesn't (or that you'd
rather point at a plain key) can skip OAuth entirely and use a generic
config with an shb_… key instead:
{
"mcpServers": {
"shebang": {
"url": "https://api.shebang.pro/mcp",
"headers": {
"Authorization": "Bearer shb_..."
}
}
}
}
Mint that key the same way as for the local server — see
your first key — or register an OAuth
client by hand with the oauth_create_client tool (or dynamic
registration directly against sherlock) if your harness supports OAuth
but not zero-configuration discovery.
Next
Hosted MCP (getting started) — the
shorter landing version of this page. API reference — the
401/403 shapes, the api.shebang.pro rewrite, and the
protected-resource document's exact response body.