mcp-ikaos-story
Enables creating and modifying iKAOS Story prototype content, including reading context, saving content with optimistic revision control, and managing images, through a stdio MCP server that talks to the authenticated iKAOS Story API.
README
mcp-ikaos-story
Stdio MCP server for creating and modifying iKAOS Story prototype content with Codex or Claude Code.
The MCP talks to the authenticated iKAOS Story API. Users do not need to clone ikaos-content-studio-v2026 or configure a local repository path. Story content/layout JSON lives in Supabase, while fixed workflow documents and source metadata remain read-only behind the API.
Boundaries
get_story_contextreturns the current content revision and authoritativedocsLink.save_story_contentwrites onlycontent_data; source, docs, Story identity, and production metadata cannot be changed.- Every content write requires the exact current revision. A stale edit returns a conflict instead of overwriting newer content.
- Image generation is out of scope. Designers can upload and replace supplied image files through DF Asset Hub.
- Asset Hub does not currently expose list or delete APIs. Removing an image URL from Story content does not remove its R2 object.
- No Supabase service key is distributed to MCP users.
Install
npm install
npm run build
Configure the Story API:
export IKAOS_STORY_API_URL=https://ikaos-content-studio-v2026.vercel.app
export IKAOS_STORY_API_TOKEN=your-project-scoped-api-token
Image uploads use these defaults, so users do not need a df-login token:
export DF_ASSET_UPLOAD_URL=https://df-asset-hub.vercel.app/api/review/figma-images/upload
export DF_ASSET_PROJECT_ID=ikaos-story-2026
Both DF_ASSET_* values are optional overrides. Preview links use IKAOS_STORY_API_URL as their origin. Never commit the Story API token.
Codex
codex mcp add ikaos-story \
--env IKAOS_STORY_API_URL=https://ikaos-content-studio-v2026.vercel.app \
--env IKAOS_STORY_API_TOKEN=your-project-scoped-api-token \
-- node /absolute/path/to/mcp-ikaos-story/dist/src/index.js
The default Asset Hub endpoint and project namespace need no extra Codex env values. Verify with codex mcp list or /mcp.
Claude Code
claude mcp add --transport stdio \
--env IKAOS_STORY_API_URL=https://ikaos-content-studio-v2026.vercel.app \
--env IKAOS_STORY_API_TOKEN=your-project-scoped-api-token \
ikaos-story -- node /absolute/path/to/mcp-ikaos-story/dist/src/index.js
The default Asset Hub endpoint and project namespace need no extra Claude env values. Verify with claude mcp list or /mcp.
Tools
| Tool | Effect |
|---|---|
list_stories |
List Supabase-backed Story status, content revision, preview route, and docs link. |
get_story_context |
Read identity, authoritative document link, current content JSON, and revision. |
get_story_rules |
Read fixed workflow, semantic, Quote, catalog, or producer rules through the API. |
save_story_content |
Create or modify content/layout JSON with optimistic revision protection. |
validate_story |
Validate the current Story identity and required content arrays. |
upload_story_image |
Upload a local PNG/JPG/WebP file, up to 20MB. |
update_story_image |
Replace the file using the scoped image ID returned by upload. |
Content workflow
- Call
get_story_context. - Open
docsLinkand read the required fixed rules withget_story_rules. - Modify only the returned
currentData.datacontent/layout object. - Call
save_story_contentwith the unchanged Story ID andcurrentData.revision. Usenullonly when the Story has no content yet. - Call
validate_story, then check the returned preview URL at 390px and 1280px.
If another client saved first, fetch the latest context and merge intentionally. Do not retry with a replaced revision without reviewing the newer content.
Image workflow
- Choose a valid
imagePromptPackages[].inputBrief.slotIdfrom the Story content. - Call
upload_story_imagewith an absolute local image path. - Use the returned
imageUrlin the Story content and save it withsave_story_content. - Call
update_story_imagewith the returnedimageIdto replace that Asset Hub image. Keep the same file format to reuse the exact R2 key. - To stop using an image, remove its URL from Story content and save the new revision. The R2 object remains until Asset Hub adds a delete API.
Omit viewport for one responsive source. Pass the exact same viewport object to update when using separate mobile or desktop files.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.