Skip to content

feat(observatory): MCP trust grade badge endpoint [RUN-035]#30

Draft
vdineshk wants to merge 2 commits into
mainfrom
claude/youthful-goodall-54M12
Draft

feat(observatory): MCP trust grade badge endpoint [RUN-035]#30
vdineshk wants to merge 2 commits into
mainfrom
claude/youthful-goodall-54M12

Conversation

@vdineshk
Copy link
Copy Markdown
Owner

@vdineshk vdineshk commented May 9, 2026

Summary

  • Add /api/trust-badge/{server_id} — shields.io-style SVG badge returning MCP trust grade (A/B/C/D/F) + score. Viral callability surface: any MCP server operator embeds ![MCP trust](https://dominion-observatory.sgdata.workers.dev/api/trust-badge/their-server-slug) in their README and every render creates an Observatory HTTP call.
  • Sync Observatory source from deployed branch (youthful-goodall-fxkOg) to prevent cross-channel deploy drift. Includes all routes from RUN-033 (cursorrules, SKILL.md, agent-card, ctef-conformance) and RUN-034 (ctef/attest).
  • Update llms.txt to document /api/trust-badge/{server_id}
  • Update /.well-known/mcp-observatory discovery metadata to include trust_badge endpoint
  • Update post-deploy-health.json with trust badge verification entry

What /api/trust-badge does

GET /api/trust-badge/sg-cpf-calculator-mcp
→ SVG: "MCP trust | A · 92.5" (green)

GET /api/trust-badge/untrusted-server  
→ SVG: "MCP trust | D · 38.0" (red)

GET /api/trust-badge/unknown-server
→ SVG: "MCP trust | unrated" (gray)

Embed in README:

![MCP trust](https://dominion-observatory.sgdata.workers.dev/api/trust-badge/your-server-slug)

Color scheme: Green (A/B, ≥75), Orange (C, ≥60), Red (D/F, <60), Gray (unrated).
Supports .svg extension for explicit content negotiation.

Novelty claim (C4 prior art check)

Searched: shields.io (generic, no MCP-specific), existing Observatory /badge?url= (query param only, no grade), CTEF badge standard (none defined), PulseMCP/mcp.so/smithery (no badge endpoints), /api/badge route in Observatory (query param ?url=, shows only numeric score).

New: path parameter badge URL (/{server_id}) + trust grade (A-F) + score in single visual = no prior art in MCP ecosystem.

Deploy

  • Version: 4ff74c78-6e60-41dc-af03-e425c194e594
  • POST_DEPLOY_VERIFY_HEALTH: 15/15 PASS
  • wrangler dry-run: PASS

Test plan

  • curl https://dominion-observatory.sgdata.workers.dev/api/trust-badge/sg-cpf-calculator-mcp → SVG image/svg+xml, aria-label="MCP trust: A · 92.5"
  • .svg extension: curl .../api/trust-badge/sg-cpf-calculator-mcp.svg → 200
  • Missing param: curl .../api/trust-badge/ → 400 JSON
  • All 6 spec-cited endpoints healthy post-deploy (EBTO 402, AGT 402, benchmark 200, behavioral-evidence 200, sla-tier 200, trust-delta 200)
  • All RUN-033/034 routes healthy (.cursorrules, SKILL.md, agent-card, ctef-conformance, ctef/validate, ctef/attest, llms.txt)
  • Version 4ff74c78 confirmed current via wrangler deployments list

Generated by Claude Code

claude added 2 commits May 9, 2026 01:19
…rce [RUN-035]

- Add /api/trust-badge/{server_id} — shields.io-style SVG badge returning
  trust grade (A/B/C/D/F) + score for embedding in MCP server READMEs.
  Viral propagation: each README render creates an Observatory HTTP call.
  Supports .svg extension and clean path parameter URL pattern.
- Sync Observatory source from deployed branch (youthful-goodall-fxkOg)
  to prevent cross-channel deploy drift. Includes all routes from RUN-033
  (cursorrules, SKILL.md, agent-card, ctef-conformance) and RUN-034
  (ctef/attest conformance document generator).
- Update llms.txt to document /api/trust-badge/{server_id}
- Update /.well-known/mcp-observatory to include trust_badge endpoint
- Update post-deploy-health.json with trust badge verification config
- Deploy: version 4ff74c78 | POST_DEPLOY_VERIFY_HEALTH 15/15 PASS
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants