calculator

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

사용해야 할까요

품질 및 안전성

A
설명 품질
98%
스키마 완전성
97%
이름 품질
98%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,811토큰 (도구 정의)
~2.1 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.41%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`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개