{"name":"ai.penholder/penholder","namespace":"ai.penholder","leaf":"penholder","title":null,"description":"Preventive human-approval write-gate for AI agents: writes commit only after a human approves.","verdict":"degraded","reasons":["remote_nonconformant"],"checks":[{"name":"registry status","status":"pass","detail":"active"},{"name":"server.json valid","status":"pass","detail":"validates against its declared JSON Schema"},{"name":"repo reachable","status":"skip","detail":"no repository declared"},{"name":"remote reachable","status":"pass","detail":"HTTP 200 via initialize"},{"name":"MCP conformance","status":"fail","detail":"returned HTTP 200 but is not an MCP server"},{"name":"at least one live entrypoint","status":"pass","detail":"1 alive"}],"signals":{"repo":{"kind":"none","status":"none"},"packages":null,"remotes":[{"url":"https://api.penholder.ai/mcp","type":"streamable-http","status":"reachable","httpStatus":200,"conformance":"reachable_nonconformant","probe":"initialize"}],"serverJson":{"status":"valid","schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json"}},"aliveEntrypoints":1,"probedEntrypoints":1,"registryStatus":"active","checkedAt":"2026-09-13","tier":"A","firstSeenCensus":"2026-09-09","url":"https://roninforge.org/data/state-of-mcp/servers/ai.penholder/penholder/","license":"CC-BY-4.0","licenseUrl":"https://creativecommons.org/licenses/by/4.0/","cite":"RoninForge.org, \"State of MCP: a dated census of the official Model Context Protocol registry\", 2026-09-13. CC BY 4.0. https://roninforge.org/data/state-of-mcp/","dataset":"https://roninforge.org/data/state-of-mcp/","methodology":"https://roninforge.org/data/state-of-mcp/methodology/"}
