Docs/Guides/Alchemist API & Automation

    Alchemist MCP Server

    Last updated · MAR 2026·Read as Markdown

    Alchemist: MCP Server

    Drive the Alchemist platform from any MCP client: dispatch tickets, read logs, query your app's database.


    The Alchemist MCP server lets an AI client (claude.ai, ChatGPT, Claude Code, Claude Desktop, Cursor, or anything that speaks the Model Context Protocol) talk to the platform directly. From inside your assistant you can dispatch tickets, watch their status, read your deployed app's errors and deploys, check costs, browse the project's repo, run read-only queries against the project database, and export files, all without leaving the conversation.

    The server speaks Streamable HTTP at `https://build.avcodex.com/alchemist-api/api/mcp`. There are two ways to connect, depending on what your client supports:

    • OAuth. For hosted connectors whose "add connector" dialog offers only a URL (claude.ai custom connectors, ChatGPT). You paste the URL and approve a browser consent screen. There's no key to copy. Access is scoped to *you* (your user), so it reaches every project you own or are a member of.
    • API key. For clients that let you set an Authorization header (Claude Code, Claude Desktop, Cursor). Access is scoped to your *tenant*.

    Either way you only ever see your own projects, tickets, and data.

    Use this for hosted connectors whose dialog only takes a URL. In claude.ai: Settings > Connectors > Add custom connector.

    1. Paste the server URL: `https://build.avcodex.com/alchemist-api/api/mcp`
    2. Leave OAuth Client ID / Client Secret blank. The connector registers itself automatically via Dynamic Client Registration. Those fields are only for pre-registered clients, which you don't need.
    3. Click Add. A browser window opens an Alchemist consent screen. Sign in to your dashboard if prompted, then Approve. The connector is now live.

    No API key is involved. Disconnect any time from your client's connector settings, which revokes access immediately.

    These clients send a bearer token, so they use a tenant API key.

    1. Create an API key#

    Mint a key in Settings > API keys (see API keys). The secret is shown once. Copy it immediately. You can revoke it at any time.

    2. Point your client at the server#

    Claude Code (one command):

    bash
    claude mcp add --transport http alchemist https://build.avcodex.com/alchemist-api/api/mcp \
      --header "Authorization: Bearer alch_your_key_here"

    Claude Desktop / Cursor (config file):

    json
    {
      "mcpServers": {
        "alchemist": {
          "url": "https://build.avcodex.com/alchemist-api/api/mcp",
          "transport": "streamable-http",
          "headers": { "Authorization": "Bearer alch_your_key_here" }
        }
      }
    }

    Tickets#

    • dispatch_ticket. Create and dispatch a ticket. mode: "build" runs the full implementation pipeline. mode: "investigate" runs a read-only research pass. The ticket dispatches straight to the pipeline from your single prompt, so write the title and description as a complete, self-contained brief. The pipeline does not ask follow-up questions. It decomposes and verifies its own work internally. Pass depends_on (an array of ticket UUIDs or #N references) to make the ticket wait until those parents succeed.
    • list_tickets. Recent tickets, optionally filtered by project or status.
    • get_ticket. One ticket by UUID or number (#42).
    • get_ticket_audit. The agent's per-turn narration across passes.
    • cancel_ticket / retry_ticket. Stop or re-run a ticket.

    Projects and deploys#

    • list_projects. Your projects, with deploy status and public URL.
    • get_project. One project, with its latest deploy and a cost breakdown.
    • list_deploys. Recent deploys for a project, with failure reasons.

    Production errors#

    • get_project_errors. Recent error logs from a project's live app. Pick a time window and an optional substring filter.
    • get_alert_status. Whether the error-investigation agent is currently working an alert on a project, and how often alerts have recurred.
    • get_env_status. Whether the project's production deployment is missing any required environment variables, read from its startup env-validation logs. Presence status only, never values.

    Billing#

    • get_credit_balance. Your current credit balance.
    • get_project_cost / get_ticket_cost. Cost breakdowns by project or ticket (LLM, sandbox, pod, storage).

    Repo access#

    • read_repo_file. Read a single file from the project's repo, at the HEAD of the default branch.
    • list_repo_dir. List the entries in a repo directory, capped at 500.
    • search_repo. Case-insensitive literal substring search across the repo.

    Database#

    • inspect_schema. Read the project database schema. Columns holding secrets are masked out.
    • query_database. Run a single read-only SQL query (SELECT and CTE only) against the project database. Writes and DDL are rejected at the connection level.

    File delivery#

    • export_csv. Build a CSV from { columns, rows }, store it in private object storage, and return a short-lived signed download URL.
    • deliver_file. Upload arbitrary bytes to private storage and return a short-lived signed download URL.
    • Reads are curated and bounded. The one SQL surface, query_database, is read-only and tenant-scoped. There is no raw log-query tool. Every tool returns a structured result scoped to your tenant.
    • An OAuth connection (Option A) is scoped to your user and uses short-lived tokens that refresh automatically. Revoke it by removing the connector in your client. An API key (Option B) is scoped to your tenant and stops working the instant you revoke it in Settings > API keys.
    • An API key authenticates any HTTP call to the platform API, not just MCP.

    *AVCodex · Your AV expertise. Amplified by AI.*

    Was this helpful?
    Edit this page →