{"servers":[{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.dev-prathap/attest","description":"Decide by policy, gate behind a human, verify by read-back, record a hash-chained ledger.","title":"Attest","repository":{"url":"https://github.com/dev-prathap/ATTEST","source":"github"},"version":"0.1.0","websiteUrl":"https://dev-prathap.github.io/ATTEST/","packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"attestlayer","version":"0.1.0","runtimeHint":"uvx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Path to a policy YAML (defaults to ./attest.yaml or the built-in default)","format":"filepath","name":"ATTEST_POLICY"},{"description":"Ledger SQLite path (default .attest/ledger.sqlite)","format":"filepath","default":".attest/ledger.sqlite","name":"ATTEST_LEDGER"},{"description":"Set to 1 to approve every confirm request (development only)","format":"boolean","name":"ATTEST_AUTO_APPROVE"},{"description":"Seconds attest_confirm waits for a human (default 900)","format":"number","default":"900","name":"ATTEST_CONFIRM_TIMEOUT"},{"description":"Google OAuth access token with gmail.readonly — enables Gmail read-back","isSecret":true,"name":"GMAIL_TOKEN"},{"description":"Google OAuth access token — enables Calendar / Drive / Docs / Sheets read-back","isSecret":true,"name":"GOOGLE_TOKEN"},{"description":"Slack bot token (xoxb-…) with channels:history, channels:read — enables Slack read-back","isSecret":true,"name":"SLACK_BOT_TOKEN"},{"description":"HubSpot private-app token — enables HubSpot read-back","isSecret":true,"name":"HUBSPOT_TOKEN"},{"description":"Notion integration token — enables Notion read-back","isSecret":true,"name":"NOTION_TOKEN"},{"description":"Linear API key — enables Linear read-back","isSecret":true,"name":"LINEAR_API_KEY"},{"description":"Microsoft Graph token — enables Outlook / Teams read-back","isSecret":true,"name":"GRAPH_TOKEN"}]}],"_meta":{"io.modelcontextprotocol.registry/publisher-provided":{"skill":"https://github.com/dev-prathap/ATTEST/blob/main/skills/verified-actions/SKILL.md","tools":["attest_decide","attest_confirm","attest_confirm_status","attest_record","attest_verify","attest_ledger"]}}},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-19T07:41:45.558681Z","publishedAt":"2026-09-19T07:41:45.558681Z","updatedAt":"2026-09-19T07:41:45.558681Z","isLatest":true}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.dev-prathap/attest-proxy","description":"Zero-code proxy: policy, human gate, read-back and a hash-chained ledger for any MCP server.","title":"Attest proxy","repository":{"url":"https://github.com/dev-prathap/ATTEST","source":"github"},"version":"0.1.0","websiteUrl":"https://dev-prathap.github.io/ATTEST/entry/mcp/","packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"attestlayer","version":"0.1.0","runtimeHint":"uvx","transport":{"type":"stdio"},"packageArguments":[{"description":"Run the MCP proxy","value":"proxy","type":"positional","valueHint":"proxy"},{"description":"Command that starts the real MCP server, e.g. \"npx -y @modelcontextprotocol/server-gmail\"","isRequired":true,"type":"named","name":"--upstream","valueHint":"command"},{"description":"System name for tools without a prefix (gmail, slack, hubspot, …)","type":"named","name":"--server","valueHint":"system"},{"description":"block (wait for the inbox / Slack), pending (return a resume token), auto (dev)","default":"block","choices":["block","pending","auto"],"type":"named","name":"--mode"}],"environmentVariables":[{"description":"Path to a policy YAML","format":"filepath","name":"ATTEST_POLICY"},{"description":"Ledger SQLite path (default .attest/ledger.sqlite)","format":"filepath","name":"ATTEST_LEDGER"},{"description":"URL of the confirm inbox (attest serve) linked from Slack cards","name":"ATTEST_INBOX_URL"},{"description":"Slack bot token for confirm cards","isSecret":true,"name":"SLACK_BOT_TOKEN"},{"description":"Slack channel for confirm cards","name":"ATTEST_SLACK_CHANNEL"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-19T07:41:53.258053Z","publishedAt":"2026-09-19T07:41:53.258053Z","updatedAt":"2026-09-19T07:41:53.258053Z","isLatest":true}}}],"metadata":{"count":2}}
