{"_id":"@auctaflux/reseller-mcp","name":"@auctaflux/reseller-mcp","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@auctaflux/reseller-mcp","version":"0.1.0","description":"MCP stdio server for the AuctaFlux Reseller API — manage WhatsApp instances, send messages, and manage templates via AI assistants.","keywords":["mcp","whatsapp","reseller","auctaflux"],"license":"UNLICENSED","type":"module","main":"dist/index.js","bin":{"reseller-mcp":"dist/index.js"},"scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js","typecheck":"tsc --noEmit"},"dependencies":{"@modelcontextprotocol/sdk":"^1.12.1","zod":"^3.23.8"},"devDependencies":{"@types/node":"^20.14.0","typescript":"^5.4.5"},"engines":{"node":">=18"},"_id":"@auctaflux/reseller-mcp@0.1.0","gitHead":"0707da67416314d8f95e63281328dfd957a89a68","types":"./dist/index.d.ts","_nodeVersion":"22.17.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-ICcPbhi+zVoKGpDYW88kJ9TsuQlVBaNHzO3Mc5jrZ+IhwZL6O6aggfF/rnEfMtTzQQeBmTF33r3lfWdOR3Wq+Q==","shasum":"423389a85a0c264e975fc4f08029ee4087e38744","tarball":"https://registry.npmjs.org/@auctaflux/reseller-mcp/-/reseller-mcp-0.1.0.tgz","fileCount":30,"unpackedSize":92774,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICOVZKSt1r6Apy/+9b/ER41r+XrjzdQPssQsTIjDrtjQAiAbRHtlYLO8vaiXj4EwiMWn+Oh7s9+vxfja5CA0lITHgA=="}]},"_npmUser":{"name":"auctaflux","email":"gui.santos.sa@gmail.com"},"directories":{},"maintainers":[{"name":"auctaflux","email":"gui.santos.sa@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/reseller-mcp_0.1.0_1781028009424_0.590934894378099"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-09T18:00:09.257Z","0.1.0":"2026-06-09T18:00:09.614Z","modified":"2026-06-09T18:00:09.816Z"},"maintainers":[{"name":"auctaflux","email":"gui.santos.sa@gmail.com"}],"description":"MCP stdio server for the AuctaFlux Reseller API — manage WhatsApp instances, send messages, and manage templates via AI assistants.","keywords":["mcp","whatsapp","reseller","auctaflux"],"license":"UNLICENSED","readme":"# @auctaflux/reseller-mcp\r\n\r\nMCP stdio server for the [AuctaFlux](https://aucta.tech) Reseller API.\r\n\r\nConnects Claude Desktop, Cursor, Cline, and any other MCP-compatible AI assistant to your\r\nAuctaFlux reseller account — manage WhatsApp instances, send messages, and handle templates\r\nvia natural language.\r\n\r\n## Tools available\r\n\r\n| Tool | Endpoint | Description |\r\n|------|----------|-------------|\r\n| `list_instances` | `GET /workspaces` | List all WhatsApp instances |\r\n| `get_instance` | `GET /workspaces/{id}` | Get workspace details |\r\n| `create_instance` | `POST /workspaces` | Create a new WhatsApp instance |\r\n| `update_instance` | `PATCH /workspaces/{id}` | Update name or webhook URL |\r\n| `archive_instance` | `DELETE /workspaces/{id}` | Archive (soft-delete) an instance |\r\n| `get_connection_status` | `GET /workspaces/{id}/connection` | Check WhatsApp connection status |\r\n| `create_connect_link` | `POST /workspaces/{id}/connect-link` | Generate client onboarding URL |\r\n| `register_connection` | `POST /workspaces/{id}/connection/register` | Submit 2FA PIN |\r\n| `disconnect_connection` | `DELETE /workspaces/{id}/connection` | Disconnect without archiving |\r\n| `rotate_forward_secret` | `POST /workspaces/{id}/rotate-secret` | Rotate webhook HMAC secret |\r\n| `send_text_message` | `POST /workspaces/{id}/messages` | Send a plain text message |\r\n| `send_template_message` | `POST /workspaces/{id}/messages/template` | Send approved template |\r\n| `send_media_message` | `POST /workspaces/{id}/messages/media` | Send image/audio/video/document |\r\n| `send_interactive_message` | `POST /workspaces/{id}/messages/interactive` | Send buttons/list/CTA/carousel |\r\n| `mark_message_as_read` | `POST /workspaces/{id}/messages/{wamid}/read` | Mark message as read |\r\n| `delete_message` | `DELETE /workspaces/{id}/messages/{wamid}` | Delete a sent message |\r\n| `list_templates` | `GET /workspaces/{id}/templates` | List WABA templates |\r\n| `create_template` | `POST /workspaces/{id}/templates` | Submit template for Meta review |\r\n| `delete_template` | `DELETE /workspaces/{id}/templates?name=...` | Delete all variants of a template |\r\n| `get_business_profile` | `GET /workspaces/{id}/profile` | Get WhatsApp Business Profile |\r\n| `update_business_profile` | `PATCH /workspaces/{id}/profile` | Update profile (about, email, etc.) |\r\n| `get_usage` | `GET /usage` | Active instances + month-to-date messages |\r\n\r\n## Prerequisites\r\n\r\n- Node.js >= 18\r\n- An AuctaFlux reseller API key (`aflx_rsl_...`) — generate one in the Reseller Console under **API Keys**\r\n\r\n## Quick start (Claude Desktop)\r\n\r\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or\r\n`%APPDATA%\\Claude\\claude_desktop_config.json` (Windows):\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"auctaflux-reseller\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"@auctaflux/reseller-mcp\"],\r\n      \"env\": {\r\n        \"AUCTAFLUX_RESELLER_API_KEY\": \"aflx_rsl_your_key_here\"\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\nRestart Claude Desktop. You should see the AuctaFlux tools listed in the tool panel.\r\n\r\n## Point to a custom API URL\r\n\r\n```json\r\n\"env\": {\r\n  \"AUCTAFLUX_RESELLER_API_KEY\": \"aflx_rsl_...\",\r\n  \"AUCTAFLUX_BASE_URL\": \"https://api-flux.aucta.tech\"\r\n}\r\n```\r\n\r\nSet `AUCTAFLUX_BASE_URL` to your self-hosted instance if you are running AuctaFlux locally or\r\non a staging environment.\r\n\r\n## Smoke test with MCP Inspector\r\n\r\n```bash\r\n# Build first (from this directory)\r\nnpm install && npm run build\r\n\r\n# Run the inspector — it opens a browser UI to call tools interactively\r\nAUCTAFLUX_RESELLER_API_KEY=aflx_rsl_... npx @modelcontextprotocol/inspector node dist/index.js\r\n```\r\n\r\nIn the Inspector UI:\r\n1. Click **Connect**\r\n2. Click **List Tools** — you should see all 22 tools\r\n3. Select `list_instances` → click **Call Tool** → verify your instances appear\r\n4. Select `get_usage` → call it → verify active_workspaces and month_to_date_messages\r\n\r\n## Development\r\n\r\n```bash\r\ncd tools/reseller-mcp\r\nnpm install\r\nnpm run build          # compile TypeScript\r\nnpm run dev            # watch mode (recompiles on save)\r\nnpm run typecheck      # type-check only\r\n```\r\n\r\n## Out of scope (V1)\r\n\r\nThe following are intentionally excluded and may be added in a future version:\r\n\r\n- **Media upload** (`POST /workspaces/{id}/media`) — multipart/form-data upload via MCP is\r\n  cumbersome. Use the Reseller Console or a direct HTTP call to upload media, then pass the\r\n  `media_id` to `send_media_message`.\r\n- **API Key CRUD** (`/keys`) — key management stays in the Reseller Console.\r\n- **MCP remote / HTTP transport** — V1 is stdio only (runs on the client's machine).\r\n  A hosted HTTP MCP server may be offered in the future.\r\n\r\n## Error handling\r\n\r\nThe server maps AuctaFlux API errors (`{\"error\": {\"code\": ..., \"message\": ...}}`) to\r\nMCP `isError: true` responses with human-readable messages. Notable codes:\r\n\r\n| Code | Meaning |\r\n|------|---------|\r\n| `RATE_LIMIT_EXCEEDED` | 1 000 req/min limit reached — wait 60 s |\r\n| `WORKSPACE_NOT_FOUND` | Invalid workspace_id |\r\n| `CONNECTION_NOT_FOUND` | Workspace has no WhatsApp connection |\r\n| `PIN_REQUIRED` | 2FA PIN needed — use `register_connection` |\r\n| `PIN_MISMATCH` | Wrong 2FA PIN |\r\n| `WORKSPACE_ARCHIVED` | Workspace is archived |\r\n| `META_API_ERROR` | Meta rejected the request |\r\n","readmeFilename":"README.md","_rev":"1-6fe7083e9c27efc931c1bcdb1a96f31c"}