Skip to content
VS Code

postals mcp for VS Code

io.github.coopergwrenn/postals-mcp

Send physical handwritten postcards from any AI agent. Real pen & ink, USPS, $4.99/card.

client:VS Code transport:stdio runtime:npm

Install postals mcp in VS Code

.vscode/mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "postals-api-key",
      "description": "POSTALS_API_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "postals-sender-name",
      "description": "POSTALS_SENDER_NAME",
      "password": true
    },
    {
      "type": "promptString",
      "id": "postals-sender-address",
      "description": "POSTALS_SENDER_ADDRESS",
      "password": true
    },
    {
      "type": "promptString",
      "id": "postals-sender-city",
      "description": "POSTALS_SENDER_CITY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "postals-sender-state",
      "description": "POSTALS_SENDER_STATE",
      "password": true
    },
    {
      "type": "promptString",
      "id": "postals-sender-zip",
      "description": "POSTALS_SENDER_ZIP",
      "password": true
    },
    {
      "type": "promptString",
      "id": "postals-default-card-image",
      "description": "POSTALS_DEFAULT_CARD_IMAGE",
      "password": true
    },
    {
      "type": "promptString",
      "id": "postals-handwriting-style",
      "description": "POSTALS_HANDWRITING_STYLE",
      "password": true
    },
    {
      "type": "promptString",
      "id": "postals-daily-limit",
      "description": "POSTALS_DAILY_LIMIT",
      "password": true
    },
    {
      "type": "promptString",
      "id": "postals-test-mode",
      "description": "POSTALS_TEST_MODE",
      "password": true
    },
    {
      "type": "promptString",
      "id": "cloudflare-account-id",
      "description": "CLOUDFLARE_ACCOUNT_ID",
      "password": true
    },
    {
      "type": "promptString",
      "id": "cloudflare-api-token",
      "description": "CLOUDFLARE_API_TOKEN",
      "password": true
    }
  ],
  "servers": {
    "postals-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "postals-mcp"
      ],
      "env": {
        "POSTALS_API_KEY": "${input:postals-api-key}",
        "POSTALS_SENDER_NAME": "${input:postals-sender-name}",
        "POSTALS_SENDER_ADDRESS": "${input:postals-sender-address}",
        "POSTALS_SENDER_CITY": "${input:postals-sender-city}",
        "POSTALS_SENDER_STATE": "${input:postals-sender-state}",
        "POSTALS_SENDER_ZIP": "${input:postals-sender-zip}",
        "POSTALS_DEFAULT_CARD_IMAGE": "${input:postals-default-card-image}",
        "POSTALS_HANDWRITING_STYLE": "${input:postals-handwriting-style}",
        "POSTALS_DAILY_LIMIT": "${input:postals-daily-limit}",
        "POSTALS_TEST_MODE": "${input:postals-test-mode}",
        "CLOUDFLARE_ACCOUNT_ID": "${input:cloudflare-account-id}",
        "CLOUDFLARE_API_TOKEN": "${input:cloudflare-api-token}"
      }
    }
  }
}

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

postals mcp in other clients