{"_id":"@apidance/mcp","_rev":"8-0c395e3ebaf777921967ae1586526904","name":"@apidance/mcp","dist-tags":{"latest":"0.1.13"},"versions":{"0.1.0":{"name":"@apidance/mcp","version":"0.1.0","keywords":["apidance","twitter","x","mcp","model-context-protocol","codex","claude-code"],"license":"MIT","_id":"@apidance/mcp@0.1.0","maintainers":[{"name":"apidance","email":"abcdsxg@gmail.com"}],"bin":{"apidance-mcp":"bin/apidance-mcp.js"},"dist":{"shasum":"e7c3a82090c379167ca1a791784ad8255c5d93c6","tarball":"https://registry.npmjs.org/@apidance/mcp/-/mcp-0.1.0.tgz","fileCount":14,"integrity":"sha512-PHfIMz+cKLk74Rl04bNPcIeX6hILcHe7FCTCQkT0OUX3weFA/JNxaPykyufMiCRLGh3hgmwwFIq0sFei5fq5OA==","signatures":[{"sig":"MEQCIB6OX4aycZSdg7znbfaz/1tIRHcMmKeuP1fyeikKnGOaAiAbrLIlAuvQJnzVUWL8hhw2hxaBTZlzDXNstCY5SZ9qRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66816},"type":"module","engines":{"node":">=18.18"},"scripts":{"check":"node --check ./bin/apidance-mcp.js && node --check ./src/endpoints.js && node --check ./src/server.js","start":"node ./bin/apidance-mcp.js","list-tools":"node ./bin/apidance-mcp.js --list-tools"},"_npmUser":{"name":"apidance","email":"abcdsxg@gmail.com"},"_npmVersion":"11.4.2","description":"Dependency-free stdio MCP server for Apidance Twitter API endpoints.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.0_1783591815414_0.3182544964683407","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@apidance/mcp","version":"0.1.4","keywords":["apidance","twitter","x","mcp","model-context-protocol","codex","claude-code"],"license":"MIT","_id":"@apidance/mcp@0.1.4","maintainers":[{"name":"apidance","email":"abcdsxg@gmail.com"}],"bin":{"apidance-mcp":"bin/apidance-mcp.js"},"dist":{"shasum":"e359e7e86e407ea35ed3dccd139619dca75f8575","tarball":"https://registry.npmjs.org/@apidance/mcp/-/mcp-0.1.4.tgz","fileCount":14,"integrity":"sha512-TGogsgHjASG55vQIghFpbMbxMNXtuOfVsCLpG2GtU/sB2a+vbLKbYkVWTqasJOYli70gLX+62U7iF+6hy98Pvw==","signatures":[{"sig":"MEUCIQC46s5j/bD84BB0K1zLmGdGfUkXPdbmeNCWn+beUZN7owIgF9qsLqLrckzgbqcs6YjX+raZPQImWZrMkLrYcsiChsY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69034},"type":"module","engines":{"node":">=18.18"},"scripts":{"check":"node --check ./bin/apidance-mcp.js && node --check ./src/endpoints.js && node --check ./src/server.js","start":"node ./bin/apidance-mcp.js","list-tools":"node ./bin/apidance-mcp.js --list-tools"},"_npmUser":{"name":"apidance","email":"abcdsxg@gmail.com"},"_npmVersion":"11.4.2","description":"Dependency-free stdio MCP server for Apidance Twitter API endpoints.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.4_1783613600489_0.7642539453798878","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@apidance/mcp","version":"0.1.6","keywords":["apidance","twitter","x","mcp","model-context-protocol","codex","claude-code"],"license":"MIT","_id":"@apidance/mcp@0.1.6","maintainers":[{"name":"apidance","email":"abcdsxg@gmail.com"}],"bin":{"apidance-mcp":"bin/apidance-mcp.js"},"dist":{"shasum":"4701a567a2821e62d6411bb066fc141305f7264d","tarball":"https://registry.npmjs.org/@apidance/mcp/-/mcp-0.1.6.tgz","fileCount":14,"integrity":"sha512-ghwPPBBt56aDDT0ODFM/AWRG0hhSfWItBG2fouR3TaEJ8a7pz6ySpiN5XoHGjwJ3YZWybXNur2ec9/7BkgQISQ==","signatures":[{"sig":"MEUCICdGK9ucsC5YdK0t6yTgJjWTABKL0Gp1rV1ZtWgoysDJAiEAj0ZfIzpE5qGK/p1d+lV39sdZbWqHHpgQdP9l80tV0zg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68382},"type":"module","engines":{"node":">=18.18"},"scripts":{"check":"node --check ./bin/apidance-mcp.js && node --check ./src/endpoints.js && node --check ./src/server.js","start":"node ./bin/apidance-mcp.js","list-tools":"node ./bin/apidance-mcp.js --list-tools"},"_npmUser":{"name":"apidance","email":"abcdsxg@gmail.com"},"_npmVersion":"11.4.2","description":"Dependency-free stdio MCP server for Apidance Twitter API endpoints.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.6_1783754345495_0.4269185476112509","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@apidance/mcp","version":"0.1.8","keywords":["apidance","twitter","x","mcp","model-context-protocol","codex","claude-code"],"license":"MIT","_id":"@apidance/mcp@0.1.8","maintainers":[{"name":"apidance","email":"abcdsxg@gmail.com"}],"bin":{"apidance-mcp":"bin/apidance-mcp.js"},"dist":{"shasum":"c717acae1b1be416db58588b3f30f790eb54f019","tarball":"https://registry.npmjs.org/@apidance/mcp/-/mcp-0.1.8.tgz","fileCount":14,"integrity":"sha512-gDKuHMHwHx9uktNG+SyWxi0SW9o3c+Z15wxGjcugWlze358a2LOyq1I4bEAizldA6Od2z7e24Mm3Kml0mmOI6Q==","signatures":[{"sig":"MEQCIAnfciE+rGpjb+OVpXcaNWFHGTFALmDlOIHniZroD0QZAiAgDxfRe8ewvzIcPMUgUW53Z7DlffdS0BmVQFa6S22TeQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72319},"type":"module","engines":{"node":">=18.18"},"scripts":{"check":"node --check ./bin/apidance-mcp.js && node --check ./src/endpoints.js && node --check ./src/server.js","start":"node ./bin/apidance-mcp.js","list-tools":"node ./bin/apidance-mcp.js --list-tools"},"_npmUser":{"name":"apidance","email":"abcdsxg@gmail.com"},"_npmVersion":"11.4.2","description":"Dependency-free stdio MCP server for Apidance Twitter API endpoints.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.8_1783755973497_0.15998882975396156","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@apidance/mcp","version":"0.1.9","keywords":["apidance","twitter","x","mcp","model-context-protocol","codex","claude-code"],"license":"MIT","_id":"@apidance/mcp@0.1.9","maintainers":[{"name":"apidance","email":"abcdsxg@gmail.com"}],"bin":{"apidance-mcp":"bin/apidance-mcp.js"},"dist":{"shasum":"88d09375d1831b292e9b1eb82f1b345bcae796e3","tarball":"https://registry.npmjs.org/@apidance/mcp/-/mcp-0.1.9.tgz","fileCount":14,"integrity":"sha512-KgzYcPzXQsVXIRmtm2at/WVINzcjTSsH5i6eVgcBUD5XF8vAafGxcto300dbNYewFqYsU2bemlS820JhUT+eSg==","signatures":[{"sig":"MEUCIDUgJjMFyRAcWY6X1A4+w5T+5DnRLQAyheaMxT7YFdSlAiEA+R2Yk33wu5+6Tfjc4go4n/u8n3DAW75LWvMRMes+FQw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74019},"type":"module","engines":{"node":">=18.18"},"scripts":{"check":"node --check ./bin/apidance-mcp.js && node --check ./src/endpoints.js && node --check ./src/server.js","start":"node ./bin/apidance-mcp.js","list-tools":"node ./bin/apidance-mcp.js --list-tools"},"_npmUser":{"name":"apidance","email":"abcdsxg@gmail.com"},"_npmVersion":"11.4.2","description":"Dependency-free stdio MCP server for Apidance Twitter API endpoints.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.9_1785579991458_0.557742531882697","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@apidance/mcp","version":"0.1.11","keywords":["apidance","twitter","x","mcp","model-context-protocol","codex","claude-code"],"license":"MIT","_id":"@apidance/mcp@0.1.11","maintainers":[{"name":"apidance","email":"abcdsxg@gmail.com"}],"bin":{"apidance-mcp":"bin/apidance-mcp.js"},"dist":{"shasum":"a3f6046d52dfe98c97eaee6a38c8e262f90b24ee","tarball":"https://registry.npmjs.org/@apidance/mcp/-/mcp-0.1.11.tgz","fileCount":35,"integrity":"sha512-wwUU+52ENp4s5BUYTaGPscJMrCh+Rzjd8RUj3NXzRCJg6xMbicHnwrebhX4L3VtVxG1HjlZdnnlzTNdGOQDEuA==","signatures":[{"sig":"MEQCIDgML64KujLVworXWw3NXA40L/EhBaoTVkGAdLnCpSs9AiBHhlDIpRBSzFoMJaLSpbKF/YUf/TVqOVCMVJU/+pYaSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":271577},"type":"module","engines":{"node":">=18.18"},"scripts":{"check":"node --check ./bin/apidance-mcp.js && node --check ./src/endpoints.js && node --check ./src/server.js && node --check ./public-scripts/data-cleaning/clean-user-tweets.mjs && node --check ./public-scripts/data-cleaning/twitter-normalize.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/run-discovery.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/discover-twitter-team.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/apidance-client.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/codex-config.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/interactions.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/package-modules.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/pagination.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/report.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/reviews.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/role-evidence.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/service.mjs","start":"node ./bin/apidance-mcp.js","list-tools":"node ./bin/apidance-mcp.js --list-tools"},"_npmUser":{"name":"apidance","email":"abcdsxg@gmail.com"},"_npmVersion":"11.4.2","description":"Dependency-free stdio MCP server for Apidance Twitter API endpoints.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.11_1785581385433_0.37981024367001726","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@apidance/mcp","version":"0.1.12","keywords":["apidance","twitter","x","mcp","model-context-protocol","codex","claude-code"],"license":"MIT","_id":"@apidance/mcp@0.1.12","maintainers":[{"name":"apidance","email":"abcdsxg@gmail.com"}],"bin":{"apidance-mcp":"bin/apidance-mcp.js"},"dist":{"shasum":"1c42b27238485c590252f237f175cd5cfb33fd12","tarball":"https://registry.npmjs.org/@apidance/mcp/-/mcp-0.1.12.tgz","fileCount":39,"integrity":"sha512-Chg0daDcpxyf/Tpia8eEMvbmN9VbaZK78P8b0VT71r+9v0E7bEPtBEsR+hIeF10Kirh+7CcsIMi+DDbZJbpGAA==","signatures":[{"sig":"MEQCIHCeOPUmyfOM8qQok+wb2IVmTzc1ihEe4WnJghKb26AFAiBr/HcM/rcz6V5WeB2VkrU1AB1UXYqnN9oqr4GLFjYNUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":282551},"type":"module","engines":{"node":">=18.18"},"scripts":{"check":"node --check ./bin/apidance-mcp.js && node --check ./src/endpoints.js && node --check ./src/server.js && node --check ./public-scripts/data-cleaning/clean-user-tweets.mjs && node --check ./public-scripts/data-cleaning/twitter-normalize.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/run-discovery.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/discover-twitter-team.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/apidance-client.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/codex-config.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/interactions.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/package-modules.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/pagination.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/report.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/reviews.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/role-evidence.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/service.mjs","start":"node ./bin/apidance-mcp.js","list-tools":"node ./bin/apidance-mcp.js --list-tools"},"_npmUser":{"name":"apidance","email":"abcdsxg@gmail.com"},"_npmVersion":"11.4.2","description":"Dependency-free stdio MCP server for Apidance Twitter API endpoints.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.12_1785581757491_0.623852442873664","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@apidance/mcp","version":"0.1.13","description":"Dependency-free stdio MCP server for Apidance Twitter API endpoints.","type":"module","bin":{"apidance-mcp":"bin/apidance-mcp.js"},"publishConfig":{"access":"public"},"engines":{"node":">=18.18"},"scripts":{"start":"node ./bin/apidance-mcp.js","check":"node --check ./bin/apidance-mcp.js && node --check ./src/endpoints.js && node --check ./src/server.js && node --check ./public-scripts/data-cleaning/clean-user-tweets.mjs && node --check ./public-scripts/data-cleaning/twitter-normalize.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/run-discovery.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/discover-twitter-team.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/apidance-client.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/codex-config.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/interactions.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/package-modules.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/pagination.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/report.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/reviews.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/role-evidence.mjs && node --check ./skills/apidance-discover-twitter-team/scripts/lib/service.mjs","list-tools":"node ./bin/apidance-mcp.js --list-tools"},"keywords":["apidance","twitter","x","mcp","model-context-protocol","codex","claude-code"],"license":"MIT","_id":"@apidance/mcp@0.1.13","_nodeVersion":"24.3.0","_npmVersion":"11.4.2","dist":{"integrity":"sha512-hLl34+cgtrZEKTcZ7jnPS0PxGs4229JcOBclTA8ZwO60+0UwJzywOpq2t9SKJ538m8hfR03vUawU4hLjBNWj1Q==","shasum":"2af38726829a29e1dc77b2986f62a723639e6872","tarball":"https://registry.npmjs.org/@apidance/mcp/-/mcp-0.1.13.tgz","fileCount":39,"unpackedSize":282552,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCOhHLLDmxOQp5uGchqv77vzrRc2bRcaw6Xsg/oVDBvfgIgAVPtVYiAYoi3MQ6JXlkWgyRhS+xZ0N7jh54xUKgzw+0="}]},"_npmUser":{"name":"apidance","email":"abcdsxg@gmail.com"},"directories":{},"maintainers":[{"name":"apidance","email":"abcdsxg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.1.13_1785582269411_0.3574028300656882"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-09T10:10:15.217Z","modified":"2026-08-01T11:04:29.711Z","0.1.0":"2026-07-09T10:10:15.571Z","0.1.4":"2026-07-09T16:13:20.674Z","0.1.6":"2026-07-11T07:19:05.647Z","0.1.8":"2026-07-11T07:46:13.629Z","0.1.9":"2026-08-01T10:26:31.592Z","0.1.11":"2026-08-01T10:49:45.575Z","0.1.12":"2026-08-01T10:55:57.628Z","0.1.13":"2026-08-01T11:04:29.558Z"},"license":"MIT","keywords":["apidance","twitter","x","mcp","model-context-protocol","codex","claude-code"],"description":"Dependency-free stdio MCP server for Apidance Twitter API endpoints.","maintainers":[{"name":"apidance","email":"abcdsxg@gmail.com"}],"readme":"# Apidance MCP\n\nDependency-free stdio MCP server for the Apidance `twitter-api` menu.\n\n[中文说明](https://cdn.jsdelivr.net/npm/@apidance/mcp@latest/docs/README.zh-CN.md)\n\nNeed an Apidance API key? Contact Telegram user [@shingle](https://t.me/shingle).\n\nPricing:\n\n| Requests | Price |\n| --- | --- |\n| 10k requests | $8 |\n| 100k requests | $40 |\n| 1000k requests | $200 |\n\nThe server exposes:\n\n- `apidance_call`: one generic caller for every Apidance Twitter endpoint.\n- `twitter_*` tools: one generated MCP tool per documented endpoint.\n- MCP resources with the endpoint registry, short usage notes, and public data-cleaning scripts.\n- A bundled Codex Skill at `skills/apidance-discover-twitter-team/` for verified Twitter team and ecosystem discovery.\n\nThe implementation uses only Node.js built-ins, so Codex, Claude Code, Claude Desktop, and other MCP clients can run it without installing an SDK package.\n\nPackage name: `@apidance/mcp`\n\nExecutable command: `apidance-mcp`\n\n## Requirements\n\n- Node.js 18.18 or newer.\n- An Apidance API key.\n- Optional Twitter/X `auth_token` cookie value when using account actions such as create tweet, retweet, like, bookmark, home timeline, or notifications.\n\n## Quick Start\n\nFor end users, the recommended install mode is `npx` after this package is published to npm:\n\n```bash\nnpx -y @apidance/mcp\n```\n\nOr install it globally:\n\n```bash\nnpm install -g @apidance/mcp\napidance-mcp\n```\n\nFor local development from source:\n\n```bash\ncd /Users/guang/ws/web3/apidance/apidance-mcp\nnpm run check\nAPIDANCE_API_KEY=your-apidance-api-key npm start\n```\n\nList exposed tools:\n\n```bash\nnpm run list-tools\n```\n\nData-cleaning scripts are bundled under `public-scripts/data-cleaning/` and exposed as MCP resources:\n\n- `apidance://twitter/data-cleaning`\n- `apidance://twitter/scripts/clean-user-tweets.mjs`\n- `apidance://twitter/scripts/twitter-normalize.mjs`\n\nThe Twitter team discovery Skill is bundled under `skills/apidance-discover-twitter-team/` and uses the shared normalization helpers from `public-scripts/data-cleaning/twitter-normalize.mjs`.\n\nRun the Skill service from the package root:\n\n```bash\nnode skills/apidance-discover-twitter-team/scripts/run-discovery.mjs --help\n```\n\nIf you copy the Skill folder into `~/.codex/skills`, keep `@apidance/mcp` installed and set `APIDANCE_MCP_PACKAGE_ROOT` to the package root when running its scripts.\n\nSkill documentation:\n\n- [Bundled Skill list](./skills/README.md)\n- [Twitter team discovery Skill README](./skills/apidance-discover-twitter-team/README.md)\n- [Twitter team discovery Skill instructions](./skills/apidance-discover-twitter-team/SKILL.md)\n\nSkill resources:\n\n- `apidance://twitter/skills`\n- `apidance://twitter/skills.zh-CN`\n- `apidance://twitter/skills/apidance-discover-twitter-team/SKILL.md`\n- `apidance://twitter/skills/apidance-discover-twitter-team/README.md`\n\n## Environment\n\n| Variable | Required | Description |\n| --- | --- | --- |\n| `APIDANCE_API_KEY` | yes | Sent as request header `apikey`. |\n| `APIDANCE_AUTH_TOKEN` | no | Sent as request header `AuthToken`. Use the value of your Twitter/X `auth_token` cookie only when operating your own account. |\n| `APIDANCE_USE_PROXY` | no | Sent as request header `UseProxy`, for example `http://username:password@host:port`. |\n| `APIDANCE_TIMEOUT_MS` | no | Per-request timeout. Defaults to `30000`. |\n\nPer-call tool arguments `api_key`, `auth_token`, `use_proxy`, and `timeout_ms` can override environment values.\n\n## Codex Setup\n\nAdd this to `~/.codex/config.toml` or the project-level Codex config you use:\n\n```toml\n[mcp_servers.apidance_mcp]\ncommand = \"npx\"\nargs = [\"-y\", \"@apidance/mcp\"]\nstartup_timeout_sec = 30\n\n[mcp_servers.apidance_mcp.env]\nAPIDANCE_API_KEY = \"your-apidance-api-key\"\nAPIDANCE_AUTH_TOKEN = \"\"\nAPIDANCE_TIMEOUT_MS = \"30000\"\n```\n\nRestart Codex after editing config.\n\nIf you are running from a local source checkout instead of npm, use:\n\n```toml\n[mcp_servers.apidance_mcp]\ncommand = \"node\"\nargs = [\"/Users/guang/ws/web3/apidance/apidance-mcp/bin/apidance-mcp.js\"]\nstartup_timeout_sec = 30\n```\n\n## Claude Code Setup\n\nLocal user/private scope:\n\n```bash\nclaude mcp add --transport stdio \\\n  --env APIDANCE_API_KEY=your-apidance-api-key \\\n  --env APIDANCE_AUTH_TOKEN= \\\n  apidance-mcp \\\n  -- npx -y @apidance/mcp\n```\n\nProject scope via `.mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"apidance-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@apidance/mcp\"],\n      \"env\": {\n        \"APIDANCE_API_KEY\": \"${APIDANCE_API_KEY}\",\n        \"APIDANCE_AUTH_TOKEN\": \"${APIDANCE_AUTH_TOKEN:-}\"\n      },\n      \"timeout\": 600000\n    }\n  }\n}\n```\n\nClaude Code will ask you to approve project-scoped MCP servers from `.mcp.json`.\n\n## Tool Usage\n\nGeneric call:\n\n```json\n{\n  \"endpoint\": \"simple_search\",\n  \"query\": {\n    \"q\": \"eth\",\n    \"sort_by\": \"Latest\"\n  }\n}\n```\n\nGraphQL GET convenience:\n\n```json\n{\n  \"endpoint\": \"graphql_search_timeline\",\n  \"variables\": {\n    \"rawQuery\": \"eth\",\n    \"count\": 40,\n    \"cursor\": \"\",\n    \"querySource\": \"typed_query\",\n    \"product\": \"Latest\",\n    \"includePromotedContent\": false\n  }\n}\n```\n\nTweetDetail for article tweets:\n\n```json\n{\n  \"endpoint\": \"graphql_tweet_detail\",\n  \"variables\": {\n    \"focalTweetId\": \"1694634492403843248\",\n    \"referrer\": \"profile\",\n    \"controller_data\": \"DAACDAABDAABCgABAAAAAAAAAAAKAAkAAAABFPY0+AAAAAA=\",\n    \"with_rux_injections\": false,\n    \"includePromotedContent\": false,\n    \"withCommunity\": true,\n    \"withQuickPromoteEligibilityTweetFields\": true,\n    \"withBirdwatchNotes\": true,\n    \"withVoice\": true,\n    \"withV2Timeline\": true\n  },\n  \"fieldToggles\": {\n    \"withArticleRichContentState\": true,\n    \"withArticlePlainText\": true\n  }\n}\n```\n\nBusiness profile affiliated accounts:\n\n```json\n{\n  \"endpoint\": \"graphql_user_business_profile_team_timeline\",\n  \"variables\": {\n    \"userId\": \"783214\",\n    \"cursor\": \"\",\n    \"count\": 100,\n    \"teamName\": \"NotAssigned\",\n    \"includePromotedContent\": false,\n    \"withClientEventToken\": false,\n    \"withVoice\": true\n  }\n}\n```\n\nGraphQL POST convenience:\n\n```json\n{\n  \"endpoint\": \"graphql_create_tweet\",\n  \"auth_token\": \"your-auth-token-cookie-value\",\n  \"variables\": {\n    \"tweet_text\": \"hello from MCP\",\n    \"dark_request\": false,\n    \"media\": {\n      \"media_entities\": [],\n      \"possibly_sensitive\": false\n    },\n    \"semantic_annotation_ids\": [],\n    \"includePromotedContent\": false\n  }\n}\n```\n\nUpload media:\n\n```json\n{\n  \"endpoint\": \"upload_media\",\n  \"file_path\": \"/absolute/path/to/image.png\",\n  \"mime_type\": \"image/png\"\n}\n```\n\nCheck remaining calls:\n\n```json\n{\n  \"endpoint\": \"remaining_calls\"\n}\n```\n\n## Documentation\n\n- [Installation guide](./docs/INSTALL.md)\n- [Endpoint reference](./docs/API.md)\n- [Data cleaning scripts](./docs/DATA_CLEANING.md)\n- [Bundled Skills](./skills/README.md)\n- [Publishing guide](./docs/PUBLISH.md)\n- [Security notes](./docs/SECURITY.md)\n\n## Source Documentation\n\nThis package is based on the Apidance public docs:\n\n- https://doc.apidance.pro\n- https://doc.apidance.pro/llms.txt\n\nOnly the `twitter-api` menu is included.\n","readmeFilename":"README.md"}