{
  "markdown": "# fizzy-mcp\n\nMCP server for [Fizzy](https://fizzy.do) task management. Exposes 7 tools for managing boards, cards, comments, and checklists.\n\n## Prerequisites\n\nGet your Fizzy access token:\n\n1. Log in to [Fizzy](https://app.fizzy.do)\n2. Go to Settings > API Access\n3. Generate a new token\n\n## How to Install\n\n<details>\n<summary><b>Claude Desktop</b></summary>\n\nAdd to your config file:\n\n- **macOS:** `~/Library/Application\\ Support/Claude/claude_desktop_config.json`\n- **Windows:** `%APPDATA%\\Claude\\claude_desktop_config.json`\n- **Linux:** `~/.config/Claude/claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"Fizzy\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@silky/fizzy-mcp\"],\n      \"env\": {\n        \"FIZZY_TOKEN\": \"your-token-here\"\n      }\n    }\n  }\n}\n```\n\n**Windows only:** Add `\"APPDATA\": \"C:\\\\Users\\\\YourUsername\\\\AppData\\\\Roaming\"` to the `env` block.\n\nRestart Claude Desktop completely, then verify: \"List my Fizzy boards.\"\n\n</details>\n\n<details>\n<summary><b>Claude Code</b></summary>\n\nUse the CLI:\n\n```bash\nclaude mcp add --transport stdio Fizzy --env FIZZY_TOKEN=your-token-here -- npx -y @silky/fizzy-mcp\n```\n\nOr add to `~/.claude.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"Fizzy\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@silky/fizzy-mcp\"],\n      \"env\": {\n        \"FIZZY_TOKEN\": \"your-token-here\"\n      }\n    }\n  }\n}\n```\n\nRestart Claude Code, then verify: \"List my Fizzy boards.\"\n\n</details>\n\n<details>\n<summary><b>Cursor</b></summary>\n\nAdd to `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` (project):\n\n```json\n{\n  \"mcpServers\": {\n    \"Fizzy\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@silky/fizzy-mcp\"],\n      \"env\": {\n        \"FIZZY_TOKEN\": \"your-token-here\"\n      }\n    }\n  }\n}\n```\n\nRestart Cursor completely, then verify in Agent mode (Ctrl+I).\n\n</details>\n\n<details>\n<summary><b>VS Code</b></summary>\n\nAdd to `.vscode/mcp.json` in your workspace:\n\n```json\n{\n  \"inputs\": [\n    {\n      \"type\": \"promptString\",\n      \"id\": \"fizzy-token\",\n      \"description\": \"Fizzy API Token\",\n      \"password\": true\n    }\n  ],\n  \"servers\": {\n    \"Fizzy\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@silky/fizzy-mcp\"],\n      \"env\": {\n        \"FIZZY_TOKEN\": \"${input:fizzy-token}\"\n      }\n    }\n  }\n}\n```\n\nOr use user settings via Command Palette → \"MCP: Open User Configuration\".\n\n</details>\n\n<details>\n<summary><b>Windsurf</b></summary>\n\nAdd to `~/.codeium/windsurf/mcp_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"Fizzy\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@silky/fizzy-mcp\"],\n      \"env\": {\n        \"FIZZY_TOKEN\": \"${env:FIZZY_TOKEN}\"\n      }\n    }\n  }\n}\n```\n\nSet `FIZZY_TOKEN` in your shell environment, or hardcode the value. Restart Windsurf.\n\n</details>\n\n<details>\n<summary><b>Cline</b></summary>\n\nAdd to the Cline MCP settings file:\n\n- **macOS:** `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`\n- **Windows:** `%APPDATA%/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`\n- **Linux:** `~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"Fizzy\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@silky/fizzy-mcp\"],\n      \"env\": {\n        \"FIZZY_TOKEN\": \"your-token-here\"\n      },\n      \"disabled\": false,\n      \"alwaysAllow\": []\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary><b>Continue</b></summary>\n\nAdd to `.continue/config.yaml`:\n\n```yaml\nmcpServers:\n  - name: Fizzy\n    command: npx\n    args:\n      - \"-y\"\n      - \"@silky/fizzy-mcp\"\n    env:\n      FIZZY_TOKEN: ${{ secrets.FIZZY_TOKEN }}\n```\n\n</details>\n\n<details>\n<summary><b>From Source</b></summary>\n\n**Requires [pnpm](https://pnpm.io/).**\n\n```bash\ngit clone https://github.com/davegomez/fizzy-mcp.git\ncd fizzy-mcp\npnpm install\npnpm build\n```\n\nReplace `npx -y @silky/fizzy-mcp` with `node /absolute/path/to/fizzy-mcp/dist/index.js` in any config above.\n\n</details>\n\n---\n\n## Configuration Reference\n\n| Variable         | Required | Default                | Description                              |\n| ---------------- | -------- | ---------------------- | ---------------------------------------- |\n| `FIZZY_TOKEN`    | Yes      | —                      | API token from Fizzy settings            |\n| `FIZZY_ACCOUNT`  | No       | —                      | Default account slug (e.g., `897362094`) |\n| `FIZZY_BASE_URL` | No       | `https://app.fizzy.do` | API base URL                             |\n\n### Account Resolution\n\nTools resolve `account_slug` in this order:\n\n1. Explicit `account_slug` parameter on the tool call\n2. Session default (set via `fizzy_account` tool with `action: \"set\"`)\n3. `FIZZY_ACCOUNT` environment variable\n4. Auto-detect (if user has exactly one account)\n\n---\n\n## Tools Reference\n\n### fizzy_account\n\nGets, sets, or lists accounts for subsequent tool calls.\n\n| Parameter      | Type                           | Required  | Description                 |\n| -------------- | ------------------------------ | --------- | --------------------------- |\n| `action`       | `\"get\"` \\| `\"set\"` \\| `\"list\"` | Yes       | Action to perform           |\n| `account_slug` | string                         | For `set` | Account slug from Fizzy URL |\n\n**Returns:**\n\n- `get`: `{ \"action\": \"get\", \"account_slug\": \"897362094\" | null }`\n- `set`: `{ \"action\": \"set\", \"account_slug\": \"897362094\" }`\n- `list`: `{ \"action\": \"list\", \"accounts\": [{ \"slug\": \"...\", \"name\": \"...\", \"id\": \"...\" }] }`\n\n---\n\n### fizzy_boards\n\nLists boards in the account with column summaries.\n\n| Parameter      | Type   | Required | Default         | Description            |\n| -------------- | ------ | -------- | --------------- | ---------------------- |\n| `account_slug` | string | No       | Session default | Account slug           |\n| `limit`        | number | No       | 25              | Items per page (1-100) |\n| `cursor`       | string | No       | —               | Pagination cursor      |\n\n**Returns:** `{ \"items\": Board[], \"pagination\": { \"returned\": number, \"has_more\": boolean, \"next_cursor\"?: string } }`\n\n---\n\n### fizzy_search\n\nSearches for cards with filters.\n\n| Parameter           | Type                                                                                     | Required | Description                        |\n| ------------------- | ---------------------------------------------------------------------------------------- | -------- | ---------------------------------- |\n| `account_slug`      | string                                                                                   | No       | Account slug                       |\n| `board_id`          | string                                                                                   | No       | Filter by board                    |\n| `tag_ids`           | string[]                                                                                 | No       | Filter by ALL tags                 |\n| `assignee_ids`      | string[]                                                                                 | No       | Filter by ANY assignees            |\n| `creator_ids`       | string[]                                                                                 | No       | Filter by card creator             |\n| `closer_ids`        | string[]                                                                                 | No       | Filter by who closed               |\n| `card_ids`          | string[]                                                                                 | No       | Filter to specific card IDs        |\n| `indexed_by`        | `\"closed\"` \\| `\"not_now\"` \\| `\"all\"` \\| `\"stalled\"` \\| `\"postponing_soon\"` \\| `\"golden\"` | No       | Filter by index                    |\n| `assignment_status` | `\"unassigned\"`                                                                           | No       | Filter by assignment status        |\n| `sorted_by`         | `\"newest\"` \\| `\"oldest\"` \\| `\"recently_active\"`                                         | No       | Sort order                         |\n| `terms`             | string[]                                                                                 | No       | Free-text search terms             |\n| `creation`          | date range\\*                                                                             | No       | Filter by creation date            |\n| `closure`           | date range\\*                                                                             | No       | Filter by closure date             |\n| `limit`             | number                                                                                   | No       | Items per page (1-100, default 25) |\n| `cursor`            | string                                                                                   | No       | Pagination cursor                  |\n\n\\*Date range values: `today`, `yesterday`, `thisweek`, `thismonth`, `last7`, `last14`, `last30`.\n\n**Returns:** `{ \"items\": Card[], \"pagination\": {...} }`\n\n---\n\n### fizzy_get_card\n\nGets full details of a card by number or ID.\n\n| Parameter      | Type   | Required | Description                                  |\n| -------------- | ------ | -------- | -------------------------------------------- |\n| `account_slug` | string | No       | Account slug                                 |\n| `card_number`  | number | No\\*     | Card number from URL (e.g., `42` from `#42`) |\n| `card_id`      | string | No\\*     | Card UUID from API responses                 |\n\n\\*Provide `card_number` OR `card_id`. Prefer `card_number` when you have the human-readable `#` from the UI.\n\n**Returns:** Card object with `id`, `number`, `title`, `description` (markdown), `status`, `board_id`, `column_id`, `tags`, `assignees`, `steps_count`, `completed_steps_count`, `comments_count`, `url`, timestamps.\n\n---\n\n### fizzy_task\n\nCreates or updates a card.\n\n**Mode:** Omit `card_number` to create; include it to update.\n\n| Parameter      | Type                                  | Required    | Description                              |\n| -------------- | ------------------------------------- | ----------- | ---------------------------------------- |\n| `account_slug` | string                                | No          | Account slug                             |\n| `card_number`  | number                                | No          | Card to update (omit to create)          |\n| `board_id`     | string                                | Create mode | Board for new card                       |\n| `title`        | string                                | Create mode | Card title                               |\n| `description`  | string                                | No          | Markdown content                         |\n| `status`       | `\"open\"` \\| `\"closed\"` \\| `\"not_now\"` | No          | Change card status                       |\n| `column_id`    | string                                | No          | Triage to column                         |\n| `position`     | `\"top\"` \\| `\"bottom\"`                 | No          | Position in column (default: `\"bottom\"`) |\n| `add_tags`     | string[]                              | No          | Tag titles to add                        |\n| `remove_tags`  | string[]                              | No          | Tag titles to remove                     |\n| `steps`        | string[]                              | No          | Checklist items (create mode only)       |\n\n**Returns:** `{ \"mode\": \"create\" | \"update\", \"card\": {...}, \"operations\": {...}, \"failures\": [...] }`\n\n---\n\n### fizzy_comment\n\nCreate, list, update, or delete a comment on a card.\n\n| Parameter      | Type   | Required | Description                                                     |\n| -------------- | ------ | -------- | --------------------------------------------------------------- |\n| `action`       | string | No       | `\"create\"` (default), `\"list\"`, `\"update\"`, `\"delete\"`          |\n| `account_slug` | string | No       | Account slug                                                    |\n| `card_number`  | number | Yes      | Card number                                                     |\n| `comment_id`   | string | No       | Comment ID. Required for update/delete                          |\n| `body`         | string | No       | Comment in markdown (1-10000 chars). Required for create/update |\n\n**Returns:** Comment object with `id`, `body` (markdown), `creator`, timestamps, `url`. List returns `{ comments, pagination }`. Delete returns `{ comment_id, deleted }`.\n\n---\n\n### fizzy_step\n\nCreate, complete, update, uncomplete, or delete a step on a card.\n\n| Parameter      | Type             | Required | Description                                         |\n| -------------- | ---------------- | -------- | --------------------------------------------------- |\n| `account_slug` | string           | No       | Account slug                                        |\n| `card_number`  | number           | Yes      | Card containing the step                            |\n| `step`         | string \\| number | No       | Content substring OR 1-based index. Omit to create. |\n| `content`      | string           | No       | Step text for create or update                      |\n| `completed`    | boolean          | No       | Set completion state                                |\n| `delete`       | boolean          | No       | Delete the step                                     |\n\n**Mode detection:**\n\n- `step` absent → CREATE (requires `content`)\n- `step` present, no other params → COMPLETE\n- `step` + `content` → UPDATE\n- `step` + `completed: false` → UNCOMPLETE\n- `step` + `delete: true` → DELETE\n\n**Returns:** `{ \"id\": \"...\", \"content\": \"...\", \"completed\": true }`\n\n---\n\n## Pagination Reference\n\nList operations return:\n\n```json\n{\n  \"items\": [...],\n  \"pagination\": {\n    \"returned\": 25,\n    \"has_more\": true,\n    \"next_cursor\": \"opaque-cursor-string\"\n  }\n}\n```\n\n| Field         | Type    | Description                    |\n| ------------- | ------- | ------------------------------ |\n| `returned`    | number  | Items in this response         |\n| `has_more`    | boolean | More items available           |\n| `next_cursor` | string  | Pass as `cursor` for next page |\n\n---\n\n## Error Reference\n\n| Error                                                                                            | Cause                                      |\n| ------------------------------------------------------------------------------------------------ | ------------------------------------------ |\n| \"No account specified. Set FIZZY_ACCOUNT env var, use fizzy_account tool, or pass account_slug.\" | No account resolvable via any method       |\n| \"Account \\\"...\\\" not found\"                                                                      | Invalid slug passed to `fizzy_account` set |\n| \"Card #N not found\"                                                                              | Card number does not exist                 |\n| \"Board not found\"                                                                                | Invalid `board_id`                         |\n\n---\n\n## License\n\nAGPL-3.0-or-later\n",
  "bytes": 15255,
  "sha": "97cba04894fd2616729a4969a8fc3b7833fe4e2df7e26667736b575ca8e9bcab",
  "repo_slug": "davegomez/fizzy-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_davegomez_fizzy_35e4c695/readme"
}