API documentation
Read and write AltoDocs documents programmatically — projects, documents, calculation canvases, and an MCP surface for AI agents.
AltoDocs from your AI assistant
Use your assistant to create editable engineering calculations and documents, find existing work, and revise the same saved file. Start with a standalone MathCanvas sheet or combine calculations, tables and sketches in a report. The assistant returns a link you can open, edit and share through AltoDocs.
Connect
Remote MCP server: https://app.altodocs.io/mcp
Add this URL as a custom remote connector in an MCP-compatible assistant, choose OAuth authentication, sign in to AltoDocs and select the projects it may use. Your existing AltoDocs project permissions still apply. You need an AltoDocs account and a project, or project-creation consent where that tool is available. Standalone MathCanvas is free to use; other file types require the appropriate editing access.
Custom connectors may require a particular assistant plan or workspace administrator permission. Directory listings and approval are separate from connecting this URL; availability in a store is not implied.
Try a standalone calculation
In my selected project, create a standalone MathCanvas named Load worksheet. Add q = 12 kN/m, L = 6 m and M = q*L^2/8. Include a note with the supplied assumptions. Save it, read it back, evaluate M in kN m, and give me the worksheet link.
In that same worksheet, change L to 7 m, recalculate, tidy the layout and keep the same file.
The expected values are 54 kN m and then 73.5 kN m for those supplied formulas. Open the returned link to inspect and edit the native sheet. If the assistant cannot see the standalone tools, ask which AltoDocs tools its connection exposes; installing a skill or reconnecting alone does not guarantee a new host-approved tool set.
Bring your own source material
Upload your PDF, Word file, spreadsheet or calculation notes to your assistant, then ask it to identify source values, units and assumptions before saving a sheet or report. Attachment reading depends on the assistant's capabilities and permissions. AltoDocs receives selected tool arguments; it does not fetch or parse arbitrary attachments, access other apps automatically, or receive your full conversation. If the assistant cannot read an attachment, supply the relevant excerpt or values.
Supported workflows
The live server supports standalone MathCanvas inputs, dependent formulas, notes, layout and saved evaluation; engineering reports with text, lists, tables, embedded worksheets and supported beam analysis; editable blank-background markup with saved previews; native 2D CAD geometry, annotations, layers, blocks, layouts and viewports; and spreadsheet cells, formula source, styles and tabs. Project/folder creation and recoverable file rename, copy, move, Trash and restore are also available through scoped tools.
Available actions depend on the assistant's exposed tools, project consent and account permissions. OpenAI 1.1.1 is published; the 1.2.0 package with eight workflow skills is in review. Claude's connector submission is also in review. A deployed server capability does not establish directory availability. See connection instructions and current limitations.
Spreadsheet formulas are saved without connector recalculation. Markup cannot use arbitrary uploaded-image/PDF backgrounds. CAD has no external DWG import or PDF plotting through these tools. The connector does not run user Python, export files, send email, change sharing, or certify engineering designs. Report worksheet, beam and sketch values must be updated explicitly; they are not automatically linked.
Privacy and disconnecting
The assistant receives the content returned by the tools it calls within the selected projects. Write tools can change saved documents visible to collaborators. AltoDocs stores a separate, encrypted connector login session; your AltoDocs password and session tokens are not sent to the assistant.
Disconnect in your assistant's connector settings. Hosts can revoke the connector token through the OAuth revocation endpoint. Connections expire after 30 days and require reconnecting. The immediately connected browser can also use connection management.
Read our Privacy Notice and Terms. For setup and access problems, contact AltoDocs.
Tools and protocol
Public endpoint
https://app.altodocs.io/mcp implements MCP Streamable HTTP. Use an MCP SDK or your assistant's remote connector settings. Ordinary HTTP requests to the URL are not a document REST API.
OAuth discovery is available at /.well-known/oauth-protected-resource/mcp and /.well-known/oauth-authorization-server on the same origin. Authorization-code flow uses S256 PKCE, dynamic client registration, refresh tokens and revocation. Pass the exact resource URL during authorization and token exchange. Tokens issued to this connector cannot be used as AltoDocs application sessions.
Report tools
| Tool | Permission | Purpose |
|---|---|---|
list_projects | documents:read | List projects selected during connection and still accessible. |
list_documents | documents:read | Find active documents in one selected project, optionally by title. |
read_document | documents:read | Read a saved version, native blocks, stable IDs and section links. |
create_document | documents:write | Save a new native document in an existing project. |
edit_document | documents:write | Apply an atomic batch to a previously read version. |
preview_block | documents:read | Return a saved native beam or markup PNG preview. |
evaluate_calculation | calculations:evaluate | Evaluate supplied expressions without saving a document. |
This table describes the original report workflow. The live workspace server also exposes standalone MathCanvas, project/file, spreadsheet and CAD tools: see the workflow catalog. Tool discovery returns the authoritative argument schemas. Available tools depend on granted scopes and host approval. New default OAuth consent requests read, write, calculation and project-creation scopes; clients and existing grants may have fewer.
Read, edit, verify
list_projects and list_documents accept limit (up to 50) and return nextCursor; pass it as after to continue. read_document accepts offset and limit (up to 100); follow nextOffset until it is null.
A read returns the document's exact saved version, plus each block's id, type, text and native content. Stable blocks also return a url opening that section. Older blocks without saved IDs use a temporary position:N identifier tied to the read version; it must not be used to manufacture section links.
Create requires a fresh UUID requestId and documentId, an accessible projectId, a title and blocks. Edit requires a fresh UUID requestId, documentId, the read expectedVersion and operations. Reuse the exact arguments and request ID after a lost response; successful requests are deduplicated.
Supported operations are append, insert, text, move, delete, tableCell and worksheetExpression. Text replacement affects the whole text block. Table row and column indices are zero-based; row zero is the header. Worksheet edits target the existing region ID returned by a read.
A successful write returns saved: true, document ID, title, project ID, version and URL. Read again to verify content and obtain the section URL. If another editor changed the document, a conflict requires a fresh read and a reconsidered edit. A failed atomic batch does not partly save.
Limits and errors
Requests are bounded in size, time and frequency. A call supports up to 100 blocks or operations, tables up to 50 columns and 500 data rows, and calculation worksheets up to 200 expressions. A document exceeding the supported storage or native-node limits returns an error.
Tool errors include a status and explanation. Authentication failures require reconnecting; permission failures require accessible projects and the appropriate scope. A version conflict is status 409. Respect Retry-After on rate limits. Do not treat an error as a saved document or invent a link.
Calculation worksheets
MathLive and LaTeX provide the expression editing and display layer. AltoDocs' shared calculation engine evaluates expressions using mathjs. Save a standalone MathCanvas calculation file or embed a worksheet in an engineering report. Both retain native editable source in AltoDocs; choose the file type that matches the requested result.
Standalone MathCanvas
When the connection exposes create_mathcanvas, create a native calculation file in an accessible project and optional folder. Populate it with add_variable for given values, define_variable for dependent formulas, add_calculation for unnamed expressions and add_text for explanation. These high-level tools accept ordinary math syntax such as q*L^2/8. Use the live schemas for arguments and returned IDs/versions; raw math-region edits use native LaTeX.
Read the saved source with read_worksheet, then run evaluate_worksheet to evaluate that saved sheet. Defining q = 12 kN/m, L = 6 m and M = q*L^2/8 gives 54 kN m. Changing L to 7 m in the same file gives 73.5 kN m. Return the actual saved /mathcanvas/ link. Evaluation alone does not save a result cache.
For follow-up changes, read the latest region IDs/version and use targeted worksheet tools. rename_variable updates dependent formula tokens; tidy_layout arranges supported regions using their stored bounds. Read back and evaluate again after mathematical or ordering changes. A headless layout pass does not establish visual acceptance in the browser. Project/file operations use their own version fields; see the connection guide.
These tools must actually be available in the host connection. A skill or healthy server does not establish that a directory has approved expanded tools.
Embedded worksheet in a report
Pass a block with kind: "worksheet" to create_document or an append operation. Expressions are evaluated in their supplied order, with each variable bound to the nearest preceding definition.
json{ "kind": "worksheet", "expressions": [ {"key": "q", "latex": "q := 12\\operatorname{kN}/\\operatorname{m}"}, {"key": "L", "latex": "L := 6\\operatorname{m}"}, {"key": "M", "latex": "M := q \\cdot L^2 / 8", "unit": "kN m"} ] }
The formula gives 54 kN m. The optional unit requests a display unit; it does not change the physical quantity. Keys must be unique within a worksheet. Use := for definitions, \\cdot for multiplication, \\frac{a}{b} for fractions and \\operatorname{kN} for units (in JSON, escape each backslash).
Update an embedded expression
Read the document to obtain its current version, worksheet block ID and expression region ID. Use worksheetExpression with blockId, regionId, latex, and optionally unit. Set unit to null to clear a preferred unit. The saved expression remains editable through MathLive in AltoDocs.
The optional evaluate_calculation tool evaluates the same supplied expressions without saving. Use it to check results before writing a worksheet. It returns each expression's status, formatted result, value and unit or an error. Never substitute guessed values for reported calculation errors.
Assumptions belong in the document
Include source, units, assumptions and interpretation in adjacent text blocks. AltoDocs evaluates the formulas supplied; the connector does not independently verify engineering design, standards compliance or the reliability of external source data.
Connect an AI assistant
Availability
AltoDocs supports editable standalone calculations, engineering reports, markup, native CAD and spreadsheets from conversation, subject to the tools exposed by your assistant. See the plugins and example prompts.
Status updated 22 October 2026. Claude, Microsoft and Google host checks remain dated 4 October; directory submission and publication are recorded separately.
| Assistant | Current status |
|---|---|
| ChatGPT | Published plugin — install AltoDocs, version 1.1.1. Version 1.2.0 with eight skills is in review; its skills passed automated checks. The directory MCP scan still lists seven tools, so expanded tool availability is unverified. |
| Claude | Custom connector tested historically. Directory submission is in review; the captured listing currently has seven tools. |
| Microsoft 365 Copilot | Agent package in preparation. Tenant setup and live Copilot testing pending; not available or submitted yet. |
| Google Gemini and Workspace | No released or tested AltoDocs integration yet. |
Claude and ChatGPT
Use the remote server URL https://app.altodocs.io/mcp in your assistant's custom connector or plugin setup. Choose OAuth, sign in to AltoDocs, and select projects. The exact menu and eligibility depend on your assistant plan and administrator settings.
In Claude, open Customize → Connectors → Add custom connector, enter the URL, and choose automatic OAuth registration when offered. In ChatGPT, install AltoDocs, connect your account and select projects. Custom MCP setup remains available where your account or workspace allows it. After connecting, enable AltoDocs in a conversation and ask it to list your projects.
For current host instructions, see Claude custom connectors and OpenAI plugin testing. The ChatGPT listing is published; Claude directory review remains separate. If custom connections are unavailable in your workspace, ask its administrator or contact AltoDocs.
Permissions and saved content
The connector uses OAuth with project selection. Your existing AltoDocs membership and editing entitlement still apply. The assistant receives document content you ask it to read; the assistant provider's own privacy terms apply. Never put passwords or access tokens in prompts or configuration files.
Supported native content includes paragraphs, headings, quotes, lists, tables, MathCanvas worksheets, AltoBeam models and editable blank-background markup sketches. Beam models use the same solver, combinations and supported member checks as the editor. preview_block returns a PNG of a saved beam result or sketch. Compatible MCP Apps hosts can display it in a read-only card with a direct document link; other clients receive the standard tool image. The card makes no external network requests. The workspace expansion adds standalone MathCanvas, spreadsheet and CAD files, project creation/copying, folders, and file copy/move/rename/Trash/restore. The host must approve new tool definitions before they become available; existing connections retain their granted permissions. The connection does not fetch files from other services, execute arbitrary Python, upload files, export PDFs, send email or change sharing. Prepare external source data with your assistant's other authorized tools, then supply the values to AltoDocs.
New default consent requests documents:read, documents:write, calculations:evaluate and projects:create. Clients can request fewer permissions. Existing connections retain their original scopes until reconnection. Project creation consent grants access only to the newly created project; other existing projects still require explicit selection. The calculation scope enables formula evaluation. MathLive/LaTeX is input and display syntax; the shared mathjs engine performs calculations. Evaluation alone does not save a worksheet or certify an engineering design.
| Tool | Purpose |
|---|---|
list_workspaces, create_project, duplicate_project | Discover organization workspaces and create/copy projects with explicit consent. |
get_project, rename_project, create_folder, rename_folder, remove_empty_folder | Read and organize selected projects; folder removal refuses files. |
get_document_info, rename_document, duplicate_document, move_document, list_trash, trash_document, restore_document | Manage saved files with both content and properties version checks. |
create_mathcanvas, read_worksheet, edit_worksheet | Create standalone worksheets and read/edit exact region content, layout, styles, units and settings. Works with embedded worksheets too. |
add_variable, define_variable, add_calculation, add_text, update_region, delete_region, duplicate_region, rename_variable, tidy_layout | Use native worksheet chat-panel operations and stable region IDs. |
evaluate_worksheet | Evaluate saved worksheet source in reading order, without saving result caches or executing Python. |
create_spreadsheet, list_spreadsheet_sheets, read_spreadsheet, edit_spreadsheet | Save cells, formulas, basic styles and worksheet tabs; formulas are not recalculated by these tools. |
create_cad, cad_* | Create native drawings and use the editor chat panel’s 76 headless commands for geometry, layers, dimensions, blocks and paper layouts. |
list_projects | Discover projects selected during connection consent. |
list_documents | Find accessible documents in a selected project. |
read_document | Read saved native blocks, version, block IDs and section links. Follow nextOffset for more pages. |
create_document | Save native text, tables, worksheet expressions, solved beam models and editable sketches. |
edit_document | Apply an atomic edit using the version from a fresh read. |
preview_block | Return a saved beam or sketch image and its section link. Stale beam results cannot be previewed. |
evaluate_calculation | Evaluate expressions with units; requires the optional calculation scope. |
Ask the assistant to read back each save before reporting success. Section links returned by read_document open the saved block in AltoDocs. A version conflict requires a fresh read and reconsideration of the intended edit. A transport retry must reuse the same request ID and identical arguments to avoid duplicate writes.
Free standalone MathCanvas
Open MathCanvas and sign in to create and save standalone calculation worksheets. Connect the same AltoDocs account to your assistant and select the project containing your worksheets. MathCanvas is free; assistant access depends on your own provider plan and workspace settings.
Try this after the new worksheet tools appear in your connection:
Create a standalone MathCanvas named Load worksheet in my selected project. Add q = 12 kN/m, L = 6 m and M = q*L^2/8, with M displayed in kN m. Add an assumptions note. Save, read back and evaluate the worksheet, then give me its MathCanvas link.
Then:
In that saved worksheet, change L to 7 m. Recalculate and compare M before and after. Keep the note and result units.
For the supplied formula, M changes from 54 kN m to 73.5 kN m. These are formula results, not a structural design check. The saved worksheet stays editable in MathCanvas. The connector can add and update variables, formulas and notes, rename variables with dependent-formula updates, change display units and precision, and arrange regions. Python cells, external worksheet references and PDF export are outside this connector workflow.
Other MCP clients
Clients supporting remote Streamable HTTP and OAuth can use the same endpoint. A Claude Code-compatible server entry is:
json{ "mcpServers": { "altodocs": { "type": "http", "url": "https://app.altodocs.io/mcp" } } }
Use the client's normal OAuth connection flow. Do not paste your AltoDocs password or application token into configuration files or conversations. Microsoft and Google product support and administrator configuration differ; a generic MCP endpoint does not automatically create a marketplace listing there.
From external data to a saved document
- Ask your assistant to read or compute your source data using its existing tools.
- Ask it to find your AltoDocs project and create a report with the source values, assumptions, a MathCanvas worksheet, a beam model and a sketch.
- The connector saves native document content and returns the document link and version.
- The assistant can read it back, make targeted changes, and return a section link.
- Open the link whenever you want to inspect or continue editing in AltoDocs.
Beam example: strength passes, deflection governs
Use a synthetic example or your own checked source data. Ask:
Create a beam report in my AltoDocs project. Use a 6 m simply supported IPE 270 in S355, continuously restrained against lateral torsional buckling. Permanent and imposed area loads are 3 and 2 kN/m², with a 2 m tributary width; these are the total supplied loads, with no additional self-weight. Save the unit-aware line-load calculation in MathCanvas. Analyse ULS 1.35G + 1.5Q and SLS G + Q in a native AltoBeam block. Check deflection against L/300 and report supported steel utilisation. Add an editable loading sketch. Read back the saved results, show a preview and link to the beam.
Then:
Change the span to 7 m in the same report. Update the support and load positions, worksheet, sketch, L/300 limit and summary. Recompute both combinations. Read the saved result and explain which check governs, with a link to the changed beam.
For this example, the shared solver gives about 13.9 mm deflection against a 20 mm limit at 6 m. At 7 m it gives about 25.7 mm against 23.3 mm: deflection exceeds the chosen limit even though the supported strength checks still pass. These are sample assumptions, not a project approval.
Engineering and editing boundaries
- Beam length and positions use mm; distributed loads use kN/m; downward loads are negative. The input schema carries explicit units, support conditions, section properties, load cases and combinations.
- Steel sections use the shared catalogue and supported member checks. A custom E/I section can be analysed but does not imply a steel resistance check. Results identify unavailable checks. Bearing details, restraint and other missing design information must not be silently assumed.
- The assistant must explicitly revise each affected block. MathCanvas, beam and sketch values are not automatically linked across blocks.
- Sketches support editable lines, arrows, rectangles, circles, dimensions and plain labels on a blank background. Standalone CAD editing uses separate
cad_*tools; the markup sketch remains a different native block. Arbitrary image uploads and CAD embeds are not supported. - Saved beam previews use computed results. A model changed without corresponding current results is marked stale and must be recalculated before claiming success.
- Chat text, tables, equations, links and image display depend on the assistant host. The editable source remains in AltoDocs; an image returned in chat is a preview.
Microsoft and Google
The Microsoft integration is being prepared as a Microsoft 365 Copilot agent using the same document tools. It is not currently available for installation. Microsoft tenant permissions, authentication registration, host testing and Marketplace review are separate steps. Contact us about your Microsoft workflow.
Google Workspace add-ons, Gemini Enterprise agents and Gemini CLI extensions have different packaging and publishing paths. AltoDocs does not currently claim support or a listing for these hosts.
Troubleshooting
If no projects appear, use list_workspaces and create_project with project creation permission, or create/join a project in AltoDocs and reconnect to select it. If the project was not selected, reconnect and select it. If access expires, reconnect. If editing is denied, check your project role and AltoDocs editing entitlement. If formula evaluation or project creation is missing, reconnect with calculations:evaluate or projects:create respectively.
If a sign-in page says “Invalid consent request”, restart the connection from your assistant; do not bookmark or open /connect/login directly. If a write conflicts, ask the assistant to read the latest version before trying again. Unsupported native blocks or document types return a clear failure; the connector should not overwrite them with a simplified copy.
To report a problem, email contact@altodocs.io with the time and request ID if available. Do not include passwords, tokens or confidential document content.