{
  "slug": "io-github-chrischall-zola-mcp",
  "name": "io.github.chrischall/zola-mcp",
  "title": "zola-mcp",
  "description": "Zola wedding planning for Claude — vendors, budget, guests, seating, registry, and RSVPs",
  "version": "2.1.11",
  "publishedAt": "2026-10-16T10:13:57.979525Z",
  "updatedAt": "2026-10-16T10:13:57.979525Z",
  "repoUrl": "https://github.com/chrischall/zola-mcp",
  "websiteUrl": null,
  "namespace": {
    "type": "github",
    "owner": "chrischall"
  },
  "kind": "local",
  "packages": [
    {
      "registryType": "npm",
      "identifier": "zola-mcp",
      "version": "2.1.11",
      "transport": "stdio",
      "runtimeHint": null
    }
  ],
  "remotes": [],
  "envVars": [
    {
      "name": "ZOLA_REFRESH_TOKEN",
      "isSecret": true,
      "isRequired": false,
      "description": "Zola refresh token JWT (~1 year lifetime). Optional — when unset, the MCP falls back to the ContextMint Bridge browser extension to read the `usr` cookie from your signed-in zola.com tab, and caches it so later starts need no browser."
    },
    {
      "name": "ZOLA_DISABLE_FETCHPROXY",
      "isSecret": false,
      "isRequired": false,
      "description": "Set to '1' to opt out of the fetchproxy browser fallback (headless / CI). With it set and no ZOLA_REFRESH_TOKEN, auth is a hard error unless a previous bootstrap already cached a token — reading that file is not opening a browser, so the cache stays readable."
    },
    {
      "name": "ZOLA_TOKEN_CACHE",
      "isSecret": false,
      "isRequired": false,
      "description": "Set to 'false' to disable the on-disk refresh-token cache and ask the browser on every start. Defaults to enabled. Inert when ZOLA_REFRESH_TOKEN is set — there is no bootstrap to skip."
    },
    {
      "name": "ZOLA_TOKEN_FILE",
      "isSecret": false,
      "isRequired": false,
      "description": "Absolute path for the refresh-token cache file. Defaults to $MCP_DATA_DIR/.zola-mcp/refresh-token.json, else the same path under $HOME."
    },
    {
      "name": "ZOLA_ACCOUNT_ID",
      "isSecret": false,
      "isRequired": false,
      "description": "Overrides the account id normally read from GET /v3/users/me/context. Set it only to pin a specific account."
    },
    {
      "name": "ZOLA_REGISTRY_ID",
      "isSecret": false,
      "isRequired": false,
      "description": "Overrides the registry id normally read from the same context call."
    },
    {
      "name": "ZOLA_WEDDING_ID",
      "isSecret": false,
      "isRequired": false,
      "description": "Overrides the wedding id normally read from the same context call."
    },
    {
      "name": "ZOLA_SESSION_TOKEN",
      "isSecret": true,
      "isRequired": false,
      "description": "A seed session token (JWT). The client refreshes it about five minutes before its exp, so this is a starting point rather than a long-lived credential."
    },
    {
      "name": "FETCHPROXY_WS_PORT",
      "isSecret": false,
      "isRequired": false,
      "description": "Localhost port of the fetchproxy concentrator the ContextMint Bridge extension connects to (default 37149). Every MCP on one machine shares it, so move it for all of them or not at all."
    },
    {
      "name": "FETCHPROXY_WS_HOST",
      "isSecret": false,
      "isRequired": false,
      "description": "Bind interface for the fetchproxy concentrator, a literal IP only (default 127.0.0.1). Keep on loopback; it exists for hosted deployments that run each MCP in its own network namespace."
    },
    {
      "name": "FETCHPROXY_IDENTITY_DIR",
      "isSecret": false,
      "isRequired": false,
      "description": "Absolute path where the fetchproxy long-term identity keypair is stored (default ~/.fetchproxy/identity/)."
    }
  ],
  "category": "business",
  "subcategory": "prices",
  "company": "",
  "categoryAuto": true,
  "checks": [
    {
      "id": "source-linked",
      "label": "Source repository linked",
      "result": "pass",
      "detail": "https://github.com/chrischall/zola-mcp"
    },
    {
      "id": "version-pinned",
      "label": "Version pinned",
      "result": "pass",
      "detail": "Every package has an explicit version"
    },
    {
      "id": "secrets-requested",
      "label": "Secrets requested",
      "result": "info",
      "detail": "Asks for 2 secrets: ZOLA_REFRESH_TOKEN, ZOLA_SESSION_TOKEN"
    },
    {
      "id": "known-registry",
      "label": "Known package registry",
      "result": "pass",
      "detail": "All packages come from npm, PyPI, OCI, NuGet or MCPB"
    },
    {
      "id": "namespace",
      "label": "Namespace ownership",
      "result": "info",
      "detail": "Name verified via GitHub account chrischall"
    },
    {
      "id": "meta-text",
      "label": "Registry text aimed at the AI",
      "result": "pass",
      "detail": "Description and settings contain no hidden characters or instructions to the AI"
    },
    {
      "id": "install-scripts",
      "label": "Install scripts",
      "result": "pass",
      "detail": "zola-mcp@2.1.11 runs nothing at install"
    },
    {
      "id": "code-flags",
      "label": "Code red flags",
      "result": "pass",
      "detail": "Read 36 files in zola-mcp@2.1.11: no obfuscation, encoded execution, credential reads or data-collection endpoints found"
    },
    {
      "id": "ai-text",
      "label": "Text aimed at the AI",
      "result": "pass",
      "detail": "No hidden characters or instructions to the AI in 36 files, including comments and the README"
    }
  ],
  "scannedAt": "2026-10-29",
  "level": "Scanned",
  "install": [
    {
      "label": "Claude Desktop (npm)",
      "kind": "claude_desktop_json",
      "text": "{\n  \"mcpServers\": {\n    \"zola-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"zola-mcp@2.1.11\"\n      ]\n    }\n  }\n}"
    }
  ],
  "curated": true,
  "stars": 3,
  "archived": false,
  "pushedAt": "2026-10-25T21:04:45Z",
  "health": {
    "score": 63,
    "parts": {
      "popularity": 0.3136404043205314,
      "activity": 0.6,
      "issues": 1,
      "security": 1
    },
    "fail": 0,
    "warn": 0,
    "raw": {
      "stars": 3,
      "forks": 2,
      "downloads": 382,
      "hn": null,
      "issuesOpen": 0,
      "issuesClosed": 23,
      "prsMerged": 266,
      "commits90": 0,
      "release": "2026-10-16T10:11:42Z",
      "pushed": "2026-10-25T21:04:45Z",
      "growth": null,
      "growthDays": null,
      "archived": false
    },
    "at": "2026-10-31T07:35:52.424Z"
  }
}
