Org MCP endpoint
Overview
Every HUMΛN org can expose a hosted MCP endpoint at https://{org_slug}.mcp.haio.run. The Worker merges two tool catalogs:
@human/mcp (human.ask, human.call, developer tools pack, …)GET /v1/mcp/toolsHost routing enforces that the delegation's org matches the subdomain (apps/mcp-worker/src/host-routing.ts). A token for did:org:acme cannot call tools on https://other-co.mcp.haio.run.
Why an org endpoint?
tools/list without redeploying the Worker/mcp (Streamable HTTP), /sse + /messages, OAuth discovery on auth.mdHUMAN_ORG_ENDPOINT=https://{slug}.mcp.haio.run for npx @human/mcpThink of it like: Your org's API gateway for AI clients — one URL, governed tools, Passport delegation at the door.
Shipped surfaces
| Host | MCP base | Discovery |
|---|---|---|
| Personal / platform | https://mcp.haio.run | GET /auth.md |
| Org workspace | https://{org_slug}.mcp.haio.run | GET /.well-known/oauth-authorization-server |
| Staging | https://{org_slug}.mcp-staging.haio.run | Same shape as production |
| API | Purpose |
|---|---|
GET /v1/mcp/tools | Org capability graph → MCP tool definitions (Worker caches ~60s) |
POST /v1/mcp/proxy | Fallback when a tool is in @human/mcp but not in the Worker catalog |
POST /v1/mcp-sessions/register | Worker registers Streamable HTTP sessions (internal) |
apps/mcp-worker/src/org-tools.ts, packages/mcp/src/server.ts (stdio bridge).Try it
Claude Code hosted config
{
"mcpServers": {
"human-org": {
"url": "https://YOUR_ORG_SLUG.mcp.haio.run/mcp",
"headers": {
"Authorization": "Bearer "
}
}
}
} Host mismatch (403)
If you see Host org slug "foo" does not match delegation org, mint a delegation for the org that owns foo, or use the bare mcp.haio.run host for personal workspace tokens.
Use cases
{slug}.mcp.haio.run for every developer with scope.Security considerations
DO
Use org-scoped delegations on org hosts
Review tools/list output before granting broad agent autonomy
Revoke delegations in Console when offboarding team members
DON'T
Do not reuse personal tokens against org subdomains
Do not disable scope checks by calling api.haio.run directly from untrusted clients without delegation
Do not assume org tools when platform host is used — mesh tools require org_id on token
See also
apps/mcp-worker/src/host-routing.ts · org-tools.tsSame route in the other SDKs
The TypeScript tab above is the contract. These calls hit that same route.