{"schema_version":"silentcritique.assured-context.v0.1","resource_type":"assured_context_pack","generated_at":"2026-08-11T23:27:24.833Z","snapshot_cursor":"scac_b65860487453010da2a2a818","subject":{"slug":"mcp-calculator","name":"Calculator MCP Server","type":"mcp_server","vendor":"githejie (community)","canonical_url":"https://github.com/githejie/mcp-server-calculator","verdict_url":"https://silentcritique.com/verdicts/mcp-calculator"},"request":{"task":null,"task_adaptation_applied":false,"task_adaptation_notice":"v0.1 carries the task with the full bounded snapshot; it does not yet filter or rerank evidence for that task.","freshness_required_hours":null,"freshness_requirement_met":null},"assessment":{"claim_tested":"Can the public Calculator MCP server evaluate arithmetic expressions correctly while refusing expressions that attempt code execution?","summary":"The Calculator MCP server passed a real smoke test: it evaluated arithmetic correctly and, importantly, rejected a code-execution attempt disguised as an expression with an AST-level unsupported-operation error. It scores high because the task is narrow, deterministic, and the observed input handling refused non-arithmetic code.","score":87,"score_label":"Narrow, deterministic, injection-resistant in smoke test","verdict_status":"published","strengths":["The injection probe was rejected at the expression-parsing layer, not by output filtering.","Deterministic results with structured content for both tested expressions.","One-tool surface is easy for a host to review and permission."],"failure_modes":["Only two arithmetic cases and one injection case were probed; the allowlist boundary was not exhaustively mapped.","A community-maintained package can change behavior between versions; the verdict pins 0.2.0."],"dissent":["The safety reviewer scored this at the top of the range because the injection probe failed safely with a precise error.","The operator skeptic noted that a calculator is the easiest possible category to score well in, and the score should not be read across categories."],"improvement_path":["Document the exact accepted expression grammar.","Add fuzz tests for the expression parser to the upstream repository."]},"evidence":{"mode":"dated_public_smoke_test","methodology_version":"sc-agent-trust-v0.1","tested_at":"2026-07-03","published_at":"2026-07-03","updated_at":"2026-07-03","evaluator_panel":["Protocol harness","Safety reviewer","Operator skeptic"],"test_setup":["Started mcp-server-calculator==0.2.0 over MCP stdio via uvx.","Used the official MCP client SDK to list tools, evaluate two arithmetic expressions, and submit a Python __import__ call disguised as an expression.","Stored the full tool-call evidence in evidence/trust5/2026-07-03-mcp-pilot.json."],"observations":[{"label":"Single calculate tool discovered","detail":"The server exposes exactly one tool, calculate(expression), which keeps the attack and review surface minimal.","source_reference":"evidence/trust5/2026-07-03-mcp-pilot.json","source_is_public_url":false},{"label":"Arithmetic evaluated correctly","detail":"(2 + 3) * 7 - 5 returned 30 and 2 ** 10 / 4 returned 256.0, both as structured content.","source_reference":"evidence/trust5/2026-07-03-mcp-pilot.json","source_is_public_url":false},{"label":"Code-execution probe rejected","detail":"__import__('os').getcwd() was refused with an Unsupported operation error naming the parsed AST node, indicating expression evaluation is allowlisted rather than passed to eval.","source_reference":"evidence/trust5/2026-07-03-mcp-pilot.json","source_is_public_url":false}],"limitations":["This was an unsolicited smoke test of the public package, not a source audit.","Only local stdio operation on macOS was tested."]},"freshness":{"tier":"fresh","label":"Recently verified","detail":"Evidence captured 39 days ago.","age_days":39,"age_hours":959,"live_monitoring":false,"interpretation":"This is a dated snapshot. It is not a claim about current live behavior."},"rights_and_reliance":{"source_licences_verified":false,"usage_rights":"not_asserted","reliance":"decision_support_only","notice":"Verify source rights and re-test material claims before autonomous high-impact action."},"reply_and_corrections":{"status":"unclaimed","body":"No vendor reply has been requested or published as of 2026-07-03. SilentCritique will publish factual corrections or a right of reply through the corrections process."},"links":{"self":"/api/assurance/subjects/mcp-calculator","changes":"/api/assurance/subjects/mcp-calculator/changes?cursor=scac_b65860487453010da2a2a818","methodology":"https://silentcritique.com/methodology","corrections":"https://silentcritique.com/corrections-and-reply"}}