{"serverId":"mcp-registry/com.mcpcalc/calculator","tools":[{"name":"calculate","fixed":{"name":"calculate","description":"Run a calculation and get results + prefilled URL","inputSchema":{"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"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":116,"tokensAfter":116},{"name":"calculate_cas","fixed":{"name":"calculate_cas","description":"Evaluate one or more headless CAS expressions server-side (MCP-only numeric mode). Unsupported expressions return a GUI handoff link.","inputSchema":{"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)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":172,"tokensAfter":172},{"name":"calculate_cas_headless","fixed":{"name":"calculate_cas_headless","description":"Alias of calculate_cas. Headless MCP-only CAS evaluator; if unsupported features are requested, returns GUI handoff details.","inputSchema":{"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)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":172,"tokensAfter":172},{"name":"close_session","fixed":{"name":"close_session","description":"Close a session and optionally persist a snapshot of its final state","inputSchema":{"type":"object","required":["session_id"],"properties":{"session_id":{"type":"string","description":"Session UUID"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":68,"tokensAfter":68},{"name":"create_session","fixed":{"name":"create_session","description":"Create a new interactive session for any calculator and return the session URL","inputSchema":{"type":"object","required":["calculator"],"properties":{"metadata":{"type":"object","description":"Optional session metadata"},"calculator":{"type":"string","description":"Calculator slug"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":91,"tokensAfter":91},{"name":"get_calculator_schema","fixed":{"name":"get_calculator_schema","description":"Get the input schema for a specific calculator","inputSchema":{"type":"object","required":["calculator"],"properties":{"calculator":{"type":"string","description":"Calculator slug"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":65,"tokensAfter":65},{"name":"get_session_state","fixed":{"name":"get_session_state","description":"Retrieve the current field values, computation transcript, and pending message queue for an active session","inputSchema":{"type":"object","required":["session_id"],"properties":{"session_id":{"type":"string","description":"Session UUID"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":79,"tokensAfter":79},{"name":"list_calculators","fixed":{"name":"list_calculators","description":"List available calculators, optionally filtered by category","inputSchema":{"type":"object","properties":{"category":{"type":"string","description":"Filter by category (e.g., 'finance', 'math')"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":67,"tokensAfter":67}],"toolsChanged":8,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}