Metabind serves a standard Model Context Protocol endpoint. Any client that speaks MCP — your own application, an internal tool, a third-party host not yet covered by a dedicated guide — can connect with the URL and a token.Documentation Index
Fetch the complete documentation index at: https://docs.metabind.ai/llms.txt
Use this file to discover all available pages before exploring further.
What “MCP-compatible” means
A custom MCP host needs to:- Speak MCP’s JSON-RPC over HTTP transport.
- Authenticate via Bearer token in the
Authorizationheader. - List tools (
tools/list) and call them (tools/call). - (Optional) Render
mcp-uiresources if you want Interactive Tool output to render natively.
@bindjs/renderer or its native equivalents.
Endpoint shape
Authorization: Bearer <token> on every request.
Minimal client example
A barebones MCP client that lists tools and calls one:Rendering Interactive Tool output
Interactive Tools return MCP UI resources alongside their structured output. To render natively:| Platform | Use |
|---|---|
| Web | @bindjs/renderer — React renderer |
| iOS | bindjs-apple — SwiftUI renderer (ships with the Assistant SDK) |
| Android | bindjs-android — Jetpack Compose renderer (ships with the Assistant SDK) |
| Other / fallback | Render the structured JSON output and skip the UI resource |
Authentication patterns
A few patterns for distributing tokens to a custom host:- Static token in config. Simplest. The host stores the token; every call uses it. Right for internal tools and small deployments.
- Per-user token issued via your own auth. Your backend mints a Metabind token on behalf of a user and hands it to their host. Right for SaaS products where each user has their own access.
Token scopes
Tokens are scoped to a single project, with permissions inherited from the user who minted them.Tool annotations the host should respect
Tool schemas include annotations the host can use to make better decisions:| Annotation | Host behavior |
|---|---|
readOnlyHint: true | Safe to call without confirmation; cache-friendly |
openWorldHint: true | Tool reaches third-party services; consider showing a “this calls external services” indicator |
taskSupport: required or optional | Tool may return a task token instead of a final result; poll for completion |
destructiveHint: true | Tool changes state; consider requiring user confirmation |
Long-running tools
Data Tools that exceed the 60-second sandbox limit declare task support. The tool returns a task token immediately; your host polls for completion viatasks/get. See Sandboxed execution: task support.
For simple hosts that don’t need long-running tools, set taskSupport: forbidden on every Type and skip task handling.
Audit and observability
Every call from a custom host appears in the MCP App Studio audit log just like calls from Claude Desktop or ChatGPT. Use the audit log to debug schema mismatches, handler errors, and unexpected inputs. The custom host can also log locally; the call_id from MCP can be matched to MCP App Studio’s audit log entry for end-to-end tracing.When to use the Assistant SDK instead
If your custom host is an iOS, Android, or web application that needs to embed Metabind tools as a chat-style or agent UI, the Assistant SDK saves you from re-implementing the host loop. It handles connection, conversation state, and rendering — you provide the LLM key and the host surface. The Assistant SDK is for your app surfacing Metabind tools to your users. A custom MCP client is for connecting an external host to a Metabind project. They solve different problems.Related
Assistant SDK overview
Embed Metabind in your iOS, Android, or web app.
Sandboxed execution
What runs in V8, including task support for long-running calls.
REST API
The non-MCP HTTP API for project metadata and content.
Audit logs
Observability across all connected hosts.