{"_id":"@anaella/mcp","_rev":"5-a786cf71e4352fad3eced0822a06da3f","name":"@anaella/mcp","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.0":{"name":"@anaella/mcp","version":"0.1.0","_id":"@anaella/mcp@0.1.0","maintainers":[{"name":"etugrand","email":"igounton@gmail.com"}],"bin":{"anaella-mcp":"dist/index.js"},"dist":{"shasum":"d5d462f859579b21e3ffcc6e63e52672df817c4c","tarball":"https://registry.npmjs.org/@anaella/mcp/-/mcp-0.1.0.tgz","fileCount":5,"integrity":"sha512-Dr/238a7ANdpRec+z/5s8nK0hjbfZXzuCJgn/U5xSPZI+C2YLGr8Lfn/fkNj/7hCMwpyXyVzw6RaPmRlSXlbog==","signatures":[{"sig":"MEQCIBxKZXIPtmXDx4p5eQAfHSxQFn6uVxOkzOdufcgVk8J9AiAQPOg5+QbcPB9T+hdyMGGTZ9KD065KLHGHITs5HI1DTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12735},"type":"module","gitHead":"81f0d49da4390f5a8b229e4537054482726e142d","scripts":{"dev":"tsup --watch","test":"bun test","build":"tsup","smoke":"bun run src/smoke.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"etugrand","email":"igounton@gmail.com"},"_npmVersion":"11.13.0","description":"MCP server for anaella.com — schedule and publish social posts via the /v1 API.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^3.25.76","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5","@types/node":"^22"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.0_1782950012748_0.791366571179561","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@anaella/mcp","version":"0.1.1","_id":"@anaella/mcp@0.1.1","maintainers":[{"name":"etugrand","email":"igounton@gmail.com"}],"bin":{"anaella-mcp":"dist/index.js"},"dist":{"shasum":"7d762d066cb384d642936d7b2ddf931cb072a673","tarball":"https://registry.npmjs.org/@anaella/mcp/-/mcp-0.1.1.tgz","fileCount":5,"integrity":"sha512-OYnyKJyJdZc40O4Cen5o4YsoD+l10LQ4CwII0WLdVvOaP8Vj6LaJJMcMQbEdFs8VxDcumZqG4H5QmvfSn7pwJQ==","signatures":[{"sig":"MEYCIQCBMeTWR7i+1grpeJMmkJD1KfIp+j4zfkA5PBe3Ib0daQIhANGcO5UtwiZQR9uDajynp3jWUQa+FGhkR40UEHaTMjYy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10902},"type":"module","gitHead":"3533d5e234de9bd905e11d323feea30d7fbeca8a","scripts":{"dev":"tsup --watch","test":"bun test","build":"tsup","smoke":"bun run src/smoke.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"etugrand","email":"igounton@gmail.com"},"_npmVersion":"11.13.0","description":"MCP server for anaella.com — schedule and publish social posts via the /v1 API.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^3.25.76","@anaella/client":"^0.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5","@types/node":"^22"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.1_1782954472252_0.4610981940216936","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@anaella/mcp","version":"0.2.0","_id":"@anaella/mcp@0.2.0","maintainers":[{"name":"etugrand","email":"igounton@gmail.com"}],"bin":{"anaella-mcp":"dist/index.js"},"dist":{"shasum":"313da27a681bc3b4547327fbd569bc6c74218900","tarball":"https://registry.npmjs.org/@anaella/mcp/-/mcp-0.2.0.tgz","fileCount":5,"integrity":"sha512-v4AEIVXj7tDOGS8AjqT3i7qZqrkMAuw0B0hqwan5exuDZJjrAh34g0W9J4FBQpQCohuXpOXy66PvzzSWCU7lqA==","signatures":[{"sig":"MEYCIQC5buHBmIF6IwiP9lfiLrdgZ5vRNTUqswHVvusrxOBxJwIhAMRhtr+Xv70i5DXXEAu9ef/JjUAiyPWukfUD8xKDjuZG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12924},"type":"module","gitHead":"5b5d56f4d38220031efdbfb740b6416d48a82619","scripts":{"dev":"tsup --watch","test":"bun test","build":"tsup","smoke":"bun run src/smoke.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"etugrand","email":"igounton@gmail.com"},"_npmVersion":"11.13.0","description":"MCP server for anaella.com — schedule and publish social posts via the /v1 API.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^3.25.76","@anaella/client":"^0.1.6","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5","@types/node":"^22"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.2.0_1783374213863_0.10597121618625138","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@anaella/mcp","version":"0.2.1","license":"MIT","_id":"@anaella/mcp@0.2.1","maintainers":[{"name":"etugrand","email":"igounton@gmail.com"}],"bin":{"anaella-mcp":"dist/index.js"},"dist":{"shasum":"c2bbf4ea0691835b7c26d29c5802b2f935b4b5bf","tarball":"https://registry.npmjs.org/@anaella/mcp/-/mcp-0.2.1.tgz","fileCount":6,"integrity":"sha512-3IVYaxWMpVIHXzET0CEQgB5Lvhcks4ic4egK5ILeL3+rzyIEEucuFIzaJWsvq7a5Jw278JeTelflA4EXi32wJg==","signatures":[{"sig":"MEUCIQCeTQyRDzjkmoI+EuX5YzSkSTPz98I0cYJnJ59hIlFa5wIgI6pVExlYTceTLrZ1ZUsOobrocWBwQifw9giI0uS0qIw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14006},"type":"module","gitHead":"42adfcf8dcd73767b1663bd670e125aa9c6a622b","scripts":{"dev":"tsup --watch","test":"bun test","build":"tsup","smoke":"bun run src/smoke.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"etugrand","email":"igounton@gmail.com"},"_npmVersion":"11.13.0","description":"MCP server for anaella.com — schedule and publish social posts via the /v1 API.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^3.25.76","@anaella/client":"^0.1.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5","@types/node":"^22"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.2.1_1783376631077_0.35243821583574353","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@anaella/mcp","version":"0.2.2","description":"MCP server for anaella.com — schedule and publish social posts via the /v1 API.","type":"module","bin":{"anaella-mcp":"dist/index.js"},"publishConfig":{"access":"public"},"scripts":{"build":"tsup","prepublishOnly":"npm run build","dev":"tsup --watch","test":"bun test","smoke":"bun run src/smoke.ts"},"dependencies":{"@anaella/client":"^0.1.8","@modelcontextprotocol/sdk":"^1.29.0","zod":"^3.25.76"},"devDependencies":{"@types/node":"^22","tsup":"^8.0.0","typescript":"^5"},"license":"MIT","gitHead":"0d7146ff4104eba6604c11d0d2cadf36b7b07650","_id":"@anaella/mcp@0.2.2","_nodeVersion":"26.5.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-erM5FrLYzU+IEGpQp1dC4l6KQ4sCToYVUNBiWORN0d/ohnxapUUMfpd4fs21Gluc+Rga/3CbI3xUgdSdW1ZLMA==","shasum":"d1ba19fe757a0fee4533644762c72e44618ebf69","tarball":"https://registry.npmjs.org/@anaella/mcp/-/mcp-0.2.2.tgz","fileCount":6,"unpackedSize":14530,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDWquy4e46tiGTUYtsvl1UqDjAD+u6FlFgTvFFGsxrBEAiEAyxTDYwp4GhkOaq6wxdUt72dDV6LQoSG3UCZobLV/GHE="}]},"_npmUser":{"name":"etugrand","email":"igounton@gmail.com"},"directories":{},"maintainers":[{"name":"etugrand","email":"igounton@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.2.2_1785256267743_0.5642881384097298"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-01T23:53:32.500Z","modified":"2026-07-28T16:31:08.141Z","0.1.0":"2026-07-01T23:53:32.883Z","0.1.1":"2026-07-02T01:07:52.418Z","0.2.0":"2026-07-06T21:43:34.095Z","0.2.1":"2026-07-06T22:23:51.200Z","0.2.2":"2026-07-28T16:31:07.960Z"},"license":"MIT","description":"MCP server for anaella.com — schedule and publish social posts via the /v1 API.","maintainers":[{"name":"etugrand","email":"igounton@gmail.com"}],"readme":"# @anaella/mcp\n\nAn MCP (Model Context Protocol) server for [anaella.com](https://anaella.com) — schedule and\npublish social posts to your connected channels via the anaella `/v1` API, from any MCP client\n(Claude, Claude Code, Cursor, etc.).\n\nIt's hosted at `https://api.anaella.com/mcp` (Streamable HTTP), or you can run it locally over\nstdio.\n\n## Client configuration\n\nRemote (recommended):\n```json\n{ \"mcpServers\": { \"anaella\": {\n  \"url\": \"https://api.anaella.com/mcp\",\n  \"headers\": { \"Authorization\": \"Bearer ana_...\" }\n}}}\n```\n\nLocal (stdio):\n```json\n{ \"mcpServers\": { \"anaella\": {\n  \"command\": \"npx\", \"args\": [\"-y\", \"@anaella/mcp\"],\n  \"env\": { \"ANAELLA_API_KEY\": \"ana_...\" }\n}}}\n```\n\nGet an API key (`ana_...`) from your anaella organization settings.\n\n## Tools\n\n- **list_channels** — List the connected social channels for your organization. Call this\n  first to get the channel ids you pass to `create_post`.\n- **create_post** — Create and (optionally) publish a post to one or more channels.\n  - `channels: string[]` (required) — channel ids from `list_channels`\n  - `text?: string` — post text / caption\n  - `when?: string` — `\"now\"` publishes immediately, `\"draft\"` (default) saves without\n    publishing, or an ISO-8601 timestamp schedules it\n  - `media?: { url: string }[]` — public file URLs the API downloads\n  - `type?: \"post\" | \"reel\" | \"thread\" | \"story\"` — defaults to `\"post\"`\n  - `firstComment?: string`\n  - Publishing is asynchronous — poll `get_post` for the final per-channel status.\n- **list_posts** — List recent posts for your organization with their per-channel status.\n  - `limit?: number` (1-100), `cursor?: number`\n- **get_post** — Get one post by id, including its per-channel publish status.\n  - `id: string`\n- **delete_post** — Delete a draft or cancel a scheduled post by id.\n  - `id: string`\n\n## Environment variables\n\n- `ANAELLA_API_KEY` — required for stdio mode; your `ana_...` API key.\n- `ANAELLA_API_URL` — base URL for the anaella API. Defaults to `https://api.anaella.com`.\n\nIn remote (Streamable HTTP) mode the API key is instead passed per-request as an\n`Authorization: Bearer ana_...` header.\n\n## Local development\n\n```bash\nbun install\nbun run build        # tsup -> dist/index.js (stdio) + dist/http.js (Streamable HTTP)\nbun run dev           # tsup --watch\nbun test\n```\n\n## Smoke test\n\n`bun run smoke` runs an opt-in, live smoke test against a real anaella API: it lists your\nchannels, creates a **draft** post (never publishes), then deletes it. It's a no-op unless\n`ANAELLA_SMOKE_KEY` is set to a real `ana_...` key.\n\n```bash\nANAELLA_SMOKE_KEY=ana_... ANAELLA_API_URL=https://api.anaella.com bun run smoke\n```\n\n## Docker\n\nBuild context is this package directory (`packages/mcp`) — the image is self-contained and has\nno `@anaella/*` workspace dependencies to resolve.\n\n```bash\ncd packages/mcp\ndocker build -t anaella-mcp:local .\ndocker run -d -p 3000:3000 -e ANAELLA_API_URL=https://api.anaella.com anaella-mcp:local\ncurl http://localhost:3000/health   # -> ok\n```\n\nThe container runs the Streamable HTTP server (`node dist/http.js`), exposing `GET /health`\nand `POST /mcp` (requires `Authorization: Bearer ana_...`).\n","readmeFilename":"README.md"}