{"$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-05T16:38:57.396Z","url":"https://verifymcp.io/servers/ajinkya710-markproof/markproof-mcp","markdownUrl":"https://verifymcp.io/servers/ajinkya710-markproof/markproof-mcp.md","server":{"slug":"ajinkya710-markproof","name":"Markproof","registryName":"io.github.Ajinkya710/markproof","description":"Watermark and C2PA-sign AI-generated images and audio for EU AI Act Article 50, and verify files.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"markproof-mcp","type":"npm","identifier":"markproof-mcp","withdrawn":false,"url":"https://verifymcp.io/servers/ajinkya710-markproof/markproof-mcp","version":"0.3.3","transport":"stdio","scoredAt":"2026-11-05T09:35:53.933Z"},"score":{"total":67,"tier":"medium","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":67},{"date":"2026-11-04","total":51},{"date":"2026-11-03","total":66},{"date":"2026-11-02","total":65},{"date":"2026-11-01","total":65}]},"categories":[{"name":"Supply Chain Security","score":98,"verdict":"partial","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.","30 of 92 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.none","args":{}},{"code":"dephealth.assessed","args":{"deps":"92","unhealthy":"30"}}]},{"name":"Provenance & Transparency","score":19,"verdict":"fail","reasons":["Repository check failed: no source repository is declared.","Provenance check failed: no build-provenance attestation is published.","Clear OSI-approved license (MIT).","Actively maintained (last published 1 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_none","args":{}},{"code":"provenance.none","args":{}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"1"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":77,"verdict":"fail","reasons":["AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 474 tokens (~158/item across 3 items; 3 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":"excellent"}},{"code":"schema.footprint_heavy","args":{"avg":"158","items":"3","tools":"3","tokens":"474","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":13,"verdict":"partial","reasons":["Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"4"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}}]},{"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 3 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 3 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":"3"}},{"code":"toolsafety.manipulation_clean","args":{"units":"3","judged":"3"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"markproof-mcp","type":"npm","identifier":"markproof-mcp","withdrawn":false,"score":67,"current":true,"url":"https://verifymcp.io/servers/ajinkya710-markproof/markproof-mcp","markdownUrl":"https://verifymcp.io/servers/ajinkya710-markproof/markproof-mcp.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"markproof-mcp"},{"label":"Version","value":"0.3.3"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"mark_file","title":"Mark an AI-generated file","description":"Adds an invisible watermark and a signed C2PA manifest (Content Credentials) to an AI-generated image (PNG, JPEG, WebP) or audio file (WAV, MP3), marking it as AI-generated for EU AI Act Article 50. Writes the marked copy next to the original (images as PNG, audio as WAV) and returns its watermark code and public verification URL. Use this on every image or audio file you generate before handing it to a user. Counts as one API call.","inputs":[{"name":"generator_name","type":"string","required":false,"description":"Name of the app or system that generated the file; recorded in the C2PA manifest."},{"name":"label_position","type":"string","required":false,"description":"Corner for visible_label. Defaults to bottom-right."},{"name":"model_name","type":"string","required":false,"description":"Name of the model that generated the file."},{"name":"output_path","type":"string","required":false,"description":"Where to write the marked copy. Defaults to <name>.marked.<ext> beside the original."},{"name":"overwrite","type":"boolean","required":false,"description":"Allow replacing an existing file at output_path. Defaults to false."},{"name":"path","type":"string","required":true,"description":"Path to the local image or audio file to mark."},{"name":"visible_label","type":null,"required":false,"description":"Images only. Also draw a visible label on the image (EU AI Act Art. 50(4), e.g. for deepfakes): true for \"AI-generated\", or custom text up to 40 characters."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":281},{"name":"verify_file","title":"Check a file for AI marking","description":"Checks an image or audio file for a Markproof watermark and a C2PA manifest, and reports whether its signature is valid and whether it matches a record in this Markproof account. Use it to confirm a file is marked before publishing, or to inspect a file of unknown origin. Counts as one API call.","inputs":[{"name":"path","type":"string","required":false,"description":"Path to the local image or audio file to check. Uploads are limited to about 4.5 MB."},{"name":"url","type":"string","required":false,"description":"Public https URL of the file, instead of path. Use it for files over 4.5 MB (up to 25 MB), e.g. marked audio, which is WAV."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":144},{"name":"get_asset","title":"Look up a marked file","description":"Fetches the record for a file this account marked, by the asset_id that mark_file returned. Doesn't count toward the quota.","inputs":[{"name":"asset_id","type":"string","required":true,"description":"The asset_id returned by mark_file."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":49}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T09:35:53.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":92,"partial":false,"deprecated":null,"stale":30,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-11-01","recent":[{"id":"chg_01a1ab10-9866-787c-a450-84ebc2afb961","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/ajinkya710-markproof/markproof-mcp#chg-chg_01a1ab10-9866-787c-a450-84ebc2afb961"},{"id":"chg_01a1ab10-9867-7584-b384-8790704ea665","kind":"score.total_changed","summary":"Trust score (51 → 67)","materiality":"functional","direction":"improvement","scoreDelta":16,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/ajinkya710-markproof/markproof-mcp#chg-chg_01a1ab10-9867-7584-b384-8790704ea665"},{"id":"chg_01a1a406-db9f-7100-a490-571c9b43dd63","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/ajinkya710-markproof/markproof-mcp#chg-chg_01a1a406-db9f-7100-a490-571c9b43dd63"},{"id":"chg_01a1a406-dba0-7d1d-af49-a7194b503fa0","kind":"check.reverified","summary":"Security disclosure (unverified → fail)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/ajinkya710-markproof/markproof-mcp#chg-chg_01a1a406-dba0-7d1d-af49-a7194b503fa0"},{"id":"chg_01a1a406-dba1-752b-841f-18007d1b7180","kind":"package.version_changed","summary":"Package version (0.3.2 → 0.3.3)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/ajinkya710-markproof/markproof-mcp#chg-chg_01a1a406-dba1-752b-841f-18007d1b7180"},{"id":"chg_01a1a406-dba2-72d0-9465-b57c9243b5cd","kind":"score.total_changed","summary":"Trust score (66 → 51)","materiality":"functional","direction":"regression","scoreDelta":-15,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/ajinkya710-markproof/markproof-mcp#chg-chg_01a1a406-dba2-72d0-9465-b57c9243b5cd"},{"id":"chg_01a1a0bb-4537-7c35-b57b-4b1d87172ae4","kind":"score.total_changed","summary":"Trust score (65 → 66)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/ajinkya710-markproof/markproof-mcp#chg-chg_01a1a0bb-4537-7c35-b57b-4b1d87172ae4"},{"id":"chg_01a196de-f929-72b1-83d1-6d8ab5fde4a2","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/ajinkya710-markproof/markproof-mcp#chg-chg_01a196de-f929-72b1-83d1-6d8ab5fde4a2"},{"id":"chg_01a196d0-4845-786d-b757-206be05b2e9c","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/ajinkya710-markproof/markproof-mcp#chg-chg_01a196d0-4845-786d-b757-206be05b2e9c"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/ajinkya710-markproof/markproof-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/ajinkya710-markproof/markproof-mcp","markdown":"https://verifymcp.io/servers/ajinkya710-markproof/markproof-mcp.md","changelogJson":"https://verifymcp.io/servers/ajinkya710-markproof/markproof-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/ajinkya710-markproof/markproof-mcp.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/markproof-mcp"},{"label":"Socket report","href":"https://socket.dev/npm/package/markproof-mcp"},{"label":"Website","href":"https://markproof.co/docs"}]}}