Skip to main content

MCP tool reference

MCP tool reference

tools/list returns only the tools the presented key's scopes allow. A key with no write scope cannot see a write tool, let alone call one.

Full argument schemas come back from tools/list itself.

Tools by scope

No scope required

ToolWhat it does
whoamiReturn the identity this API key acts as: your username, display name, plan, and the scopes granted to this key

read:blueprints

ToolWhat it does
get_blueprintFetch one of your blueprints by id or slug: prose files plus every diagram tab's components
get_blueprint_analyticsAggregate reach for one blueprint you can edit: human views, unique visitors, traffic-source and referrer breakdowns, crawler/AI-agent traffic, and the helpful/not-helpful tally
get_blueprint_audienceReport who can currently reach a blueprint you can edit: its visibility, its classification label, and whether a password gate is set
get_blueprint_translationFetch one locale's translation: the translated title and summary, plus the per-stratum name/body overlays
get_portfolioFetch one portfolio by id: its metadata, folder tree, and everything filed in it
get_review_statusWhere a blueprint stands in its team's approval gate, and whether submit_for_review would be accepted right now
get_standalone_diagramFetch one standalone diagram in full, including its body
get_stratumFetch one stratum by id: its body plus every secondary tab
get_templateFetch one template's metadata and shape: name, description, category, scope, and counts of what the snapshot contains
list_blueprint_localesList the languages a blueprint publishes in, with how much of each translation exists
list_blueprint_tagsList a blueprint's tags, with how each was attached (manual / llm-accepted) and its taxonomy placement
list_blueprintsList your blueprints, owned and shared with you
list_change_requestsList the change requests filed against a blueprint you can edit
list_diagram_tabsList a blueprint's diagram tabs and the components on each, with ids, kinds and body sizes
list_icon_packsList the icon libraries available to you: curated packs, your own uploads, and packs shared by your teams
list_podium_slidesList every Podium slide on a blueprint, grouped by chapter, with id, label and geometry
list_portfoliosList your portfolios, with item counts
list_standalone_diagramsList standalone diagrams owned by you or by a team/org you belong to
list_strataList the strata on a blueprint you can view
list_templatesList Compendium templates you can see: personal, shared, and Blueprintr defaults

read:vellums

ToolWhat it does
get_vellumFetch one vellum diagram in full, including its docYaml body
list_vellumsList your vellum diagrams: owned, shared via team/org, or granted to you

read:foliums

ToolWhat it does
get_foliumFetch one folium: metadata, the full page tree (ids, titles, slugs, resolved URL paths, draft status, body sizes) and its strata index
get_folium_pageFetch one folium page in full, including its markdown body
get_folium_stratumFetch one folium-owned stratum in full
list_foliumsList the foliums you can author, newest-edited first

read:organization

ToolWhat it does
get_orgFetch one organisation you belong to, with your role, aggregate counts and your teams inside it
get_teamFetch one team by id or slug. Pair a slug with orgId when two of your orgs use the same one
list_orgsList the organisations you belong to, with your role in each
list_teamsList the teams you belong to, with your role and the organisation each sits under
ToolWhat it does
search_my_contentFull-text search across the blueprints and docs you can access

write:blueprints

ToolWhat it does
create_blueprintCreate a new blueprint as a private draft
create_blueprint_from_templateCreate a private draft from a blueprint template you can see
create_diagram_tabAdd a diagram tab to a blueprint, carrying one component
create_portfolioCreate a portfolio in a workspace you administer
create_portfolio_folderCreate a folder inside a portfolio you manage
create_standalone_diagramCreate a standalone diagram you own
create_stratumAdd a stratum, optionally bound to a diagram shape so it opens when that shape is clicked
create_stratum_tabAdd a secondary tab to a stratum
create_template_from_blueprintCapture a blueprint as a reusable personal template
file_blueprintFile a blueprint into a portfolio you manage
publish_blueprintPublish one of your standalone draft blueprints
rename_podium_slideChange the label of one Podium slide, leaving every other slide untouched
save_blueprint_translationUpsert one locale's translation of a blueprint you can edit
set_blueprint_tagsReplace the whole tag set on a blueprint
unfile_blueprintReturn a blueprint to its owner's Main portfolio
update_blueprintUpdate one of your draft blueprints: title, summary, and/or body
update_diagram_componentReplace a diagram component's source (diagram YAML/XML, or markdown for a rich component)
update_portfolioRename a portfolio, or change its description
update_standalone_diagramUpdate a standalone diagram's title and/or body
update_stratumUpdate a stratum's name and/or body
update_stratum_tabUpdate a secondary tab's name and/or body
update_template_detailsRename a template, or change its description or category

write:vellums

ToolWhat it does
create_template_from_vellumCapture a vellum as a reusable personal template
create_vellumCreate a vellum diagram from a docYaml body
create_vellum_from_templateCreate a private vellum from a template you can see
file_vellumFile a vellum into a portfolio you manage
unfile_vellumReturn a vellum to the Unfiled bucket
update_vellumUpdate a vellum's title, docYaml body, visibility and/or tags

write:foliums

ToolWhat it does
create_foliumCreate a folium with a seed Overview page
create_folium_pageAdd a page to a folium's nav tree
create_folium_stratumAdd a folium-owned stratum, which is what a stratum: link inside a folium page opens
move_folium_pageReparent and/or reorder one page in the nav tree
update_foliumUpdate a folium's title and/or description
update_folium_pageUpdate a page's title, description, body, icon or nav placement
update_folium_stratumUpdate a folium stratum's name, body, language hint, icon or folder path

write:sharing

ToolWhat it does
raise_blueprint_classificationRaise the classification label: public → internal → confidential
restrict_blueprint_audienceMake a blueprint less visible: public → unlisted → private

write:review

ToolWhat it does
create_change_requestFile a change request against a blueprint you can edit
submit_for_reviewHand a team-owned draft into its team's approval gate
withdraw_change_requestRetract an open change request you authored

Calling a tool directly

The transport is plain JSON-RPC, so you can test without a client:

curl -fsS https://blueprintr.io/api/mcp \
  -H "Authorization: Bearer $BLUEPRINTR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"list_blueprints",
                 "arguments":{"status":"draft","limit":10}}}' \
  | jq -r '.result.content[0].text | fromjson'

List tools return a nextCursor. Pass it back as cursor for the next page rather than raising limit: the ceiling is 100, and paging is cheaper than a retry.

Up to 20 JSON-RPC messages can go in one batch array. Past that the request is rejected: a single HTTP request clears the rate limiter once, so an uncapped batch would fan one request out into arbitrarily many tool calls.

Concurrent writes

update_vellum accepts a baseUpdatedAt. Send the updatedAt you read, and the write is refused with STALE_WRITE if the document moved underneath you. Re-read, reapply, retry with the new timestamp.

Without it, the write is last-writer-wins. On a document a person also has open, send it.

Payload ceilings

FieldLimit
Blueprint title500 characters
Blueprint summary280 characters
Blueprint body256 KiB
Vellum docYaml1,500,000 characters
Vellum title200 characters
Vellum tags20 tags, 1–64 characters each

Rate limits

Every window is five minutes.

BucketLimit
Requests per IP60
Requests per key600
Write tool calls per key40
JSON-RPC messages per batch20

Request-level limits return HTTP 429 and JSON-RPC -32000. The write bucket returns a tool error asking you to slow down, so it arrives as a normal result with isError: true rather than as a transport failure.

Errors

SymptomWhat it means
Only whoami is listedThe key has no other scope. Scopes are fixed at creation, so mint a new key
The documentation tools are listedThe key was not accepted at all. Check the header is complete, and that the key is not revoked
405 on GETExpected. The optional SSE stream is not enabled; use POST
"Blueprint not found"Wrong id, or not reachable by this account. Missing and forbidden return the same message, because telling you which would itself be a disclosure
A published blueprint will not updateWrites reach your own drafts only
STALE_WRITESomeone else changed the vellum. Re-read and retry
A vellum body write is refusedBlueprint-bound vellums are edited through the blueprint; a standalone one needs live collaboration switched off first
429 or -32000Poll less, batch smaller

Tool failures come back as MCP results with isError: true and a readable message. Only protocol failures use the JSON-RPC error object, so a client that checks only for error will read a refused write as a success.