calculator

Calculators accessible via MCP with real-time collaborative sessions and shareable URLs.

我該用這個嗎

品質與安全性

A
說明品質
98%
結構描述完整度
97%
命名品質
98%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~1,811Token(工具定義)
~2.1 KB典型回應大小
中等的注意力影響(128k 上下文的 1.41%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "calculator": {
      "url": "https://mcpcalc.com/api/v1/mcp"
    }
  }
}

遠端端點

https://mcpcalc.com/api/v1/mcpstreamable-http

它能做什麼

工具清單

工具(10)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢list_calculators(category)

List available calculators, optionally filtered by category

輸入結構描述

{
  "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

輸入結構描述

{
  "type": "object",
  "properties": {
    "calculator": {
      "type": "string",
      "description": "Calculator slug"
    }
  },
  "required": [
    "calculator"
  ]
}
🟢calculate(calculator, inputs, strict)

Run a calculation and get results + prefilled URL

輸入結構描述

{
  "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

輸入結構描述

{
  "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.

輸入結構描述

{
  "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.

輸入結構描述

{
  "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

輸入結構描述

{
  "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

輸入結構描述

{
  "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.)

輸入結構描述

{
  "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

輸入結構描述

{
  "type": "object",
  "properties": {
    "session_id": {
      "type": "string",
      "description": "Session UUID"
    }
  },
  "required": [
    "session_id"
  ]
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本10 個工具
已驗證未記錄版本10 個工具
已驗證未記錄版本10 個工具