The Lucid MCP connector routes your AI agent's tool calls to Lucid's own MCP server through Scalekit. Each user signs in to Lucid once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 41 tools.
- Tools
- 41
- What they doRead · write · destructive
- 13 · 23 · 513 read23 write5 destructive
- Users sign in with
- OAuth
- OAuth app
- Scalekit's or your own
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Lucid MCP connection
In AgentKit > Connections, create a Lucid MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Lucid MCP server, so you don't need to register an OAuth app.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'lucidmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Lucid MCP:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'lucidmcp_get_mcp_resource',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "lucidmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Lucid MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="lucidmcp_get_mcp_resource",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toollucidmcp_fetchRetrieve the structured content of a Lucid document by ID, including pages, blocks, and lines.Read-onlyFetch
Retrieve the structured content of a Lucid document by ID, including pages, blocks, and lines.
Inputs
idstringrequired- No description.
metadata_onlystring- No description.default
false page_indexstring- No description.
region_indexstring- No description.
lucidmcp_get_mcp_resourceRead a resource from the Lucid MCP server by its URI.Read-onlyGet Mcp Resource
Read a resource from the Lucid MCP server by its URI.
Inputs
resource_uristring- No description.default
lucidmcp_list_document_thread_commentsList comments on a specific collaboration thread of a Lucid document.Read-onlyList Document Thread Comments
List comments on a specific collaboration thread of a Lucid document.
Inputs
document_idstringrequired- No description.
thread_idstringrequired- No description.
lucidmcp_list_document_threadsList collaboration threads on a Lucid document.Read-onlyList Document Threads
List collaboration threads on a Lucid document.
Inputs
document_idstringrequired- No description.
lucidmcp_lucid_export_document_as_pngExport a page of a Lucid document as a PNG image.Read-onlyLucid Export Document As PNG
Export a page of a Lucid document as a PNG image.
Inputs
document_idstringrequired- No description.
bounding_boxstring- No description.
pageinteger- No description.default
1
lucidmcp_lucid_fetch_item_imageFetch the source image attached to a specific item in a Lucid document.Read-onlyLucid Fetch Item Image
Fetch the source image attached to a specific item in a Lucid document.
Inputs
document_idstringrequired- No description.
item_idstringrequired- No description.
lucidmcp_lucid_get_document_metadataGet metadata, access details, and owner information for a Lucid document.Read-onlyLucid Get Document Metadata
Get metadata, access details, and owner information for a Lucid document.
Inputs
document_idstringrequired- No description.
lucidmcp_lucid_list_folder_contentsList the documents and subfolders inside a Lucid folder.Read-onlyLucid List Folder Contents
List the documents and subfolders inside a Lucid folder. Omit folder_id to list the root folder.
Inputs
folder_idstring- No description.
page_sizeinteger- No description.default
50 page_tokenstring- No description.
lucidmcp_lucid_list_integrationsList the user's available third-party card integrations (e.g.Read-onlyLucid List Integrations
List the user's available third-party card integrations (e.g. Jira) and their connection status.
Inputs
This tool takes no inputs.
lucidmcp_lucid_search_documentLocate regions of a Lucid document that contain specific text, returning page/region indexes you can pass to lucidmcp_fetch.Read-onlyLucid Search Document
Locate regions of a Lucid document that contain specific text, returning page/region indexes you can pass to lucidmcp_fetch.
Inputs
idstringrequired- No description.
queriesarrayrequired- No description.
lucidmcp_lucid_shape_detailsGet default size, colors, and text-area/advanced properties for one or more Lucid shape classes.Read-onlyLucid Shape Details
Get default size, colors, and text-area/advanced properties for one or more Lucid shape classes.
Inputs
class_namesarrayrequired- No description.
document_idstringrequired- No description.
lucidmcp_lucid_shape_libraryDiscover shapes/blocks available to insert into a Lucid document, by library, group, or search term.Read-onlyLucid Shape Library
Discover shapes/blocks available to insert into a Lucid document, by library, group, or search term.
Inputs
document_idstringrequired- No description.
group_idsstring- No description.
library_idstring- No description.
page_tokenstring- No description.
search_termstring- No description.
lucidmcp_searchSearch for Lucid documents by keyword with optional filters for product type and date range.Read-onlySearch
Search for Lucid documents by keyword with optional filters for product type and date range. Returns up to 200 results.
Inputs
querystringrequired- No description.
created_end_timestring- No description.
created_start_timestring- No description.
last_modified_afterstring- No description.
owned_by_mestring- No description.
productstring- No description.
lucidmcp__lucid_create_embedCreate an embed for a Lucid document.WriteLucid Create Embed
Create an embed for a Lucid document. Internal tool for MCP Apps extension only.
Inputs
document_idstringrequired- No description.
lucidmcp__lucid_create_embed_session_tokenCreate a session token for an existing Lucid embed.WriteLucid Create Embed Session Token
Create a session token for an existing Lucid embed. Internal tool for MCP Apps extension only.
Inputs
embed_idstringrequired- No description.
originstringrequired- No description.
page_idstring- No description.
lucidmcp_lucid_add_blockAdd a new shape or block to a Lucid document with optional position, size, text, and style properties.WriteLucid Add Block
Add a new shape or block to a Lucid document with optional position, size, text, and style properties.
Inputs
block_typestringrequired- No description.
document_idstringrequired- No description.
auto_font_sizestring- No description.
boldstring- No description.
container_idstring- No description.
fill_colorstring- No description.
font_familystring- No description.
font_sizestring- No description.
heightstring- No description.
highlight_colorstring- No description.
italicstring- No description.
line_colorstring- No description.
line_widthstring- No description.
linkstring- No description.
page_idstring- No description.
rotationstring- No description.
strikestring- No description.
stroke_stylestring- No description.
subscriptstring- No description.
superscriptstring- No description.
textstring- No description.
text_alignstring- No description.
text_areasstring- No description.
text_colorstring- No description.
text_v_alignstring- No description.
underlinestring- No description.
widthstring- No description.
xnumber- No description.default
0 ynumber- No description.default
0
lucidmcp_lucid_add_dynamic_tableAdd an empty dynamic table (grid/matrix/kanban-style) to a Lucid document.WriteLucid Add Dynamic Table
Add an empty dynamic table (grid/matrix/kanban-style) to a Lucid document.
Inputs
document_idstringrequired- No description.
columnsstring- No description.
page_idstring- No description.
rowsstring- No description.
xnumber- No description.default
0 ynumber- No description.default
0
lucidmcp_lucid_add_items_to_dynamic_tableAdd existing canvas blocks to a dynamic table; the table groups them into rows/columns based on each block's pivot field.WriteLucid Add Items To Dynamic Table
Add existing canvas blocks to a dynamic table; the table groups them into rows/columns based on each block's pivot field.
Inputs
block_idsarrayrequired- No description.
document_idstringrequired- No description.
generator_idstringrequired- No description.
lucidmcp_lucid_add_lineAdd a new line or connector to a Lucid document, optionally linking two shapes.WriteLucid Add Line
Add a new line or connector to a Lucid document, optionally linking two shapes.
Inputs
document_idstringrequired- No description.
boldstring- No description.
endpoint1_auto_linkstring- No description.
endpoint1_position_xstring- No description.
endpoint1_position_ystring- No description.
endpoint1_shape_idstring- No description.
endpoint1_stylestring- No description.
endpoint1_xstring- No description.
endpoint1_ystring- No description.
endpoint2_auto_linkstring- No description.
endpoint2_position_xstring- No description.
endpoint2_position_ystring- No description.
endpoint2_shape_idstring- No description.
endpoint2_stylestring- No description.
endpoint2_xstring- No description.
endpoint2_ystring- No description.
font_familystring- No description.
font_sizestring- No description.
highlight_colorstring- No description.
italicstring- No description.
line_colorstring- No description.
line_shapestring- No description.
line_widthstring- No description.
page_idstring- No description.
strikestring- No description.
stroke_stylestring- No description.
subscriptstring- No description.
superscriptstring- No description.
textstring- No description.
text_colorstring- No description.
underlinestring- No description.
lucidmcp_lucid_copy_document_styleRead a Lucid document's visual style to use when creating diagrams.WriteLucid Copy Document Style
Read a Lucid document's visual style to use when creating diagrams. Use when the user asks to match or copy the style of an existing document. Returns a compact style profile and guidance for applying its colors, typography, shapes, connectors, sizing, and spacing. Does not create or modify documents or copy their prose. If the source document is not identified, search for it first. Args: document: Source document UUID or HTTPS Lucid document URL. page_index: Optional one-based page number; omit to analyze all pages.
Inputs
documentstringrequired- No description.
page_indexstring- No description.
lucidmcp_lucid_create_diagram_from_mermaidCreates a Lucid document from existing Mermaid code at the user's request.WriteLucid Create Diagram From Mermaid
Creates a Lucid document from existing Mermaid code at the user's request. STOP. Read this ENTIRE description before calling. The rules below are load-bearing — skipping them produces broken documents or wastes the user's tokens. Re-read on every call; don't rely on memory. Use this tool with Mermaid source code already present in the conversation or a user-provided file, including previously shared assistant-generated Mermaid that the user now wants to import. When the user asks to create, render, visualize, or share a diagram from that code, use this tool. The user does not need to explicitly name Lucid or request a conversion. Do not generate Mermaid solely as an intermediate step to call this tool. When the user requests a diagram without asking for Mermaid or a diagram from existing Mermaid source code, prefer creating the diagram directly in Lucid using lucid_create_diagram_from_specification over generating Mermaid code in the conversation. Follow that tool's prerequisites and intent rules. If the user explicitly requests Mermaid source code as the output, honor that request; you should then offer to import it into Lucid. If the user asks only to explain, review, or debug Mermaid code, answer that request without creating a document unless they also ask to see the diagram. For sequence diagrams, use lucid_create_sequence_diagram. For ERDs, use lucid_create_erd. Args: title: The title for the new document. mermaid_markup: Mermaid source code the user wants to import (must contain a valid Mermaid diagram). product: Target product - "lucidchart" or "lucidspark". Defaults to "lucidchart".
Inputs
mermaid_markupstringrequired- No description.
titlestringrequired- No description.
productstring- No description.default
lucidchart
lucidmcp_lucid_create_diagram_from_specificationCreate a Lucid document from a Standard Import JSON specification (.lucid file format).WriteLucid Create Diagram From Specification
Create a Lucid document from a Standard Import JSON specification (.lucid file format).
Inputs
productstringrequired- No description.
standard_import_jsonstringrequired- No description.
titlestringrequired- No description.
use_assisted_layoutboolean- No description.default
true
lucidmcp_lucid_create_erdCreate a Lucid document containing a data-backed Entity Relationship Diagram (ERD) from structured entity and relationship definitions.WriteLucid Create Erd
Create a Lucid document containing a data-backed Entity Relationship Diagram (ERD) from structured entity and relationship definitions.
Inputs
entitiesarrayrequired- No description.
relationshipsarrayrequired- No description.
titlestringrequired- No description.
productstring- No description.default
lucidchart
lucidmcp_lucid_create_folderCreate a new folder in the user's Lucid account.WriteLucid Create Folder
Create a new folder in the user's Lucid account.
Inputs
namestringrequired- No description.
folder_typestring- No description.default
folder parentstring- No description.
lucidmcp_lucid_create_mind_mapCreate a Lucid document containing a mind map from structured node data.WriteLucid Create Mind Map
Create a Lucid document containing a mind map from structured node data.
Inputs
nodesarrayrequired- No description.
titlestringrequired- No description.
productstring- No description.default
lucidchart
lucidmcp_lucid_create_org_chartCreate a Lucidchart document containing an org chart from a list of nodes with parent relationships.WriteLucid Create Org Chart
Create a Lucidchart document containing an org chart from a list of nodes with parent relationships.
Inputs
nodesarrayrequired- No description.
titlestringrequired- No description.
lucidmcp_lucid_create_sequence_diagramCreate a Lucid document containing a UML sequence diagram from PlantUML markup.WriteLucid Create Sequence Diagram
Create a Lucid document containing a UML sequence diagram from PlantUML markup.
Inputs
markupstringrequired- No description.
productstringrequired- No description.
titlestringrequired- No description.
lucidmcp_lucid_get_script_catalogGet the document-specific Scriptwriting V2 API catalog.WriteLucid Get Script Catalog
Get the document-specific Scriptwriting V2 API catalog. Call this before `lucid_load_script_documentation` to discover APIs available to the current user. This works with document view or edit access. `preloaded` means an API is already available at runtime; it can still be loaded to retrieve its reference. Unavailable APIs remain listed with their availability status and reason. Args: document_id: UUID of the document whose Script API catalog to retrieve. Returns: JSON `{apis: [...]}` with each API's name, description, preloaded, availability, and optional unavailable reason.
Inputs
document_idstringrequired- No description.
lucidmcp_lucid_import_integration_cardsImport records from a connected third-party integration (e.g.WriteLucid Import Integration Cards
Import records from a connected third-party integration (e.g. Jira) into a Lucid document as linked cards.
Inputs
document_idstringrequired- No description.
instance_idstringrequired- No description.
integration_idstringrequired- No description.
record_keysarrayrequired- No description.
layoutstring- No description.default
grid page_idstring- No description.
xnumber- No description.default
0 ynumber- No description.default
0
lucidmcp_lucid_load_script_documentationLoad a document API and return its documentation, including its method reference and examples.WriteLucid Load Script Documentation
Load a document API and return its documentation, including its method reference and examples. This works with document view or edit access. Call the API from `lucid_run_script` as `skills.<name>.<method>(...)`. For APIs that are not preloaded, loading also makes the API available to subsequent scripts for the document. Call `lucid_get_script_catalog` to discover the APIs available for this document. For ordinary canvas work, call this tool with `name="basecanvasediting"` before writing the script. Args: document_id: UUID of the document for the API. name: API name to load. Exact match, lowercase. Returns: JSON `{documentation: <markdown string>}`: the API's full description and worked examples. Read this before writing the next script. Examples: Typical flow — load, then run a script that uses the API: # 1. Call lucid_load_script_documentation(document_id, name="<api name>") # 2. Follow the returned method reference in lucid_run_script.
Inputs
document_idstringrequired- No description.
namestringrequired- No description.
lucidmcp_lucid_run_scriptExecute JavaScript against a Lucid document.WriteLucid Run Script
Execute JavaScript against a Lucid document. The source is wrapped in an `async` function, so top-level `await` and `return <value>` are valid. Scripts cannot access the network or DOM and must complete within 25 seconds. Changes are atomic: if a script fails, its changes are reverted. With only document view access, read-only scripts can run but any attempted mutation is rejected and no changes are applied. Each call starts with a new script context, so variables do not persist; the document's current page does. Use `skills` to access document APIs. Call `lucid_load_script_documentation` for an API's documentation, then call its methods as `skills.<name>.<method>(...)`. Args: document_id: UUID of the document to run the script against. source: JavaScript source. Top-level `await` and `return <value>` are legal; the returned value (JSON-serializable) becomes the tool's result. Returns: JSON `{result: <value>}` where `<value>` is whatever the script returned, or an error message.
Inputs
document_idstringrequired- No description.
sourcestringrequired- No description.
lucidmcp_lucid_submit_feedbackSubmit user feedback, a bug report, or a feature request about the Lucid MCP server to Lucid's product team.WriteLucid Submit Feedback
Submit user feedback, a bug report, or a feature request about the Lucid MCP server to Lucid's product team.
Inputs
feedbackstringrequired- No description.
titlestringrequired- No description.
lucidmcp_lucid_validate_diagram_specificationCheck Standard Import JSON for layout problems before creating a document.WriteLucid Validate Diagram Specification
Check Standard Import JSON for layout problems before creating a document. Runs the GEOMETRY AND TEXT PREFLIGHT rules from lucid://diagram-specification over the JSON you are about to pass to lucid_create_diagram_from_specification and reports two kinds of problem. Structural mistakes fail the import outright: a page or shape or endpoint missing a field the importer requires, a shape type or endpoint style outside its enum, a duplicate id, an endpoint pointing at a shape that is not on the page, a relative position pinned on only one endpoint, a malformed color. The API answers these with a bare 400 that names nothing, so the findings name the page, item, and field instead. lucid_create_diagram_from_specification refuses to create a document while any of them stand. Layout mistakes import successfully and look wrong: text that will render smaller than its neighbors', shapes that collide, shapes that cross a container or lane edge, connectors that cross shapes they do not connect, labels that land on a shape or on another label, and duplicate labels on connectors that share an endpoint. This tool does not create, modify, or upload anything. It reads the JSON you give it and returns a report. A clean report means these checks found nothing, not that the diagram is good; where a check does not cover your JSON the report says so in its own finding, so read "skipped_checks" and any *-preflight-skipped finding before treating the page as verified. In particular, connector path and label geometry is modeled for straight lines only. Use it when you have hand-authored the JSON and want the geometry checked before spending a document on it. Fix the findings, run it again, then call lucid_create_diagram_from_specification. Args: standard_import_json: JSON string in Lucid Standard Import format. Returns: JSON with "error_count", "warning_count", payload_diagnostics, a human-readable "summary", and a bounded "findings" array. Each finding names the "rule" it came from, the "page_id" and "subject_ids" it applies to, what is wrong, and a suggested fix. "truncated" and "skipped_checks" identify an incomplete report, while the limit and comparison fields explain the work bounds used.
Inputs
standard_import_jsonstringrequired- No description.
lucidmcp_post_document_thread_commentPost a new comment to an existing collaboration thread on a Lucid document.WritePost Document Thread Comment
Post a new comment to an existing collaboration thread on a Lucid document.
Inputs
contentstringrequired- No description.
document_idstringrequired- No description.
thread_idstringrequired- No description.
lucidmcp_lucid_delete_itemsDelete one or more blocks or lines from a Lucid document by item ID.DestructiveLucid Delete Items
Delete one or more blocks or lines from a Lucid document by item ID.
Inputs
document_idstringrequired- No description.
item_idsarrayrequired- No description.
lucidmcp_lucid_edit_dynamic_table_metadataEdit the reactive settings of an existing dynamic table: capacity-planning/load-tracking toggles and row/column group-by fields.DestructiveLucid Edit Dynamic Table Metadata
Edit the reactive settings of an existing dynamic table: capacity-planning/load-tracking toggles and row/column group-by fields.
Inputs
document_idstringrequired- No description.
generator_idstringrequired- No description.
column_group_by_fieldstring- No description.
enable_agile_capacity_planningstring- No description.
row_group_by_fieldstring- No description.
show_load_tracking_graphicstring- No description.
lucidmcp_lucid_edit_itemEdit an existing block or line in a Lucid document — update position, size, text, or style.DestructiveLucid Edit Item
Edit an existing block or line in a Lucid document — update position, size, text, or style.
Inputs
document_idstringrequired- No description.
item_idstringrequired- No description.
auto_font_sizestring- No description.
boldstring- No description.
clear_linkboolean- No description.default
false endpoint1_position_xstring- No description.
endpoint1_position_ystring- No description.
endpoint1_shape_idstring- No description.
endpoint1_stylestring- No description.
endpoint1_xstring- No description.
endpoint1_ystring- No description.
endpoint2_position_xstring- No description.
endpoint2_position_ystring- No description.
endpoint2_shape_idstring- No description.
endpoint2_stylestring- No description.
endpoint2_xstring- No description.
endpoint2_ystring- No description.
fill_colorstring- No description.
font_familystring- No description.
font_sizestring- No description.
heightstring- No description.
highlight_colorstring- No description.
italicstring- No description.
line_colorstring- No description.
line_shapestring- No description.
line_widthstring- No description.
linkstring- No description.
lockedstring- No description.
rotationstring- No description.
strikestring- No description.
stroke_stylestring- No description.
subscriptstring- No description.
superscriptstring- No description.
textstring- No description.
text_alignstring- No description.
text_areasstring- No description.
text_colorstring- No description.
text_v_alignstring- No description.
underlinestring- No description.
widthstring- No description.
xstring- No description.
ystring- No description.
lucidmcp_lucid_update_documentUpdate a Lucid document's title, parent folder, or custom tags.DestructiveLucid Update Document
Update a Lucid document's title, parent folder, or custom tags. At least one of title, parent, or custom_tags must be provided.
- Idempotent
Inputs
document_idstringrequired- No description.
custom_tagsstring- No description.
parentstring- No description.
titlestring- No description.
lucidmcp_lucid_update_folderRename a Lucid folder or move it to a different parent.DestructiveLucid Update Folder
Rename a Lucid folder or move it to a different parent. At least one of name or parent must be provided.
- Idempotent
Inputs
folder_idintegerrequired- No description.
namestring- No description.
parentstring- No description.
No tools match.