{"$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-05T22:42:08.311Z","url":"https://verifymcp.io/servers/bgaut007-billboardbug/billboardbug","markdownUrl":"https://verifymcp.io/servers/bgaut007-billboardbug/billboardbug.md","server":{"slug":"bgaut007-billboardbug","name":"BillboardBug","registryName":"io.github.bgaut007/billboardbug","description":"BillboardBug MCP: create and verify GPS-anchored AR billboards and deals for real businesses.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"billboardbug","type":"mcpb","identifier":"https://github.com/bgaut007/billboardbug-mcp/releases/download/v1.0.1/billboardbug.mcpb","withdrawn":false,"url":"https://verifymcp.io/servers/bgaut007-billboardbug/billboardbug","version":"1.0.1","transport":"stdio","scoredAt":"2026-11-05T10:20:54.408Z"},"score":{"total":52,"tier":"low","status":"scored","weekDelta":3,"history":[{"date":"2026-11-05","total":52},{"date":"2026-11-04","total":51},{"date":"2026-11-03","total":51},{"date":"2026-11-02","total":50},{"date":"2026-11-01","total":50},{"date":"2026-10-31","total":50},{"date":"2026-10-30","total":49},{"date":"2026-10-29","total":49},{"date":"2026-10-28","total":43},{"date":"2026-10-27","total":43},{"date":"2026-10-26","total":43},{"date":"2026-10-25","total":43},{"date":"2026-10-24","total":43},{"date":"2026-10-23","total":43},{"date":"2026-10-22","total":43},{"date":"2026-10-21","total":43},{"date":"2026-10-20","total":43},{"date":"2026-10-19","total":43},{"date":"2026-10-18","total":43},{"date":"2026-10-17","total":43}]},"categories":[{"name":"Supply Chain Security","score":23,"verdict":"partial","reasons":["No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.","Known CVEs were checked across the 92 of 92 dependencies we could resolve, so this covers what we could see, not the whole tree.","No install/post-install scripts declared.","30 of 92 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_inconclusive","args":{"reason":"ecosystem_unsupported"}},{"code":"cve.tree_partial","args":{"seen":"92","resolved":"92"}},{"code":"installscript.none","args":{}},{"code":"dephealth.assessed","args":{"deps":"92","unhealthy":"30"}}]},{"name":"Provenance & Transparency","score":45,"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 19 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.none","args":{}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"19"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":58,"verdict":"fail","reasons":["AI-judged instruction clarity (fair).","Context-footprint check failed: tool/resource definitions use about 1308 tokens (~118/item across 11 items; 11 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":"fair"}},{"code":"schema.footprint_heavy","args":{"avg":"118","items":"11","tools":"11","tokens":"1308","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":63,"verdict":"partial","reasons":["Stability observed for 19 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"19"}}]},{"name":"Tool Coverage","score":84,"verdict":"partial","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","53% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"53"}}]},{"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 11 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 12 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":"11"}},{"code":"toolsafety.manipulation_clean","args":{"units":"12","judged":"12"}}]},{"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":["No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package."],"malware":[],"components":[{"slug":"billboardbug","type":"mcpb","identifier":"https://github.com/bgaut007/billboardbug-mcp/releases/download/v1.0.1/billboardbug.mcpb","withdrawn":false,"score":52,"current":true,"url":"https://verifymcp.io/servers/bgaut007-billboardbug/billboardbug","markdownUrl":"https://verifymcp.io/servers/bgaut007-billboardbug/billboardbug.md"}],"facts":[{"label":"Registry","value":"mcpb"},{"label":"Package","value":"https://github.com/bgaut007/billboardbug-mcp/releases/download/v1.0.1/billboardbug.mcpb"},{"label":"Version","value":"1.0.1"},{"label":"Transport","value":"stdio"},{"label":"SHA-256","value":"983959451d426c6ded8871d07951fe64057231ea974772360792ea8d051fa42a"}],"install":{"available":true,"bundleSha256":"983959451d426c6ded8871d07951fe64057231ea974772360792ea8d051fa42a"},"tools":[{"name":"create_deal","title":"Create billboard deal","description":"Create a live billboard deal at a real location. Requires an uploaded image or video. Returns storefrontId and billboardId. Never sets featured (paid) placement.","inputs":[{"name":"address","type":"string","required":true,"description":"Street address shown as locationDescription"},{"name":"altitudeMeters","type":"number","required":false,"description":null},{"name":"businessName","type":"string","required":true,"description":"Exact business name (confirm with your human)"},{"name":"categoryId","type":"string","required":false,"description":"Storefront category UUID from list_categories; default ce8f8f8f-8f8f-8f8f-8f8f-8f8f8f8f8f8f (Miscellaneous)"},{"name":"description","type":"string","required":true,"description":"Use only claims, prices, and hours the business provided"},{"name":"hours","type":null,"required":true,"description":"\"24/7\" or per-day: {monday: \"closed\" | \"24h\" | {open:\"09:00\",close:\"17:00\"}, ...}"},{"name":"imageId","type":"string","required":false,"description":"Blob id from upload_media (category billboard-image). The live API requires imageId or videoId."},{"name":"isEnabled","type":"boolean","required":false,"description":null},{"name":"lat","type":"number","required":true,"description":"Latitude of the business"},{"name":"lng","type":"number","required":true,"description":"Longitude of the business"},{"name":"title","type":"string","required":true,"description":"Deal title, max 18 characters"},{"name":"videoId","type":"string","required":false,"description":"Blob id from upload_media (category billboard-video)"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":280},{"name":"update_deal","title":"Update billboard deal","description":"Replace an existing deal (same fields as create_deal). Use isEnabled:false to take a deal down when the promotion ends.","inputs":[{"name":"address","type":"string","required":true,"description":"Street address shown as locationDescription"},{"name":"altitudeMeters","type":"number","required":false,"description":null},{"name":"billboardId","type":"string","required":true,"description":null},{"name":"businessName","type":"string","required":true,"description":"Exact business name (confirm with your human)"},{"name":"categoryId","type":"string","required":false,"description":"Storefront category UUID from list_categories; default ce8f8f8f-8f8f-8f8f-8f8f-8f8f8f8f8f8f (Miscellaneous)"},{"name":"description","type":"string","required":true,"description":"Use only claims, prices, and hours the business provided"},{"name":"hours","type":null,"required":true,"description":"\"24/7\" or per-day: {monday: \"closed\" | \"24h\" | {open:\"09:00\",close:\"17:00\"}, ...}"},{"name":"imageId","type":"string","required":false,"description":"Blob id from upload_media (category billboard-image). The live API requires imageId or videoId."},{"name":"isEnabled","type":"boolean","required":false,"description":null},{"name":"lat","type":"number","required":true,"description":"Latitude of the business"},{"name":"lng","type":"number","required":true,"description":"Longitude of the business"},{"name":"storefrontId","type":"string","required":true,"description":null},{"name":"title","type":"string","required":true,"description":"Deal title, max 18 characters"},{"name":"videoId","type":"string","required":false,"description":"Blob id from upload_media (category billboard-video)"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":290},{"name":"get_deal","title":"Get deal (read-back)","description":"Read a deal back by storefrontId and billboardId to verify it is live. Works without an API key.","inputs":[{"name":"billboardId","type":"string","required":true,"description":null},{"name":"storefrontId","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":47},{"name":"list_my_deals","title":"List my deals","description":"List deals owned by the API key's account.","inputs":[{"name":"limit","type":"integer","required":false,"description":null},{"name":"offset","type":"integer","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":34},{"name":"list_categories","title":"List storefront categories","description":"List storefront categories for categoryId (about 7,000). Pass nameContains to filter. Requires an API key. Default used by create_deal is Miscellaneous.","inputs":[{"name":"max","type":"integer","required":false,"description":null},{"name":"nameContains","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":57},{"name":"search_deals","title":"Search deals","description":"Search BillboardBug deals by text (min 3 characters). Requires an API key.","inputs":[{"name":"limit","type":"integer","required":false,"description":null},{"name":"offset","type":"integer","required":false,"description":null},{"name":"search","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":47},{"name":"upload_media","title":"Upload image or video","description":"Upload a local image/video file (or base64 data) to BillboardBug. Use billboard-image/billboard-video for deals, post-image/post-video for chirps. Returns the blob id.","inputs":[{"name":"base64Data","type":"string","required":false,"description":"Base64 or data: URI content (alternative to filePath)"},{"name":"category","type":"string","required":true,"description":null},{"name":"fileName","type":"string","required":false,"description":"File name to use with base64Data, e.g. billboard.jpg"},{"name":"filePath","type":"string","required":false,"description":"Absolute path to a local file"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":111},{"name":"generate_image","title":"Generate AI image","description":"Generate billboard artwork from a prompt (recommended 640x373). Returns base64 data URIs you can pass to upload_media. Prefer realistic photos.","inputs":[{"name":"aiProvider","type":"integer","required":false,"description":"Provider type from GET /global-config/all: 5 = Grok (default, recommended), 1 = OpenAI"},{"name":"height","type":"integer","required":false,"description":null},{"name":"prompt","type":"string","required":true,"description":null},{"name":"width","type":"integer","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":91},{"name":"create_chirp","title":"Create chirp","description":"Post a chirp (social post) on BillboardBug, e.g. announcing a new billboard. Returns the chirp id.","inputs":[{"name":"imageId","type":"string","required":false,"description":"Blob id from upload_media (post-image)"},{"name":"isActive","type":"boolean","required":false,"description":null},{"name":"isMature","type":"boolean","required":false,"description":null},{"name":"parentPostId","type":"string","required":false,"description":"Set to comment on an existing chirp"},{"name":"text","type":"string","required":false,"description":null},{"name":"videoId","type":"string","required":false,"description":"Blob id from upload_media (post-video)"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":108},{"name":"update_chirp","title":"Update chirp","description":"Edit an existing chirp you own.","inputs":[{"name":"id","type":"string","required":true,"description":null},{"name":"imageId","type":"string","required":false,"description":"Blob id from upload_media (post-image)"},{"name":"isActive","type":"boolean","required":false,"description":null},{"name":"isMature","type":"boolean","required":false,"description":null},{"name":"parentPostId","type":"string","required":false,"description":"Set to comment on an existing chirp"},{"name":"text","type":"string","required":false,"description":null},{"name":"videoId","type":"string","required":false,"description":"Blob id from upload_media (post-video)"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":97},{"name":"get_chirp","title":"Get chirp (read-back)","description":"Read a chirp back by id to verify it posted.","inputs":[{"name":"id","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":28}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T10:20:54.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":"no_attestation","reasonLabel":"No attestation published","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-10-17","recent":[{"id":"chg_01a1ab39-cd1d-7611-8992-a46a18a5288e","kind":"score.total_changed","summary":"Trust score (51 → 52)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/bgaut007-billboardbug/billboardbug#chg-chg_01a1ab39-cd1d-7611-8992-a46a18a5288e"},{"id":"chg_01a1a0db-728a-7548-a5ff-426a78aa2eb5","kind":"score.total_changed","summary":"Trust score (50 → 51)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/bgaut007-billboardbug/billboardbug#chg-chg_01a1a0db-728a-7548-a5ff-426a78aa2eb5"},{"id":"chg_01a19168-f6bf-73c3-ae12-aa83b8ffb034","kind":"score.total_changed","summary":"Trust score (49 → 50)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/bgaut007-billboardbug/billboardbug#chg-chg_01a19168-f6bf-73c3-ae12-aa83b8ffb034"},{"id":"chg_01a1871b-e4e6-73e3-bbe8-3a41c08ca365","kind":"check.reverified","summary":"Stability (unverified → 0.40)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/bgaut007-billboardbug/billboardbug#chg-chg_01a1871b-e4e6-73e3-bbe8-3a41c08ca365"},{"id":"chg_01a1871b-e4e6-7cec-811f-ae6a3a51f421","kind":"score.total_changed","summary":"Trust score (43 → 49)","materiality":"functional","direction":"improvement","scoreDelta":6,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/bgaut007-billboardbug/billboardbug#chg-chg_01a1871b-e4e6-7cec-811f-ae6a3a51f421"},{"id":"chg_01a1486a-e292-7c8d-b92b-ccd75f748f73","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-17","url":"https://verifymcp.io/servers/bgaut007-billboardbug/billboardbug#chg-chg_01a1486a-e292-7c8d-b92b-ccd75f748f73"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/bgaut007-billboardbug/billboardbug/changelog.json"},"links":{"html":"https://verifymcp.io/servers/bgaut007-billboardbug/billboardbug","markdown":"https://verifymcp.io/servers/bgaut007-billboardbug/billboardbug.md","changelogJson":"https://verifymcp.io/servers/bgaut007-billboardbug/billboardbug/changelog.json","changelogRss":"https://verifymcp.io/servers/bgaut007-billboardbug/billboardbug.xml","external":[{"label":"Repository","href":"https://github.com/bgaut007/billboardbug-mcp"},{"label":"Website","href":"https://billboardbug.com/"}]}}