Get Started
Alter Docs MCP Server
Connect the Alter Docs MCP server so your coding agent can read Alter's documentation and set up an integration for you — endpoint, setup for Claude Code and Cursor, and the tools it exposes.
The Alter Docs MCP server is a hosted MCP server that serves Alter’s documentation and setup guidance to your coding agent. Connect it once, then say “set up Alter” — the agent reads the docs itself, classifies what you are building, walks the setup steps, writes the SDK into your codebase, and checks the verification gates.
https://mcp.alterauth.com/mcpIt is public, unauthenticated, and read-only. It holds no account credentials, never touches the vault, and cannot change anything in your account. Account actions stay with the alter CLI, which the agent runs in your own shell under your own login.
Connect it
Section titled “Connect it”claude mcp add --transport http alter-onboarding https://mcp.alterauth.com/mcpAdd to .cursor/mcp.json in the project (keep any servers already there):
{ "mcpServers": { "alter-onboarding": { "type": "http", "url": "https://mcp.alterauth.com/mcp" } }}The server speaks streamable HTTP at https://mcp.alterauth.com/mcp. Most clients take the same JSON shape:
{ "mcpServers": { "alter-onboarding": { "type": "http", "url": "https://mcp.alterauth.com/mcp" } }}alter init writes the entry for you, merging into an existing config rather than overwriting it. A .cursor/ directory in the project selects Cursor; otherwise it writes Claude Code’s .mcp.json. Pass --client claude|cursor to choose explicitly.
npx @alter-ai/cli initAlready have the CLI installed? alter init does the same thing. See alter init for the flags.
Restart the MCP client so it picks the server up. Every route above registers the server under the same name, alter-onboarding, so they refer to the same thing — though claude mcp add records it in Claude Code’s own configuration while alter init writes the project’s config file.
The same setup — CLI install and sign-in, the MCP connection for the chosen client, and a first prompt — is shown in the developer portal itself: on the dashboard as Build with your coding agent, and behind the CLI & MCP button in the header (inside an application it adds the alter link step pinned to that application). The portal’s copy of the sign-in command carries the flags the current environment needs, so it can be pasted as-is.
Use it
Section titled “Use it”Ask the agent for what you are building, in your own words:
Set up Alter so a user can connect their Slack workspace and my app bot can post in a channel they approve.
The agent calls get_started, classifies the use case, and walks the flow — creating the app, minting a scoped key, configuring the provider, wiring the SDK, setting the runtime policy (including a human-in-the-loop gate when the use case needs one), and confirming a real call produced audit events. OAuth consent and other browser steps are handed back to you explicitly.
An integration that already works has its own phase. Ask for the change in your own words:
Require a human to approve every payment this agent makes through Stripe.
The agent picks the matching modification flow — add a provider or secret, add an agent, rotate a key, manage a grant, or set a runtime policy — and, for a policy, dry-runs the rule with alter policy simulate before it is saved. The Runtime policies section of the developer portal, the Wallet’s Runtime Policy tab, the alter policy CLI, and the policy_language tool below all author the same rules; the portal’s Human in the loop (HITL) type is the require_approval rule type everywhere else.
What it exposes
Section titled “What it exposes”Your MCP client discovers the live tool set through tools/list; that runtime response is
authoritative. This reference is checked against a real MCP tools/list round trip so a newly
registered tool cannot remain undocumented here.
| Tool | What it does |
|---|---|
get_started | Return phase-scoped flows and a non-authoritative routing hint; the calling agent classifies the use case. |
next_step | Advance to the next step of a flow. At the design step it repeats that flow’s starter ALTER_INTEGRATION.md. |
sdk_integration | Return the SDK wiring to write into the codebase. |
sdk_pattern | A runnable call pattern for a language. |
verify_integration | A copy-pasteable recipe to prove the integration works. |
troubleshoot | Map a CLI exit code or error to a remediation. |
list_providers / list_operations / get_operation_schema | Browse the live provider-spec catalog and an operation’s exact contract. |
policy_language | The authoritative policy-language grammar, live from the backend. |
fetch_doc | Fetch any page of these docs by slug — the server bundles the entire published documentation, including the skill pages, so nothing has to be looked up elsewhere. A page reference is accepted in any spelling these docs use: a bare slug, a leading slash, a #section anchor, a full documentation URL, or an older path that now redirects. A mistyped slug is answered with the closest pages. Omit the slug to list every page. |
search_docs | Keyword search across every bundled page (docs and skills): the best-matching pages with the section and snippet that matched. Use it to find the right page before fetch_doc, instead of guessing slugs or listing every page. |
list_phases / list_skills | Discover what the server covers. |
The full agent instructions this server serves are published as skills: Onboarding (first integration), Modification (change one that already works), and Server Integration (multi-user services).