MCP App Store
by KeenEthics
Cartographer icon

Cartographer

By Cartographer

Get New App Alerts

Overview

Cartographer turns ChatGPT into a story mapping specialist. Create spaces and projects, build the journey → step → story card backbone in one call, add personas, customers, milestones and statuses, and read or update existing maps. Bundled skills teach the 3-tier hierarchy, card types and practical story-mapping methodology, and cover the jobs around a map: turning interviews and customer feedback into evidence, slicing an MVP, splitting stories, writing backlog tickets, and building sales discovery maps, mutual action plans and playbooks.

Tools

canvases_attach_to_card

ChatGPT
Attaches a canvas to a story card. Idempotent — attaching a canvas already attached returns the current set.

canvases_create

ChatGPT
Creates a new canvas in a space. Returns the canvas id.

canvases_delete

ChatGPT
Soft-deletes a canvas and its contents. Cards it was attached to simply lose the attachment.

canvases_detach_from_card

ChatGPT
Detaches a canvas from a story card.

canvases_get

ChatGPT
Returns canvas metadata plus element and file counts (not the full scene).

canvases_list

ChatGPT
Lists 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

ChatGPT
Renames a canvas. Doesn't touch its contents (elements/files) — use the canvas editor for that.

cards_bulk_create

ChatGPT
Creates 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

ChatGPT
Soft-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

ChatGPT
Low-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

ChatGPT
Sets the customers associated with a card. Replaces any existing customer associations. Pass an empty array to clear.

cards_delete

ChatGPT
Soft-deletes a card (sets deletedAt). Cannot delete a card with children.

cards_move

ChatGPT
Moves or reorders a card using above/below or top/bottom placement

cards_personas_set

ChatGPT
Sets the personas associated with a card. Replaces any existing persona associations. Pass an empty array to clear.

cards_update

ChatGPT
Updates card metadata (use cards_move to change parent or milestone). Color is optional — only set it for cross-cutting groupings that span multiple columns.

comments_create

ChatGPT
Creates a comment on a card or milestone. Provide either cardId or milestoneId.

comments_delete

ChatGPT
Deletes a comment. Only the comment's author or an organization owner/admin can delete it.

comments_get

ChatGPT
Returns a single comment by ID

comments_list

ChatGPT
Lists comments on a project, optionally filtered by cardId or milestoneId. Paginated — page until nextCursor is null.

comments_resolve

ChatGPT
Resolves a top-level comment thread on a card

comments_update

ChatGPT
Edits a comment's content. Only the comment's author or an organization owner/admin can update it.

customers_create

ChatGPT
Creates 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

ChatGPT
Soft-deletes a customer

customers_get

ChatGPT
Returns a single customer by ID

customers_list

ChatGPT
Lists 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

ChatGPT
Updates a customer

feedback_submit

ChatGPT
Reports 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

ChatGPT
Searches 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

ChatGPT
Creates a tier-1 journey column on the project

milestones_create

ChatGPT
Creates a milestone. Milestones define horizontal rows on the project for time-based grouping. Assign tier-3 cards to a milestone via milestoneId.

milestones_delete

ChatGPT
Deletes 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

ChatGPT
Returns a single milestone by ID

milestones_list

ChatGPT
Lists milestones for a project. Returns id, title, startDate, targetDate, completedAt, and position.

milestones_update

ChatGPT
Updates milestone fields

personas_create

ChatGPT
Creates 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

ChatGPT
Soft-deletes a persona

personas_get

ChatGPT
Returns a single persona by ID

personas_list

ChatGPT
Lists personas for a space. Personas represent user archetypes (e.g. "Power User", "New Hire") that can be associated with story cards.

personas_update

ChatGPT
Updates a persona

projects_create

ChatGPT
Creates 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

ChatGPT
Deletes 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

ChatGPT
Returns full details for a single card including description, associations, and comments

projects_list

ChatGPT
Lists 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

ChatGPT
Returns 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

ChatGPT
Returns 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

ChatGPT
Updates project metadata

spaces_create

ChatGPT
Creates a new space in the active organization

spaces_delete

ChatGPT
Deletes 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

ChatGPT
Returns a single space by ID

spaces_list

ChatGPT
Lists all spaces in the active organization

spaces_projects_list

ChatGPT
Lists all projects in a space

spaces_statuses_list

ChatGPT
Lists 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

ChatGPT
Updates space metadata (name/description)

statuses_create

ChatGPT
Creates 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

ChatGPT
Soft-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

ChatGPT
Returns a single status by ID

statuses_update

ChatGPT
Updates a status. Cards already assigned this status are unaffected by category/color changes.

steps_create

ChatGPT
Creates a tier-2 step within a journey. Every journey should have at least one step.

story_cards_create

ChatGPT
Creates a tier-3 story card within a step

story_map_embed_session

ChatGPT
Signs the embedded story map in as the current user. Used by the story map app only.

story_map_home

ChatGPT
Opens Cartographer fullscreen on the list of projects, from the ChatGPT sidebar. Takes no arguments.

story_map_panel

ChatGPT
Opens 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

ChatGPT
Shows 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

ChatGPT
Returns 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.

Capabilities

WritesInteractive

Example Prompts

Click any prompt to copy it.

Similar Apps