canvases_attach_to_card
ChatGPTAttaches a canvas to a story card. Idempotent — attaching a canvas already attached returns the current set.
canvases_create
ChatGPTCreates a new canvas in a space. Returns the canvas id.
canvases_delete
ChatGPTSoft-deletes a canvas and its contents. Cards it was attached to simply lose the attachment.
canvases_detach_from_card
ChatGPTDetaches a canvas from a story card.
canvases_get
ChatGPTReturns canvas metadata plus element and file counts (not the full scene).
canvases_list
ChatGPTLists canvases (Excalidraw whiteboards) for a space, one page at a time. Returns id, title, timestamps. Paginated: defaults to 200 per page, check nextCursor/total.
canvases_update
ChatGPTRenames a canvas. Doesn't touch its contents (elements/files) — use the canvas editor for that.
cards_bulk_create
ChatGPTCreates many board items in ONE call — the preferred way to create more than a couple of cards. Pass a nested tree: journeys (each with nested steps, each with nested cards) plus optional board milestones. To add under existing parents, use steps (with journeyId) or cards (with stepId). Tier order and positions are handled for you; the whole batch is validated before anything is created. A card's milestoneId may reference an existing milestone or a tempId declared in this call's milestones.
cards_bulk_delete
ChatGPTSoft-deletes many cards in ONE call, cascading through the hierarchy: deleting a journey removes its steps and their story cards, deleting a step removes its story cards. Use this for "delete these", "clear out X", or "delete everything except Y" — collect the IDs (projects_list_all_cards) and pass them together instead of calling cards_delete repeatedly. Call once without confirm to get a preview of how many cards will go, then again with confirm: true to actually delete.
cards_create
ChatGPTLow-level single-card creation — prefer cards_bulk_create for multiple cards, or journeys_create, steps_create, or story_cards_create for one. Tier is determined by parentId: null = tier-1 journey, journey ID = tier-2 step, step ID = tier-3 story card.
cards_customers_set
ChatGPTSets the customers associated with a card. Replaces any existing customer associations. Pass an empty array to clear.
cards_delete
ChatGPTSoft-deletes a card (sets deletedAt). Cannot delete a card with children.
cards_move
ChatGPTMoves or reorders a card using above/below or top/bottom placement
cards_personas_set
ChatGPTSets the personas associated with a card. Replaces any existing persona associations. Pass an empty array to clear.
cards_update
ChatGPTUpdates card metadata (use cards_move to change parent or milestone). Color is optional — only set it for cross-cutting groupings that span multiple columns.
customers_create
ChatGPTCreates a customer in a space. Customers represent real companies or segments whose needs drive the story map. After creating, associate them with cards using cards_customers_set.
customers_delete
ChatGPTSoft-deletes a customer
customers_get
ChatGPTReturns a single customer by ID
customers_list
ChatGPTLists customers for a space. Customers represent real companies, accounts, or segments (e.g. "Acme Corp", "Enterprise Tier") that can be associated with story cards.
customers_update
ChatGPTUpdates a customer
feedback_submit
ChatGPTReports a problem with this MCP server to the Cartographer team: a tool that errored or misbehaved, a capability you needed that no tool provides, or a description, error message, or response that was confusing. Works for viewers and for callers without a subscription. Call it after retrying or working around the problem, not instead of doing so.
find_project_by_name
ChatGPTSearches for projects by name (case-insensitive substring match). Returns matching projects with their space info. cardCount is a cached summary that can lag live edits by about a minute — call projects_list_all_cards for the authoritative contents before deciding a project is empty.
journeys_create
ChatGPTCreates a tier-1 journey column on the project
milestones_create
ChatGPTCreates a milestone. Milestones define horizontal rows on the project for time-based grouping. Assign tier-3 cards to a milestone via milestoneId.
milestones_delete
ChatGPTDeletes a milestone. Cards previously assigned to it keep their milestoneId as a stale reference (matching the app UI) — move them first with cards_move (toSection.milestoneId) if you want to avoid orphaned references.
milestones_get
ChatGPTReturns a single milestone by ID
milestones_list
ChatGPTLists milestones for a project. Returns id, title, startDate, targetDate, completedAt, and position.
milestones_update
ChatGPTUpdates milestone fields
personas_create
ChatGPTCreates a persona in a space. Personas represent user archetypes whose journeys you are mapping. After creating, associate them with cards using cards_personas_set.
personas_delete
ChatGPTSoft-deletes a persona
personas_get
ChatGPTReturns a single persona by ID
personas_list
ChatGPTLists personas for a space. Personas represent user archetypes (e.g. "Power User", "New Hire") that can be associated with story cards.
personas_update
ChatGPTUpdates a persona
projects_create
ChatGPTCreates a new project in a space. After creating, add tier-1 journeys, then tier-2 steps under each journey, then tier-3 story cards under steps.
projects_delete
ChatGPTDeletes a project (soft delete). Call once without confirm to preview what will be affected (card/milestone/comment counts); call again with confirm: true to actually delete. Canvases in the parent space are not affected.
projects_get_card_details
ChatGPTReturns full details for a single card including description, associations, and comments
projects_list
ChatGPTLists all projects in the organization, optionally filtered by space. cardCount is a cached summary that can lag live edits by about a minute — call projects_list_all_cards for the authoritative contents before deciding a project is empty.
projects_list_all_cards
ChatGPTReturns cards on a project (ordered by position) with parent and milestone relationships, one page at a time. Call this before creating cards to understand the current layout and avoid duplicates. Paginated: defaults to 200 cards per page: check the response nextCursor and pass it back to fetch the next page, and use total to know when you have seen every card.
projects_list_backbone
ChatGPTReturns the backbone of a project: tier-1 cards (top-level, typically journeys) and their tier-2 children, with a count of cards nested under each tier-2 card
projects_update
ChatGPTUpdates project metadata
spaces_create
ChatGPTCreates a new space in the active organization
spaces_delete
ChatGPTDeletes a space (soft delete). Call once without confirm to preview what will be affected (project/persona/customer counts); call again with confirm: true to actually delete.
spaces_get
ChatGPTReturns a single space by ID
spaces_list
ChatGPTLists all spaces in the active organization
spaces_projects_list
ChatGPTLists all projects in a space
spaces_statuses_list
ChatGPTLists available statuses for a space. Statuses represent workflow states (e.g. Backlog, In Progress, Done). Use the returned status IDs when creating or updating cards.
spaces_update
ChatGPTUpdates space metadata (name/description)
statuses_create
ChatGPTCreates a new workflow status in a space. Statuses represent workflow states (e.g. "In Review") grouped by category (backlog, unstarted, started, completed, canceled).
statuses_delete
ChatGPTSoft-deletes a status. Cards already using this status keep the stale statusId until reassigned via cards_update — this tool does not scan every project for cards using it before deleting, matching the settings UI.
statuses_get
ChatGPTReturns a single status by ID
statuses_update
ChatGPTUpdates a status. Cards already assigned this status are unaffected by category/color changes.
steps_create
ChatGPTCreates a tier-2 step within a journey. Every journey should have at least one step.
story_cards_create
ChatGPTCreates a tier-3 story card within a step
story_map_embed_session
ChatGPTSigns the embedded story map in as the current user. Used by the story map app only.
story_map_home
ChatGPTOpens Cartographer fullscreen on the list of projects, from the ChatGPT sidebar. Takes no arguments.
story_map_panel
ChatGPTOpens a story map beside the conversation, so the user can work on it while chatting. Takes no arguments; the user picks the project.
story_map_show
ChatGPTShows a project's story map to the user, inline in the chat, where they can expand it to fullscreen and edit it directly. Call it after you build or change a map so the user can see the result, or when they ask to see a project. Pass cardId to open a specific card. The user's edits sync live; call projects_list_all_cards to read the current state rather than relying on what you last wrote.
whoami
ChatGPTReturns the authenticated user info, including the org role (role) and whether the caller is read-only (readOnly). Call this first if unsure whether write tools will succeed.