calculator
Calculators accessible via MCP with real-time collaborative sessions and shareable URLs.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"calculator": {
"url": "https://mcpcalc.com/api/v1/mcp"
}
}
}Puntos de conexión remotos
https://mcpcalc.com/api/v1/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (10)
🟢list_calculators(category)
List available calculators, optionally filtered by category
Esquema de entrada
{
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Filter by category (e.g., 'finance', 'math')"
}
}
}🟢get_calculator_schema(calculator)
Get the input schema for a specific calculator
Esquema de entrada
{
"type": "object",
"properties": {
"calculator": {
"type": "string",
"description": "Calculator slug"
}
},
"required": [
"calculator"
]
}🟢calculate(calculator, inputs, strict)
Run a calculation and get results + prefilled URL
Esquema de entrada
{
"type": "object",
"properties": {
"calculator": {
"type": "string",
"description": "Calculator slug"
},
"inputs": {
"type": "object",
"description": "Calculator input values"
},
"strict": {
"type": "boolean",
"description": "If true, reject invalid or unknown input fields instead of dropping them"
}
},
"required": [
"calculator",
"inputs"
]
}⚪generate_prefilled_url(calculator, inputs, strict)
Generate a prefilled URL without running calculation
Esquema de entrada
{
"type": "object",
"properties": {
"calculator": {
"type": "string",
"description": "Calculator slug"
},
"inputs": {
"type": "object",
"description": "Input values for URL"
},
"strict": {
"type": "boolean",
"description": "If true, reject invalid or unknown input fields instead of dropping them"
}
},
"required": [
"calculator",
"inputs"
]
}🟢calculate_cas(expression, expressions, strict)
Evaluate one or more headless CAS expressions server-side (MCP-only numeric mode). Unsupported expressions return a GUI handoff link.
Esquema de entrada
{
"type": "object",
"properties": {
"expression": {
"type": "string",
"description": "Single CAS expression to evaluate"
},
"expressions": {
"type": "array",
"description": "Optional ordered list of CAS expressions to evaluate in one isolated context (supports assignments across the batch)",
"items": {
"type": "string"
}
},
"strict": {
"type": "boolean",
"description": "If true, reject unknown fields and malformed expressions instead of dropping them"
}
}
}🟢calculate_cas_headless(expression, expressions, strict)
Alias of calculate_cas. Headless MCP-only CAS evaluator; if unsupported features are requested, returns GUI handoff details.
Esquema de entrada
{
"type": "object",
"properties": {
"expression": {
"type": "string",
"description": "Single CAS expression to evaluate"
},
"expressions": {
"type": "array",
"description": "Optional ordered list of CAS expressions to evaluate in one isolated context (supports assignments across the batch)",
"items": {
"type": "string"
}
},
"strict": {
"type": "boolean",
"description": "If true, reject unknown fields and malformed expressions instead of dropping them"
}
}
}🟡create_session(calculator, metadata)
Create a new interactive session for any calculator and return the session URL
Esquema de entrada
{
"type": "object",
"properties": {
"calculator": {
"type": "string",
"description": "Calculator slug"
},
"metadata": {
"type": "object",
"description": "Optional session metadata"
}
},
"required": [
"calculator"
]
}🟢get_session_state(session_id)
Retrieve the current field values, computation transcript, and pending message queue for an active session
Esquema de entrada
{
"type": "object",
"properties": {
"session_id": {
"type": "string",
"description": "Session UUID"
}
},
"required": [
"session_id"
]
}🟡push_session_action(session_id, actions)
Push actions into a session's message queue (set fields, submit computation, trigger plot, etc.)
Esquema de entrada
{
"type": "object",
"properties": {
"session_id": {
"type": "string",
"description": "Session UUID"
},
"actions": {
"type": "array",
"description": "Array of SessionAction objects to push to the browser",
"items": {
"type": "object",
"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.",
"properties": {
"type": {
"type": "string",
"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"
],
"description": "The action type"
},
"expression": {
"type": "string",
"description": "Math expression (for submit_expression and plot actions)"
},
"fields": {
"type": "object",
"description": "Key-value pairs of field names to values (for set_fields action on form calculators)"
},
"cells": {
"type": "object",
"description": "Cell raw values keyed by A1 refs (for set_cells on spreadsheet)"
},
"ranges": {
"type": "array",
"items": {
"type": "string"
},
"description": "A1 ranges or single refs (for get_cells and clear_cells)"
},
"csv": {
"type": "string",
"description": "CSV/TSV payload for load_csv"
},
"target": {
"type": "string",
"description": "Target cell for load_csv (defaults to A1)"
},
"delimiter": {
"type": "string",
"description": "Optional delimiter for load_csv (e.g. ',', '\\t')"
},
"formats": {
"type": "object",
"description": "Column display formats keyed by column letter (for set_column_format)"
},
"name": {
"type": "string",
"description": "Variable name (for assign_variable action)"
},
"markdown": {
"type": "string",
"description": "Markdown text for a static commentary block (links/code are sanitized)"
},
"range": {
"anyOf": [
{
"type": "array",
"items": {
"type": "number"
}
},
{
"type": "string"
}
],
"description": "Plot range as [min, max] for 'plot', or A1 range string for 'export_csv'"
},
"mode": {
"type": "string",
"enum": [
"symbolic",
"numeric"
],
"description": "Evaluation mode (for set_mode action)"
},
"key": {
"type": "string",
"description": "Single RPN key or token (for rpn_keypress)"
},
"keys": {
"type": "array",
"items": {
"type": "string"
},
"description": "Ordered list of RPN keys or commands (for rpn_key_sequence)"
},
"command": {
"type": "string",
"description": "RPN command name (for rpn_execute_command)"
},
"args": {
"type": "array",
"items": {},
"description": "Optional command arguments (for rpn_execute_command)"
},
"stack": {
"type": "object",
"description": "Partial T/Z/Y/X stack payload (for rpn_set_stack)"
},
"registers": {
"type": "object",
"description": "Register map for RPN memory updates"
},
"source": {
"type": "string",
"description": "Line-based program source (for rpn_load_program)"
},
"preservePrograms": {
"type": "boolean",
"description": "Preserve stored RPN programs when resetting"
},
"id": {
"type": "string",
"description": "Proof line id for update/delete/move/indent actions"
},
"toIndex": {
"type": "number",
"description": "Target line index for proof_move_line"
},
"delta": {
"type": "number",
"description": "Indent delta for proof_indent_line"
},
"patch": {
"type": "object",
"description": "Proof line patch payload for proof_update_line. Include fields like source, justification, indent, or tags.",
"properties": {
"source": {
"type": "string",
"description": "Proof line content to display in the builder"
},
"justification": {
"type": "string",
"description": "Optional justification text for the proof line"
},
"indent": {
"type": "number",
"description": "Indent level for the proof line"
},
"tags": {
"type": "array",
"items": {
"type": "string",
"enum": [
"assumption",
"claim",
"therefore",
"qed"
]
},
"description": "Optional proof line tags"
}
}
},
"templateId": {
"type": "string",
"description": "Template id for proof_apply_template"
},
"index": {
"type": "number",
"description": "Optional insertion index for proof_insert_line/proof_apply_template"
},
"line": {
"type": "object",
"description": "Optional line payload for proof_insert_line. Include source and optional justification/indent/tags.",
"properties": {
"source": {
"type": "string",
"description": "Proof line content to insert"
},
"justification": {
"type": "string",
"description": "Optional justification for the inserted proof line"
},
"indent": {
"type": "number",
"description": "Indent level for the inserted proof line"
},
"tags": {
"type": "array",
"items": {
"type": "string",
"enum": [
"assumption",
"claim",
"therefore",
"qed"
]
},
"description": "Optional proof line tags"
}
}
},
"document": {
"type": "object",
"description": "Full proof document payload for proof_replace_document"
},
"title": {
"type": "string",
"description": "Proof title for proof_set_document_meta"
},
"theorem": {
"type": "string",
"description": "Theorem statement for proof_set_document_meta"
},
"assumptions": {
"type": "string",
"description": "Assumptions block for proof_set_document_meta"
},
"goal": {
"type": "string",
"description": "Goal statement for proof_set_document_meta"
}
},
"required": [
"type"
]
}
}
},
"required": [
"session_id",
"actions"
]
}⚪close_session(session_id)
Close a session and optionally persist a snapshot of its final state
Esquema de entrada
{
"type": "object",
"properties": {
"session_id": {
"type": "string",
"description": "Session UUID"
}
},
"required": [
"session_id"
]
}Comunidad
Evidencia