Calculators accessible via MCP with real-time collaborative sessions and shareable URLs.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Run a calculation and get results + prefilled URL
Calculator input values
Calculator slug
If true, reject invalid or unknown input fields instead of dropping them
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Run a calculation and get results + prefilled URL
| Argument | Type | Description |
|---|---|---|
| inputs* | object | Calculator input values |
| strict | boolean | If true, reject invalid or unknown input fields instead of dropping them |
| calculator* | string | Calculator slug |
{
"type": "object",
"required": [
"calculator",
"inputs"
],
"properties": {
"inputs": {
"type": "object",
"description": "Calculator input values"
},
"strict": {
"type": "boolean",
"description": "If true, reject invalid or unknown input fields instead of dropping them"
},
"calculator": {
"type": "string",
"description": "Calculator slug"
}
}
}Evaluate one or more headless CAS expressions server-side (MCP-only numeric mode). Unsupported expressions return a GUI handoff link.
| Argument | Type | Description |
|---|---|---|
| strict | boolean | If true, reject unknown fields and malformed expressions instead of dropping them |
| expression | string | Single CAS expression to evaluate |
| expressions | array | Optional ordered list of CAS expressions to evaluate in one isolated context (supports assignments across the batch) |
{
"type": "object",
"properties": {
"strict": {
"type": "boolean",
"description": "If true, reject unknown fields and malformed expressions instead of dropping them"
},
"expression": {
"type": "string",
"description": "Single CAS expression to evaluate"
},
"expressions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional ordered list of CAS expressions to evaluate in one isolated context (supports assignments across the batch)"
}
}
}Alias of calculate_cas. Headless MCP-only CAS evaluator; if unsupported features are requested, returns GUI handoff details.
| Argument | Type | Description |
|---|---|---|
| strict | boolean | If true, reject unknown fields and malformed expressions instead of dropping them |
| expression | string | Single CAS expression to evaluate |
| expressions | array | Optional ordered list of CAS expressions to evaluate in one isolated context (supports assignments across the batch) |
{
"type": "object",
"properties": {
"strict": {
"type": "boolean",
"description": "If true, reject unknown fields and malformed expressions instead of dropping them"
},
"expression": {
"type": "string",
"description": "Single CAS expression to evaluate"
},
"expressions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional ordered list of CAS expressions to evaluate in one isolated context (supports assignments across the batch)"
}
}
}Close a session and optionally persist a snapshot of its final state
| Argument | Type | Description |
|---|---|---|
| session_id* | string | Session UUID |
{
"type": "object",
"required": [
"session_id"
],
"properties": {
"session_id": {
"type": "string",
"description": "Session UUID"
}
}
}Create a new interactive session for any calculator and return the session URL
| Argument | Type | Description |
|---|---|---|
| metadata | object | Optional session metadata |
| calculator* | string | Calculator slug |
{
"type": "object",
"required": [
"calculator"
],
"properties": {
"metadata": {
"type": "object",
"description": "Optional session metadata"
},
"calculator": {
"type": "string",
"description": "Calculator slug"
}
}
}Generate a prefilled URL without running calculation
| Argument | Type | Description |
|---|---|---|
| inputs* | object | Input values for URL |
| strict | boolean | If true, reject invalid or unknown input fields instead of dropping them |
| calculator* | string | Calculator slug |
{
"type": "object",
"required": [
"calculator",
"inputs"
],
"properties": {
"inputs": {
"type": "object",
"description": "Input values for URL"
},
"strict": {
"type": "boolean",
"description": "If true, reject invalid or unknown input fields instead of dropping them"
},
"calculator": {
"type": "string",
"description": "Calculator slug"
}
}
}Get the input schema for a specific calculator
| Argument | Type | Description |
|---|---|---|
| calculator* | string | Calculator slug |
{
"type": "object",
"required": [
"calculator"
],
"properties": {
"calculator": {
"type": "string",
"description": "Calculator slug"
}
}
}Retrieve the current field values, computation transcript, and pending message queue for an active session
| Argument | Type | Description |
|---|---|---|
| session_id* | string | Session UUID |
{
"type": "object",
"required": [
"session_id"
],
"properties": {
"session_id": {
"type": "string",
"description": "Session UUID"
}
}
}List available calculators, optionally filtered by category
| Argument | Type | Description |
|---|---|---|
| category | string | Filter by category (e.g., 'finance', 'math') |
{
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Filter by category (e.g., 'finance', 'math')"
}
}
}Push actions into a session's message queue (set fields, submit computation, trigger plot, etc.)
| Argument | Type | Description |
|---|---|---|
| actions* | array | Array of SessionAction objects to push to the browser |
| session_id* | string | Session UUID |
{
"type": "object",
"required": [
"session_id",
"actions"
],
"properties": {
"actions": {
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"id": {
"type": "string",
"description": "Proof line id for update/delete/move/indent actions"
},
"csv": {
"type": "string",
"description": "CSV/TSV payload for load_csv"
},
"key": {
"type": "string",
"description": "Single RPN key or token (for rpn_keypress)"
},
"args": {
"type": "array",
"items": {},
"description": "Optional command arguments (for rpn_execute_command)"
},
"goal": {
"type": "string",
"description": "Goal statement for proof_set_document_meta"
},
"keys": {
"type": "array",
"items": {
"type": "string"
},
"description": "Ordered list of RPN keys or commands (for rpn_key_sequence)"
},
"line": {
"type": "object",
"properties": {
"tags": {
"type": "array",
"items": {
"enum": [
"assumption",
"claim",
"therefore",
"qed"
],
"type": "string"
},
"description": "Optional proof line tags"
},
"indent": {
"type": "number",
"description": "Indent level for the inserted proof line"
},
"source": {
"type": "string",
"description": "Proof line content to insert"
},
"justification": {
"type": "string",
"description": "Optional justification for the inserted proof line"
}
},
"description": "Optional line payload for proof_insert_line. Include source and optional justification/indent/tags."
},
"mode": {
"enum": [
"symbolic",
"numeric"
],
"type": "string",
"description": "Evaluation mode (for set_mode action)"
},
"name": {
"type": "string",
"description": "Variable name (for assign_variable action)"
},
"type": {
"enum": [
"submit_expression",
"set_fields",
"plot",
"assign_variable",
"insert_markdown",
"clear_transcript",
"set_mode",
"set_cells",
"get_cells",
"clear_cells",
"load_csv",
"export_csv",
"set_column_format",
"rpn_keypress",
"rpn_key_sequence",
"rpn_execute_command",
"rpn_set_stack",
"rpn_set_registers",
"rpn_load_program",
"rpn_run_program",
"rpn_reset",
"proof_set_document_meta",
"proof_insert_line",
"proof_update_line",
"proof_delete_line",
"proof_move_line",
"proof_indent_line",
"proof_apply_template",
"proof_replace_document"
],
"type": "string",
"description": "The action type"
},
"cells": {
"type": "object",
"description": "Cell raw values keyed by A1 refs (for set_cells on spreadsheet)"
},
"delta": {
"type": "number",
"description": "Indent delta for proof_indent_line"
},
"index": {
"type": "number",
"description": "Optional insertion index for proof_insert_line/proof_apply_template"
},
"patch": {
"type": "object",
"properties": {
"tags": {
"type": "array",
"items": {
"enum": [
"assumption",
"claim",
"therefore",
"qed"
],
"type": "string"
},
"description": "Optional proof line tags"
},
"indent": {
"type": "number",
"description": "Indent level for the proof line"
},
"source": {
"type": "string",
"description": "Proof line content to display in the builder"
},
"justification": {
"type": "string",
"description": "Optional justification text for the proof line"
}
},
"description": "Proof line patch payload for proof_update_line. Include fields like source, justification, indent, or tags."
},
"range": {
"anyOf": [
{
"type": "array",
"items": {
"type": "number"
}
},
{
"type": "string"
}
],
"description": "Plot range as [min, max] for 'plot', or A1 range string for 'export_csv'"
},
"stack": {
"type": "object",
"description": "Partial T/Z/Y/X stack payload (for rpn_set_stack)"
},
"title": {
"type": "string",
"description": "Proof title for proof_set_document_meta"
},
"fields": {
"type": "object",
"description": "Key-value pairs of field names to values (for set_fields action on form calculators)"
},
"ranges": {
"type": "array",
"items": {
"type": "string"
},
"description": "A1 ranges or single refs (for get_cells and clear_cells)"
},
"source": {
"type": "string",
"description": "Line-based program source (for rpn_load_program)"
},
"target": {
"type": "string",
"description": "Target cell for load_csv (defaults to A1)"
},
"command": {
"type": "string",
"description": "RPN command name (for rpn_execute_command)"
},
"formats": {
"type": "object",
"description": "Column display formats keyed by column letter (for set_column_format)"
},
"theorem": {
"type": "string",
"description": "Theorem statement for proof_set_document_meta"
},
"toIndex": {
"type": "number",
"description": "Target line index for proof_move_line"
},
"document": {
"type": "object",
"description": "Full proof document payload for proof_replace_document"
},
"markdown": {
"type": "string",
"description": "Markdown text for a static commentary block (links/code are sanitized)"
},
"delimiter": {
"type": "string",
"description": "Optional delimiter for load_csv (e.g. ',', '\\t')"
},
"registers": {
"type": "object",
"description": "Register map for RPN memory updates"
},
"expression": {
"type": "string",
"description": "Math expression (for submit_expression and plot actions)"
},
"templateId": {
"type": "string",
"description": "Template id for proof_apply_template"
},
"assumptions": {
"type": "string",
"description": "Assumptions block for proof_set_document_meta"
},
"preservePrograms": {
"type": "boolean",
"description": "Preserve stored RPN programs when resetting"
}
},
"description": "A session action. Supports CAS actions, form field updates, and spreadsheet actions like set_cells/get_cells/load_csv/export_csv/set_column_format."
},
"description": "Array of SessionAction objects to push to the browser"
},
"session_id": {
"type": "string",
"description": "Session UUID"
}
}
}