Claude and MCP
Connect Claude Code, Cursor or VS Code to Doska over MCP so an AI agent can read boards, draw diagrams, write documents and answer comments.
Doska has a built-in Model Context Protocol server. Connect Claude Code (or another MCP client such as Cursor or VS Code) and the agent can read your boards and documents, draw and update diagrams, add sticky notes and reply to comments. It acts on your behalf, with the rights of the token you give it.
The server address is https://getdoska.top/api/mcp (Streamable HTTP transport). There is nothing to install on the Doska side.
Quick start
In Doska, open the menu under your name at the bottom of the sidebar and choose Settings and API tokens.
In Access tokens, click Create token. Choose the access level, projects and expiration (see below), then click Create token.
Copy the command shown under Connect to Claude Code and run it in a terminal:
claude mcp add --transport http doska https://getdoska.top/api/mcp --header "Authorization: Bearer dsk_…"Add
--scope userto make the server available in every folder; without it, it works only in the current project.Start
claudeand check the connection with/mcp.
The token is shown only once. Copy it before you close the panel.
Other MCP clients
Any client that can send an HTTP header works. Point it at the same URL and pass the header Authorization: Bearer dsk_…. For example, in Cursor (mcp.json):
{
"mcpServers": {
"doska": {
"url": "https://getdoska.top/api/mcp",
"headers": { "Authorization": "Bearer dsk_…" }
}
}
}In VS Code (.vscode/mcp.json):
{
"servers": {
"doska": {
"type": "http",
"url": "https://getdoska.top/api/mcp",
"headers": { "Authorization": "Bearer dsk_…" }
}
}
}Connectors in claude.ai and Claude Desktop sign in with OAuth, which Doska doesn't support yet. Use Claude Code or another client that sends a header.
Create a token
A token is personal: it acts as you and never has more rights than you have right now. If you are removed from a project or the organization, the token loses access there too.
| Setting | Options |
|---|---|
| Organization | One. The token doesn't see your other organizations |
| Access | Can read: view boards, diagram code and comments.<br>Can comment: same, plus write, reply to and resolve comments.<br>Can edit: same, plus change boards and diagrams, create boards |
| Projects | All projects (every project you can see, including future ones) or Selected only |
| Expiration | 30 days, 90 days, 1 year or No expiration |
A few more rules:
- A viewer stays a viewer. A Can edit token can't change boards where your role is Viewer.
- No management. A token can't delete boards or projects, manage members and roles, change sharing or create other tokens.
- Only the API and MCP. A token works for
/api/v1/*and/api/mcp; other addresses answer403. - Stored as a hash. Doska keeps only a hash of the token. The
dsk_prefix helps secret scanners find leaked tokens.
Each token in the list shows its level, projects, expiration and when it was last used. Click the trash icon to revoke it; connected clients lose access immediately.
For organization admins
In Members and settings → Access tokens, owners and admins choose what members and guests may create under Members and guests can create tokens: No restrictions, Read and comment, Read only or Tokens disabled. The rule applies immediately, including to tokens already issued. It doesn't limit admins and owners.
The same section lists every token in the organization with its owner, and any of them can be revoked.
What the agent can do
The client sees only the tools of its token's level: a read-only token doesn't even get the editing tools.
Can read
| Tool | What it does |
|---|---|
list_projects, list_boards, list_folders | Projects, boards, documents and folders the token can see; search also finds documents by their text |
get_board | The whole board in compact form: diagrams as code, other elements as a list, and whether the board has a public link |
get_diagram | Diagram code and its unapplied draft |
read_doc | A document as Markdown, with the documents that link to it |
read_deck, list_deck_templates | A presentation as Markdown with its numbered slides; the ready-made presentations to start from |
get_deck_audience | What the audience said during a talk: questions with upvotes, poll results, how the shared link was watched |
list_comments, list_board_people | Comment threads, and who can see the board and why |
diagram_syntax, search_icons, validate_diagram | Supported syntax (Mermaid, D2, nwdiag), icon search, code check |
check_drift | Compare a board with imported infrastructure (with a new file, needs Can edit) |
check_network | Network findings from an imported Terraform plan, and "can A reach B" on a port |
Can comment
| Tool | What it does |
|---|---|
add_comment, reply_comment, resolve_comment | Comments on a board (also on a diagram node) or on a quote in a document |
Can edit
| Tool | What it does |
|---|---|
create_board | A new board, optionally with a diagram and in a folder |
put_diagram, delete_diagram | Create or update a diagram from Mermaid, D2 or nwdiag code |
add_elements, update_elements, delete_elements | Sticky notes, text, shapes with icons, frames, arrows and pictures |
arrange_elements | Align, distribute, or lay out elements in a row, column or grid |
create_doc, write_doc | A new document from Markdown or a template (adr, rfc, postmortem, runbook, onboarding, meeting); replace or append text |
create_deck | A new presentation: from Markdown, from a template, or made from a board (live slides walked through step by step) or a document. See Presentations |
update_slide, insert_slides, delete_slides, move_slide, set_deck_style, write_deck | Change one slide without touching the others, add, remove or reorder slides, switch the theme and transition, or rewrite the whole deck |
get_upload_link, upload_image | Put a picture from your computer into Doska: a link the agent uploads files through with one curl command, or a small picture as base64. The result goes on slides (also as a slide background), in documents and on boards |
embed_diagram | Insert a live diagram from a board into a document |
rename_board, create_folder, move_board | Rename, set an emoji icon, create folders, move items between folders |
import_infrastructure | A diagram from terraform show -json, Kubernetes manifests or docker-compose |
Diagram elements belong to their code, so the agent changes them only through put_diagram; your manual positions and styles are kept the same way as in the code editor. See Diagrams as code and Infrastructure.
Ready-made prompts
Doska also gives the agent ready-made requests. In Claude Code they show up as commands after / (for example /mcp__doska__present-board); other clients list them in their own way.
| Prompt | What the agent does |
|---|---|
present-board | Makes a presentation from a board: live slides of its frames and diagrams, an intro, speaker notes and a summary |
deck-from-doc | Turns a document (ADR, RFC, runbook, postmortem) into slides with notes |
architecture-review | Prepares an architecture review deck about a system, using the boards and documents about it |
incident-review | Prepares a blameless incident review deck from what happened or from a postmortem |
translate-deck | Makes a copy of a presentation in another language, diagrams and notes included |
Example prompts
- "What boards are in the DevOps project?"
- "Read the Architecture board and explain how a request gets from the user to the database."
- "Draw a diagram of this service on the Payments board, based on the code in this repository."
- "Write a runbook for deploying this service as a new document in the Ops project."
- "Make a presentation from the Payments board for the architecture review, in the Midnight theme, and walk through the request flow step by step."
- "Reply to the open comments on the Review board."
- "Import our Terraform plan into the Network board and tell me which ports are open to the internet."
After a change the agent gives you a link to the board. If someone has the board open, the changes appear for them at once.
Safety
- A version before changes. Before the first change through a token, Doska saves a copy of the board in its version history, labelled "Before changes via token "…"". Changes within the next 15 minutes continue the same session. To undo everything the agent did, restore that version in Version history.
- You can see who changed what. Diagram revisions made through MCP are signed "Name · MCP", and the agent's comments are marked "via MCP".
- Prompt injection. The agent reads sticky notes and comments written by other people, and they may contain "instructions". Doska tells the client that board content is data, not commands. The most reliable protection is the least privilege:
- Can read is enough for questions and reviews;
- limit Can edit tokens to the projects they need, and give them an expiration.
- Limits. Up to 300 MCP requests per minute from one address, 200 elements per call and 100 deletions per call.
Troubleshooting
401or "A valid Doska API token is required". The token was revoked, has expired or is disabled by the organization's rule. Check that the header is exactlyAuthorization: Bearer dsk_….- "Board not found". The board is in a project the token doesn't include, or in another organization.
To test the server without a client:
curl -s https://getdoska.top/api/mcp \
-H "Authorization: Bearer $DOSKA_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
--data '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'For CI and scripts, use the same tokens with the REST API.