Skip to content
VS Code

Attest for VS Code

io.github.dev-prathap/attest

Decide by policy, gate behind a human, verify by read-back, record a hash-chained ledger.

client:VS Code transport:stdio runtime:pypi

Install Attest in VS Code

.vscode/mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "attest-policy",
      "description": "ATTEST_POLICY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "attest-ledger",
      "description": "ATTEST_LEDGER",
      "password": true
    },
    {
      "type": "promptString",
      "id": "attest-auto-approve",
      "description": "ATTEST_AUTO_APPROVE",
      "password": true
    },
    {
      "type": "promptString",
      "id": "attest-confirm-timeout",
      "description": "ATTEST_CONFIRM_TIMEOUT",
      "password": true
    },
    {
      "type": "promptString",
      "id": "gmail-token",
      "description": "GMAIL_TOKEN",
      "password": true
    },
    {
      "type": "promptString",
      "id": "google-token",
      "description": "GOOGLE_TOKEN",
      "password": true
    },
    {
      "type": "promptString",
      "id": "slack-bot-token",
      "description": "SLACK_BOT_TOKEN",
      "password": true
    },
    {
      "type": "promptString",
      "id": "hubspot-token",
      "description": "HUBSPOT_TOKEN",
      "password": true
    },
    {
      "type": "promptString",
      "id": "notion-token",
      "description": "NOTION_TOKEN",
      "password": true
    },
    {
      "type": "promptString",
      "id": "linear-api-key",
      "description": "LINEAR_API_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "graph-token",
      "description": "GRAPH_TOKEN",
      "password": true
    }
  ],
  "servers": {
    "attest": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "attestlayer"
      ],
      "env": {
        "ATTEST_POLICY": "${input:attest-policy}",
        "ATTEST_LEDGER": "${input:attest-ledger}",
        "ATTEST_AUTO_APPROVE": "${input:attest-auto-approve}",
        "ATTEST_CONFIRM_TIMEOUT": "${input:attest-confirm-timeout}",
        "GMAIL_TOKEN": "${input:gmail-token}",
        "GOOGLE_TOKEN": "${input:google-token}",
        "SLACK_BOT_TOKEN": "${input:slack-bot-token}",
        "HUBSPOT_TOKEN": "${input:hubspot-token}",
        "NOTION_TOKEN": "${input:notion-token}",
        "LINEAR_API_KEY": "${input:linear-api-key}",
        "GRAPH_TOKEN": "${input:graph-token}"
      }
    }
  }
}

VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs

Attest in other clients