{"_id":"@spideriq/mcp-publish","_rev":"3-d317104e5344dab4c42a8bb0bd941055","name":"@spideriq/mcp-publish","dist-tags":{"latest":"1.43.0"},"versions":{"1.25.0":{"name":"@spideriq/mcp-publish","version":"1.25.0","keywords":["spideriq","spiderpublish","mcp","model-context-protocol","cms","content","liquid","templates","claude","ai-assistant"],"author":{"name":"SpiderIQ"},"license":"MIT","_id":"@spideriq/mcp-publish@1.25.0","maintainers":[{"name":"martinshein","email":"martin@di-atomic.com"}],"homepage":"https://github.com/SpiderIQ/SpiderIQ#readme","bugs":{"url":"https://github.com/SpiderIQ/SpiderIQ/issues"},"bin":{"spideriq-mcp-publish":"dist/server.js"},"dist":{"shasum":"571befefd6ddf6ba77005a79384c099ba5b693e6","tarball":"https://registry.npmjs.org/@spideriq/mcp-publish/-/mcp-publish-1.25.0.tgz","fileCount":3,"integrity":"sha512-ilWuqB0yT9Dwf+2NOQJl4mTUWg0DejxH6QfGBnw3rdU/f0St/0le6JjgBhgEk+ewRiAmigew3qaEnMK0kUPv4Q==","signatures":[{"sig":"MEUCIQD6iw/ycvCiSOIBODDFHJv4RlrsjCp2TncuvjXRFphxYgIgESsw9v1iEsXdro3Im06wLrPH6WILMIp/ajb1qwxzj7g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":256945},"main":"dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"d5d1825200b9b1c0e47d5cf8ef44c6816a8eaceb","mcpName":"ai.spideriq/publish","scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","start":"node dist/server.js","typecheck":"tsc --noEmit","prepublishOnly":"echo 'ERROR: Use packages/scripts/publish-package.sh, not raw npm publish. See docs/services/SpiderCLI/LEARNINGS.md' && exit 1"},"_npmUser":{"name":"martinshein","email":"martin@di-atomic.com"},"repository":{"url":"git+https://github.com/SpiderIQ/SpiderIQ.git","type":"git","directory":"packages/mcp-publish"},"_npmVersion":"10.9.7","description":"SpiderIQ Publish MCP Server — content platform tools (pages, posts, templates, components, domains, media) for AI assistants","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.22.4","yaml":"^2.3.4","@spideriq/core":"^1.31.0","@spideriq/skills":">=0.7.0 <1.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","typescript":"^5.3.3","@types/node":"^20.11.0","@spideriq/mcp-tools":"^1.34.0"},"optionalDependencies":{"sharp":"^0.33.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-publish_1.25.0_1781911965805_0.7879926746724166","host":"s3://npm-registry-packages-npm-production"}},"1.35.0":{"name":"@spideriq/mcp-publish","version":"1.35.0","keywords":["spideriq","spiderpublish","mcp","model-context-protocol","cms","content","liquid","templates","claude","ai-assistant"],"author":{"name":"SpiderIQ"},"license":"MIT","_id":"@spideriq/mcp-publish@1.35.0","maintainers":[{"name":"martinshein","email":"martin@di-atomic.com"}],"homepage":"https://github.com/SpiderIQ/SpiderIQ#readme","bugs":{"url":"https://github.com/SpiderIQ/SpiderIQ/issues"},"bin":{"spideriq-mcp-publish":"dist/server.js"},"dist":{"shasum":"d5f9b6c72f12e104042f859927971272c9d85178","tarball":"https://registry.npmjs.org/@spideriq/mcp-publish/-/mcp-publish-1.35.0.tgz","fileCount":3,"integrity":"sha512-oiXMMK7PkUiF2wkA6bpjkq4vVHvHdiX72dDTaX6W/UkXZVoilJz50oHtsKJoSIbz1PZbaDdFfwUi6F3jsL0FJQ==","signatures":[{"sig":"MEYCIQDLw/Jo6Dl2BurS4xb+gyMfuqhCKEFV7D+pnrbqsqwRKgIhAONuv81ODdlBGK5i62o3o2QAJSCO40mRI2bzP1YillIK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":342570},"main":"dist/server.js","type":"module","engines":{"node":">=18.0.0"},"mcpName":"ai.spideriq/publish","scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","start":"node dist/server.js","typecheck":"tsc --noEmit","prepublishOnly":"echo 'ERROR: Use packages/scripts/publish-package.sh, not raw npm publish. See docs/services/SpiderCLI/LEARNINGS.md' && exit 1"},"_npmUser":{"name":"martinshein","email":"martin@di-atomic.com"},"repository":{"url":"git+https://github.com/SpiderIQ/SpiderIQ.git","type":"git","directory":"packages/mcp-publish"},"_npmVersion":"10.9.7","description":"SpiderIQ Publish MCP Server — content platform tools (pages, posts, templates, components, domains, media) for AI assistants","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.22.4","yaml":"^2.3.4","@spideriq/core":"^1.57.0","@spideriq/skills":">=0.7.1 <1.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","typescript":"^5.3.3","@types/node":"^20.11.0","@spideriq/mcp-tools":"^1.68.0"},"optionalDependencies":{"sharp":"^0.33.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-publish_1.35.0_1785072930210_0.5859214926235445","host":"s3://npm-registry-packages-npm-production"}},"1.43.0":{"name":"@spideriq/mcp-publish","version":"1.43.0","mcpName":"ai.spideriq/publish","description":"SpiderIQ Publish MCP Server — content platform tools (pages, posts, templates, components, domains, media) for AI assistants","main":"dist/server.js","type":"module","bin":{"spideriq-mcp-publish":"dist/server.js"},"scripts":{"build":"tsup","dev":"tsup --watch","clean":"rm -rf dist","typecheck":"tsc --noEmit","start":"node dist/server.js","prepublishOnly":"echo 'ERROR: Use packages/scripts/publish-package.sh, not raw npm publish. See docs/services/SpiderCLI/LEARNINGS.md' && exit 1"},"keywords":["spideriq","spiderpublish","mcp","model-context-protocol","cms","content","liquid","templates","claude","ai-assistant"],"author":{"name":"SpiderIQ"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/SpiderIQ/SpiderIQ.git","directory":"packages/mcp-publish"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","@spideriq/core":"^1.76.0","@spideriq/skills":">=0.8.0 <1.0.0","yaml":"^2.3.4","zod":"^3.22.4"},"optionalDependencies":{"sharp":"^0.33.0"},"devDependencies":{"@spideriq/mcp-tools":"^1.85.0","@types/node":"^20.11.0","tsup":"^8.0.1","typescript":"^5.3.3"},"engines":{"node":">=18.0.0"},"publishConfig":{},"_id":"@spideriq/mcp-publish@1.43.0","gitHead":"f909117cc1b0406d8f58ad755c2d40e393518e4b","bugs":{"url":"https://github.com/SpiderIQ/SpiderIQ/issues"},"homepage":"https://github.com/SpiderIQ/SpiderIQ#readme","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-7Ue9P36QFH6B6AG9v1zdfppuHSfEx8qRN7IGb6jEGAmtmSfRcUOagrPv22DbKEVzXAk/u0fvh2321j1Ne9jM9Q==","shasum":"ffd60c00b6ef5d62db681e41673cc6b47a68b5e0","tarball":"https://registry.npmjs.org/@spideriq/mcp-publish/-/mcp-publish-1.43.0.tgz","fileCount":4,"unpackedSize":390888,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCFPxkxI1ExNtnPLAi0SKcbGAGik9RfIZ0+dNhvmRiB4wIhAJAGvTAN18g0aBjQ3R3fNnKB2nGO8+tWNKlmYEkh2npG"}]},"_npmUser":{"name":"martinshein","email":"martin@di-atomic.com"},"directories":{},"maintainers":[{"name":"martinshein","email":"martin@di-atomic.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-publish_1.43.0_1788524737125_0.027108269324147782"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-19T23:32:45.699Z","modified":"2026-09-04T12:25:37.475Z","1.25.0":"2026-06-19T23:32:45.928Z","1.35.0":"2026-07-26T13:35:30.355Z","1.43.0":"2026-09-04T12:25:37.257Z"},"bugs":{"url":"https://github.com/SpiderIQ/SpiderIQ/issues"},"author":{"name":"SpiderIQ"},"license":"MIT","homepage":"https://github.com/SpiderIQ/SpiderIQ#readme","keywords":["spideriq","spiderpublish","mcp","model-context-protocol","cms","content","liquid","templates","claude","ai-assistant"],"repository":{"type":"git","url":"git+https://github.com/SpiderIQ/SpiderIQ.git","directory":"packages/mcp-publish"},"description":"SpiderIQ Publish MCP Server — content platform tools (pages, posts, templates, components, domains, media) for AI assistants","maintainers":[{"name":"martinshein","email":"martin@di-atomic.com"}],"readme":"# @spideriq/mcp-publish\n\n> Atomic MCP server for **SpiderPublish** — the SpiderIQ content platform. Pages, posts, docs, templates, components, domains, media. ~87 tools.\n\nPart of the SpiderIQ MCP catalog. See [@spideriq/mcp](https://npm.spideriq.ai/-/web/detail/@spideriq/mcp) for the kitchen-sink variant that includes every slice (~157 tools) and [@spideriq/cli](https://npm.spideriq.ai/-/web/detail/@spideriq/cli) for the command-line variant.\n\n\n## Which tenant will this write to?\n\nResolution order — first hit wins. Every response reports which rung won as `_tenancy.via`.\n\n| # | Source | How |\n|---|--------|-----|\n| 1 | explicit | `workspace: \"cli_…\"` argument on the call — **always wins, works per-call** |\n| 2 | environment | `SPIDERIQ_WORKSPACE=cli_…` |\n| 3 | binding | a `spideriq.json` in cwd or an ancestor (`SPIDERIQ_WORKSPACE_CWD` overrides where we look) |\n| 4 | sole credential | automatic when exactly one is stored — reported as `via: \"sole-credential\"`, never silent |\n| 5 | — | **REFUSED.** With several tenants and no binding we do not guess. The error carries `retry_with` — merge it into your retry. |\n\n**Running an agency / multiple clients?** Pass `workspace` on every call. `cwd` is a\nper-process fact; tenancy is a per-call fact, so one session can drive many tenants\nwith no `cd`, restart, or reconfiguration.\n\n```js\ncontent_list_pages({ workspace: \"cli_clientA\" })\ncontent_create_page({ workspace: \"cli_clientB\", title: \"…\" })\n```\n\n> ⚠️ **Some IDEs spawn MCP servers with `cwd=/`** (Antigravity does). Nothing\n> cwd-derived is reachable from there, so set `SPIDERIQ_WORKSPACE` or\n> `SPIDERIQ_WORKSPACE_CWD` in the server's `env` block, or pass `workspace` per call.\n\nLost? Call `get_auth_status({topic:\"tenancy\"})` — it returns the active tenant, why it\nwas chosen, every workspace you can reach, and how to switch.\n\n## Why this package\n\n- **Focused toolset.** Only content platform tools, nothing else. Stays well under the ~128 tool limit some IDEs impose (Antigravity, some OpenAI Responses deployments).\n- **Less context noise.** Fewer tool schemas injected into the LLM context means more room for actual work.\n- **Product-aligned.** SpiderPublish-only customers don't see lead-gen, email, or gateway tools.\n\n## Install\n\n```json\n{\n  \"mcpServers\": {\n    \"spideriq-publish\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@spideriq/mcp-publish\"],\n      \"env\": {\n        \"SPIDERIQ_FORMAT\": \"yaml\",\n        \"npm_config_registry\": \"https://npm.spideriq.ai\"\n      }\n    }\n  }\n}\n```\n\nThen restart your IDE (Claude Code, Cursor, Antigravity, Windsurf).\n\n### Mac runtimes with the ~128-tool ceiling\n\nAntigravity / Claude Desktop / some Codex-on-Responses deployments\nsilently drop MCP servers whose `tools/list` exceeds ~128 entries.\nPre-2026-05-22 every team rolled their own filter proxy and dropped\ndifferent tools (the 2026-05-22 Claude Code usability report\ndocumented an authoring session that got stuck because the local\nproxy filter hid `content_create_component` /\n`content_update_settings` / `template_apply_theme` / etc.).\n\nSet `SPIDERIQ_MCP_SLICE=mac-128` in your `.mcp.json` env to opt in to\nthe canonical curated slice — guaranteed under the ceiling forever\nwith the full authoring path (pages, posts, components, settings,\nthemes, deploys, visual-check, forms, media) intact:\n\n```json\n{\n  \"mcpServers\": {\n    \"spideriq-publish\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@spideriq/mcp-publish\"],\n      \"env\": {\n        \"SPIDERIQ_FORMAT\": \"yaml\",\n        \"SPIDERIQ_MCP_SLICE\": \"mac-128\",\n        \"npm_config_registry\": \"https://npm.spideriq.ai\"\n      }\n    }\n  }\n}\n```\n\nNiche tools excluded from `mac-128`: directory/programmatic SEO,\nplaybooks, scroll-sequence helpers, marketplace admin curation,\ncomponent propagation, audit-extras. If you need any of those,\neither omit `SPIDERIQ_MCP_SLICE` (full set) or switch to\n`@spideriq/cli` for the command-line path.\n\n## Authenticate\n\nFirst time only — the server exposes the standard SpiderIQ PAT flow:\n\n1. Ask the agent to call `request_access` with your admin email\n2. Admin approves via email link\n3. Token is saved to `~/.spideriq/credentials.json` and every subsequent call uses it\n\nSee [SpiderCLI authentication docs](../../docs/services/SpiderCLI/CLAUDE.md#pat-authentication-flow) for the full flow diagram.\n\n## Tools included\n\n**Shared (8):** `request_access`, `check_access_status`, `get_auth_status`, `logout`, `list_workspaces`, `health_check`, `get_queue_stats`, `get_api_info`.\n\n**Content (~50):** pages, posts, docs, categories, tags, navigation, settings. Full CRUD + publish/unpublish + scheduled publishing.\n\n**Templates (12):** `template_list`, `template_get`, `template_upsert`, `template_delete`, `template_apply_theme`, `template_list_themes`, `template_get_config`, `template_update_config`, `template_preview`, `template_get_help`, `content_deploy_site`, `content_deploy_status`.\n\n**Components (9):** create/read/update/delete reusable UI components with Shadow DOM isolation, plus versioning, publish, archive.\n\n**Domains (~5):** add domain, verify, set primary, delete, list.\n\n**Media (~2):** upload and list media files.\n\nRun the `template_get_help` tool for a YAML reference of every content type, Liquid filter, and block type — ~2,867 tokens, far cheaper than reading this README in a prompt.\n\n## Version binding\n\nThe package reports a version derived from `@spideriq/core` in its handshake (currently `0.8.3` — the shared API-client version). Bug fixes to shared auth/system tools propagate via a coordinated republish of every slice + the kitchen sink.\n\n## See also\n\n- [@spideriq/mcp](https://npm.spideriq.ai/-/web/detail/@spideriq/mcp) — kitchen-sink MCP (all slices, ~157 tools)\n- [@spideriq/cli](https://npm.spideriq.ai/-/web/detail/@spideriq/cli) — command-line tools for humans\n- [SpiderCLI docs](../../docs/services/SpiderCLI/CLAUDE.md)\n","readmeFilename":"README.md"}