MCP-Server

calculator

com.mcpcalc/calculator
Bildung Wissenschaft & Engineering Öffentlich und erreichbar MCP 2026-07-28

Was dieses MCP kann

Runs calculations and computer-algebra expressions, exposes calculator schemas, and manages collaborative calculator sessions with shareable URLs.

calculate
Run a calculation and get results + prefilled URL
Eingabeschema
{'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'}}}
calculate_cas
Evaluate one or more headless CAS expressions server-side (MCP-only numeric mode). Unsupported expressions return a GUI handoff link.
Eingabeschema
{'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)'}}}
calculate_cas_headless
Alias of calculate_cas. Headless MCP-only CAS evaluator; if unsupported features are requested, returns GUI handoff details.
Eingabeschema
{'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_session
Close a session and optionally persist a snapshot of its final state
Eingabeschema
{'type': 'object', 'required': ['session_id'], 'properties': {'session_id': {'type': 'string', 'description': 'Session UUID'}}}
create_session
Create a new interactive session for any calculator and return the session URL
Eingabeschema
{'type': 'object', 'required': ['calculator'], 'properties': {'metadata': {'type': 'object', 'description': 'Optional session metadata'}, 'calculator': {'type': 'string', 'description': 'Calculator slug'}}}
generate_prefilled_url
Generate a prefilled URL without running calculation
Eingabeschema
{'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_calculator_schema
Get the input schema for a specific calculator
Eingabeschema
{'type': 'object', 'required': ['calculator'], 'properties': {'calculator': {'type': 'string', 'description': 'Calculator slug'}}}
get_session_state
Retrieve the current field values, computation transcript, and pending message queue for an active session
Eingabeschema
{'type': 'object', 'required': ['session_id'], 'properties': {'session_id': {'type': 'string', 'description': 'Session UUID'}}}
list_calculators
List available calculators, optionally filtered by category
Eingabeschema
{'type': 'object', 'properties': {'category': {'type': 'string', 'description': "Filter by category (e.g., 'finance', 'math')"}}}
push_session_action
Push actions into a session's message queue (set fields, submit computation, trigger plot, etc.)
Eingabeschema
{'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'}}}
Hinzugefügt
close_session
17. September 2026 12:36
Hinzugefügt
push_session_action
17. September 2026 12:36
Hinzugefügt
get_session_state
17. September 2026 12:36
Hinzugefügt
create_session
17. September 2026 12:36
Hinzugefügt
calculate_cas_headless
17. September 2026 12:36
Hinzugefügt
calculate_cas
17. September 2026 12:36
Hinzugefügt
generate_prefilled_url
17. September 2026 12:36
Hinzugefügt
calculate
17. September 2026 12:36
Hinzugefügt
get_calculator_schema
17. September 2026 12:36
Hinzugefügt
list_calculators
17. September 2026 12:36