{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-06T06:49:05.673Z","url":"https://verifymcp.io/servers/smdesai27-math-board/pi-math-board","markdownUrl":"https://verifymcp.io/servers/smdesai27-math-board/pi-math-board.md","server":{"slug":"smdesai27-math-board","name":"Math board","registryName":"io.github.smdesai27/math-board","description":"A local, view-only chalkboard the model draws on: equations, plots, molecules and diagrams.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"pi-math-board","type":"npm","identifier":"pi-math-board","withdrawn":false,"url":"https://verifymcp.io/servers/smdesai27-math-board/pi-math-board","version":"0.3.1","transport":"stdio","scoredAt":"2026-11-06T05:09:58.376Z"},"score":{"total":72,"tier":"medium","status":"scored","weekDelta":18,"history":[{"date":"2026-11-06","total":72},{"date":"2026-11-05","total":72},{"date":"2026-11-04","total":71},{"date":"2026-11-03","total":71},{"date":"2026-11-02","total":71},{"date":"2026-11-01","total":70},{"date":"2026-10-31","total":70},{"date":"2026-10-30","total":54},{"date":"2026-10-29","total":68},{"date":"2026-10-28","total":53}]},"categories":[{"name":"Supply Chain Security","score":100,"verdict":"pass","reasons":["No malware found by supply-chain analysis.","No known CVEs affecting this package version or its production dependencies.","No install/post-install scripts declared.","0 of 5 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.none","args":{}},{"code":"dephealth.assessed","args":{"deps":"5","unhealthy":"0"}}]},{"name":"Provenance & Transparency","score":48,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Provenance check failed: no build-provenance attestation is published.","Clear OSI-approved license (MIT).","Actively maintained (last published 6 days ago).","Publishes a security disclosure policy (SECURITY.md)."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.none","args":{}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"6"}},{"code":"disclosure.present","args":{}}]},{"name":"Schema Quality & AI Usability","score":64,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 1038 tokens (~148/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"148","items":"7","tools":"7","tokens":"1038","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":30,"verdict":"partial","reasons":["Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"9"}}]},{"name":"Tool Coverage","score":88,"verdict":"partial","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","65% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"65"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"7"}},{"code":"toolsafety.manipulation_clean","args":{"units":"8","judged":"8"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a current MCP spec version (2026-07-28)."],"codes":[{"code":"protocol.current","args":{"version":"2026-07-28"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"pi-math-board","type":"npm","identifier":"pi-math-board","withdrawn":false,"score":72,"current":true,"url":"https://verifymcp.io/servers/smdesai27-math-board/pi-math-board","markdownUrl":"https://verifymcp.io/servers/smdesai27-math-board/pi-math-board.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"pi-math-board"},{"label":"Version","value":"0.3.1"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"board_open","title":"Open board","description":"Open the shared blackboard to teach visually: starts it, shows it in the learner's browser and activates the board tools (board_read, board_update, board_docs, ...). Returns the URL if no browser opens. Safe to call again.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":57},{"name":"board_read","title":"Read board","description":"Read the shared blackboard: revision, chapters, camera, steps, and the layout (id, type, position, size, step) of one chapter. Read before board_update (pass the revision as baseRevision) and to resolve references like \"step 4, eq2\".","inputs":[{"name":"chapter","type":"string","required":false,"description":"Chapter id, 'all' or 'free' (default: camera's)"},{"name":"includeScene","type":"boolean","required":false,"description":"Also return the scene JSON"},{"name":"includeSources","type":"boolean","required":false,"description":"Include artifact sources"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":111},{"name":"board_update","title":"Update board","description":"Draw on the shared blackboard; each call that adds items is one lesson step the learner watches being drawn. Coordinates: the home board and every chapter are 1200x800, origin top-left, y down; items with `chapter` use that chapter's local coordinates. Text y is the baseline; equation, rect, ellipse and artifact x,y is the top-left. `baseRevision` = the revision from your last board_read or board_update (compare-and-swap); on a conflict, board_read again and re-apply your change to the current board, never retry blindly. Invalid input is rejected with the reason and nothing is applied. Each result lists layout warnings (overlaps, items outside their chapter, failed renders): fix them with `items`. Items also take id (short, e.g. \"eq1\"), z, opacity, dash, chapter, step, reveal, duration, order. Formats and examples: board_docs.","inputs":[{"name":"baseRevision","type":"integer","required":true,"description":null},{"name":"camera","type":null,"required":false,"description":"{chapter}, a board rect, or null = home"},{"name":"chapters","type":"array","required":false,"description":null},{"name":"check","type":"boolean","required":false,"description":null},{"name":"clear","type":"array","required":false,"description":null},{"name":"equations","type":"array","required":false,"description":null},{"name":"items","type":"array","required":false,"description":null},{"name":"scene","type":"object","required":false,"description":null},{"name":"title","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":272},{"name":"board_snapshot","title":"Look at board","description":"Render the board in a headless browser and return a PNG as the learner sees it, plus each item's measured box and the layout warnings. Use it after significant changes, then fix problems with board_update.","inputs":[{"name":"chapter","type":"string","required":false,"description":"Chapter to capture"},{"name":"overview","type":"boolean","required":false,"description":"All chapters"},{"name":"region","type":"object","required":false,"description":"Board-space area (default: camera view)"},{"name":"width","type":"number","required":false,"description":"Image px (default 1200, max 2400)"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":102},{"name":"board_library","title":"Search illustrations","description":"Search the offline science illustration library (~2000 Bioicons: anatomy, organs, cells, blood and immunology, microbes, viruses, DNA, plants, animals, lab equipment). Returns icon ids for an artifact {type:'icon', icon:id, x, y, width}. No query lists the categories.","inputs":[{"name":"category","type":"string","required":false,"description":"Category substring"},{"name":"limit","type":"number","required":false,"description":"Default 25"},{"name":"query","type":"string","required":false,"description":"Keywords, e.g. 'heart cross section'"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":105},{"name":"board_save","title":"Save board","description":"Save the board as a named snapshot, list snapshots, or load one (replaces the whole board; needs baseRevision from board_read). Details: board_docs saves.","inputs":[{"name":"action","type":null,"required":true,"description":"load replaces the board"},{"name":"baseRevision","type":"integer","required":false,"description":"Required for load"},{"name":"name","type":"string","required":false,"description":"[A-Za-z0-9._-], default 'default'"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":82},{"name":"board_docs","title":"Board reference","description":"Reference for the blackboard: artifact formats with examples (plot, svg, mermaid, molecule, icon), marks, equations, chapters and camera, animation, layout and style, saves. Call it before using a format for the first time.","inputs":[{"name":"topic","type":"string","required":true,"description":"overview lists what you can draw"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":70}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-06T05:09:58.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"none","label":"No attestation","reason":null,"reasonLabel":null,"discovery":null,"discoveryLabel":null,"sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":5,"partial":false,"deprecated":null,"stale":null,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-28","recent":[{"id":"chg_01a1aa1b-e5ce-7ae2-b171-183c0ea20531","kind":"score.total_changed","summary":"Trust score (71 → 72)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/smdesai27-math-board/pi-math-board#chg-chg_01a1aa1b-e5ce-7ae2-b171-183c0ea20531"},{"id":"chg_01a19aa3-473d-73e0-975f-318dc35d423b","kind":"score.total_changed","summary":"Trust score (70 → 71)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/smdesai27-math-board/pi-math-board#chg-chg_01a19aa3-473d-73e0-975f-318dc35d423b"},{"id":"chg_01a19056-6028-7497-91ca-c03153420031","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/smdesai27-math-board/pi-math-board#chg-chg_01a19056-6028-7497-91ca-c03153420031"},{"id":"chg_01a19056-602a-7c53-82ba-d5187ae58c68","kind":"score.total_changed","summary":"Trust score (54 → 70)","materiality":"functional","direction":"improvement","scoreDelta":16,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/smdesai27-math-board/pi-math-board#chg-chg_01a19056-602a-7c53-82ba-d5187ae58c68"},{"id":"chg_01a18e53-962e-7936-9cb3-2ca77352b97e","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/smdesai27-math-board/pi-math-board#chg-chg_01a18e53-962e-7936-9cb3-2ca77352b97e"},{"id":"chg_01a18e53-963a-72e7-a0ca-268d6b4d8406","kind":"check.reverified","summary":"Stability (unverified → 0.07)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/smdesai27-math-board/pi-math-board#chg-chg_01a18e53-963a-72e7-a0ca-268d6b4d8406"},{"id":"chg_01a18e53-963b-7014-b730-ed8c6fa474e1","kind":"package.version_changed","summary":"Package version (0.3.0 → 0.3.1)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/smdesai27-math-board/pi-math-board#chg-chg_01a18e53-963b-7014-b730-ed8c6fa474e1"},{"id":"chg_01a18e53-963b-78b1-9761-4a2ffbd216c9","kind":"score.total_changed","summary":"Trust score (68 → 54)","materiality":"functional","direction":"regression","scoreDelta":-14,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/smdesai27-math-board/pi-math-board#chg-chg_01a18e53-963b-78b1-9761-4a2ffbd216c9"},{"id":"chg_01a1860a-654e-7cf9-b859-7078750d2059","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/smdesai27-math-board/pi-math-board#chg-chg_01a1860a-654e-7cf9-b859-7078750d2059"},{"id":"chg_01a1860a-6550-723e-93e4-626cf35d733c","kind":"score.total_changed","summary":"Trust score (53 → 68)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/smdesai27-math-board/pi-math-board#chg-chg_01a1860a-6550-723e-93e4-626cf35d733c"},{"id":"chg_01a18061-51e9-7ca7-8439-9fcf3a5a92a5","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/smdesai27-math-board/pi-math-board#chg-chg_01a18061-51e9-7ca7-8439-9fcf3a5a92a5"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/smdesai27-math-board/pi-math-board/changelog.json"},"links":{"html":"https://verifymcp.io/servers/smdesai27-math-board/pi-math-board","markdown":"https://verifymcp.io/servers/smdesai27-math-board/pi-math-board.md","changelogJson":"https://verifymcp.io/servers/smdesai27-math-board/pi-math-board/changelog.json","changelogRss":"https://verifymcp.io/servers/smdesai27-math-board/pi-math-board.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/pi-math-board"},{"label":"Socket report","href":"https://socket.dev/npm/package/pi-math-board"},{"label":"Repository","href":"https://github.com/smdesai27/math-board"}]}}