craaft

MCP

Give an agent a seat at the board

craaft runs an MCP server, so Claude, your editor, or any Model Context Protocol client can work your boards directly instead of you copying things back and forth. It talks to the same REST API, with your own token and your own permissions.

Available on every plan, including Free. Prefer writing the calls yourself? See the REST API - the spec is public at /openapi.yaml.

Connect in two steps

The server speaks MCP over HTTP. Mint a token, then point your client at the endpoint.

  1. 1 — Mint a token

    Settings, then API keys

    Tokens look like cra_ followed by 24 characters. Shown once, stored only as a hash. Same token the REST API uses - mint once, then pick a client below.

  2. 2a — Claude Code

    One command

    Adds the server with your token as a bearer header.

    claude mcp add --transport http craaft https://ai.craaft.io/mcp \
      --header "Authorization: Bearer $CRAAFT_API_TOKEN"

    2b — Any MCP client

    Drop into config

    Treat the token like a password - keep it in an environment variable, not a committed file.

    {
      "mcpServers": {
        "craaft": {
          "type": "http",
          "url": "https://ai.craaft.io/mcp",
          "headers": { "Authorization": "Bearer cra_..." }
        }
      }
    }

What the agent can do

Everyday board actions as tools. Reading is the useful half: an agent that can see your board can plan against it without you pasting anything.

Tools exposed by the MCP server
Tool What it does
list_projectsEvery board you can reach
get_boardOne board: columns and cards (descriptions omitted)
get_cardOne card, including its description
get_card_detailOne card plus comments, events, checklist and attachments
create_cardAdd a card to a column
update_cardChange title, description, due date, assignee, size, priority, tags
move_cardMove a card between columns or boards
delete_cardRemove a card
add_commentComment on a card
get_commentsRead a card’s thread
search_cardsSearch across every board you can see
get_upcomingDue-dated cards across projects
get_focusWhat needs attention: due, stalled, untended
get_meWho the token belongs to

What it cannot do

Worth knowing before you hand an agent a token.

It is you, not more than you

The agent sees the boards you can see and can change what you can change. Per-board access still applies, so a board you were never granted stays invisible to it.

No account or billing access

Sign-in, API key management and billing are session-only and are not exposed as tools. An agent cannot mint itself a second token or change your plan.

Plan limits still bite

On Free, a fourth project comes back as a limit error rather than quietly succeeding. The agent gets the same answer the board would give you.

Revocation is instant

Delete the token in Settings and the agent stops on its next call. Tokens never expire on their own, so revoking is the only lifecycle event to think about.

Want the raw HTTP surface?

Every tool is a REST call underneath. The orientation page and the OpenAPI spec cover the same ground without an agent in the loop.