EasyStory connector for Claude
The EasyStory connector lets Claude (and any MCP-compatible assistant) read and edit your EasyStory360 stories: interactive 360° and mixed-reality experiences made of scenes and events (texts, images, videos, sounds, questions, puzzles, links…). You describe what you want; the assistant reads your stories and makes the changes for you, with your account.
Adding the connector
claude.ai and the Claude app: Settings → Connectors → "Add custom connector", URL https://mcp.easystory360.tools/mcp (leave the advanced options empty), then "Connect". Depending on your Claude plan, only an organization owner can add a custom connector.
Claude Code: create a personal token in your EasyStory profile (Connections section, "Connect an AI assistant"), then run the command it shows, which looks like:
claude mcp add -s user --transport http easystory https://mcp.easystory360.tools/mcp --header "Authorization: Bearer esk_…"Without a token, claude mcp add --transport http easystory https://mcp.easystory360.tools/mcp then /mcp opens the same EasyStory sign-in page.
Other MCP assistants: URL https://mcp.easystory360.tools/mcp, OAuth sign-in, or a personal token in the Authorization: Bearer esk_… header.
Signing in with your EasyStory account
The first time, an EasyStory page opens: sign in as in the editor (email and password, Google, Apple or Microsoft), then allow the application. Your password stays on the EasyStory page: the assistant never receives it.
You need an EasyStory account: accounts are created in the editor. Device accounts (headsets, tablets) cannot authorize an application.
Tools
Changes are made to the story's working copy, the one edited in the editor. Visitors and headsets only get them once the story is published again (publish_story, or from the editor).
Reading
list_storiesLists the account's stories: title, scene count, mode (360 or mixed reality), last update, publication.get_storySummarizes a story: scenes in play order, durations, variables, languages, options and current revision.get_sceneReturns the full content of a scene and its events, or a compact summary.list_libraryLists the media of the account library (images, videos, sounds, 3D objects…).list_event_typesDescribes the event types that can be added, their settings and default values.list_quizzesLists the quizzes of the "My quizzes" bank that a quiz draw event can use.describe_optionsDescribes the story or scene options that can be changed: type, default value, bounds, allowed values, and those left to other tools or to the editor.list_zonesLists the room zones of a mixed-reality story (a scene's zones and those of the story's room) and the events using them.
Stories, scenes and events
create_storyCreates a 360 story with its scenes (library images or videos), like the editor's "New story" window, and can link them together.create_sceneAdds a scene at the end of a story, like the editor's "Add a scene".update_sceneChanges a scene's title, media, duration, loop, or makes it the starting scene.update_story_optionsChanges a story's options like the editor's options window: title, description, thumbnail, sound, colors, font, start, pause, gyroscope, gaze, panel curvature, point title style, pointing assist.update_scene_optionsChanges a scene's options: starting view, view limits, timeline, ambient sound, volumes, 3D object, lighting, and in mixed reality the room described in the scene and its link to another scene.delete_scenePermanently deletes a scene and its events (confirmation required).create_eventAdds an event to a scene, built like the editor's "Add an event" panel.update_eventChanges an event's settings: title, timing, placement, type-specific properties.duplicate_eventCopies an event in the same scene, like the editor's Duplicate action.move_eventMoves an event within its scene's event list.delete_eventPermanently deletes an event and the links pointing to it (confirmation required).set_scene_titleChanges the title of a scene.
Event folders
create_event_folderAdds a folder (or subfolder) to a scene's event list and timeline, like in the editor.update_event_folderRenames a folder, changes its color, moves it into another folder or changes its place.delete_event_folderRemoves a folder: nothing else is deleted, its content moves up one level.move_events_to_folderFiles events into a folder (created from its path if needed) or puts them back at the scene root.
Room zones (mixed reality)
create_zoneAdds a trigger zone to a mixed-reality scene or to the story's room, like the editor's "Add a zone" button.update_zoneChanges a zone's shape, position or size (zones copied from a library room stay read-only).delete_zonePermanently deletes a zone; refused while events use it unless detaching is asked (confirmation required).
Event conditions and animations
set_event_conditionsSets an event's conditions (another event opened, an answer chosen, a variable, a scene visited…) and the variables set when it opens or closes.set_event_motionAnimates an event over time (position, size, rotation, opacity, tint, image, effect parameter) and sets its appear and disappear effects in mixed reality.
Story map and plans
get_story_mapReads the story map: settings, levels and scene markers.set_story_map_settingsTurns the map on for visitors, shows it at the start or keeps it always available.create_map_levelAdds a level: a geographic map or a plan on an image.update_map_levelChanges a level: name, type, background image, GPX track, visibility, order.delete_map_levelDeletes a level and its markers (confirmation required).set_map_markerPlaces or changes a scene's marker on a level.delete_map_markerRemoves a scene's marker from a level.
Authoring guide
check_storyChecks a story the way players will play it: broken references, unreachable scenes, variables never set, conditions ignored on headsets, unsupported features.get_authoring_guideExplains how players (web, headsets, tablet, kiosk) play a story: how events open, conditions, variables, scoring, puzzles, mixed reality, publishing, and what each app supports.
Translations
get_story_translationsA story's languages and translated texts, side by side with the originals, with what is left to translate.set_story_translationsWrites a language's translated texts (welcome message, scenes, events, answers).add_story_languageAdds a translation language to a story (and to the account).remove_story_languageDeletes a story's translation in one language.
Questionnaires and event groups
list_questionnairesLists the scoring questionnaires, their questions, their max points and the events using them.create_questionnaireAdds a scoring questionnaire (name, total, clues).update_questionnaireRenames a questionnaire, changes its total or clues.delete_questionnaireDeletes a questionnaire; refused while used unless its references move to another one (confirmation required).assign_questionnaireAssigns questions, puzzles, debriefings or bonuses to a questionnaire.list_event_groupsLists the event groups and the events opening them.create_event_groupCreates an event group, then opened by an "Event Group" event.update_event_groupRenames a group, reorders or removes its events.delete_event_groupDeletes an event group; refused while an event opens it (confirmation required).add_group_eventAdds an event to a group: new or copied from a scene event.update_group_eventChanges an event of a group, like update_event.
Library
update_mediaEdits a media's sheet (name, description, tags, type).delete_mediaDeletes a media from the library; refused while a story, a publication or the headset welcome uses it (confirmation required).stream_mediaSends library videos that are not in streaming (never sent or failed) to the streaming service, language versions included.list_library_tagsLists the library tags.create_library_tagCreates a library tag.delete_library_tagDeletes a library tag (confirmation required).
My quizzes
get_quizReturns a quiz of the "My quizzes" bank with its questions, their content, translations and version.create_quizCreates an empty quiz in the "My quizzes" bank.update_quizRenames a quiz or changes its description.delete_quizDeletes a quiz and its questions, after confirmation, naming the stories that use it.create_quiz_questionAdds a question to a quiz, checked as in the editor.update_quiz_questionChanges a question (title, content, translations); its version goes up so stories offer the update.delete_quiz_questionDeletes a question from a quiz, after confirmation.move_quiz_questionMoves a question within its quiz.
Devices
list_devicesLists boxes and paired devices: name, box, presence, settings and the state published by headsets.update_headsetRenames a device, puts it in a box and changes its settings (the editor's advanced options).update_boxRenames a box, changes its description, kiosk mode and waiting video.delete_boxDeletes a box; its login account is kept unless explicitly asked (confirmation required).send_headset_commandSends an order to a headset: find, reboot, shut down, install, play, pause, resume or stop a story.
Story variables
list_variablesLists the story's variables (type, values, initial value) and the events using each one.create_variableAdds a variable (boolean, number, list or timer), like the editor's "Variables" window.update_variableRenames a variable (the events using it follow), changes its values or initial value.delete_variableDeletes a variable; refused while events use it (confirmation required).
Media
import_mediaImports an image, sound, video or 3D object (GLB) into the library, from an https URL, a file attached in ChatGPT or an uploaded file.create_upload_linkCreates a private link, valid 30 minutes, where you drop your files from your browser: they enter the library like an import in the editor.list_uploadsLists the files received through your upload links and their state, with the key of each added media.revoke_upload_linkDisables an upload link at once; files already received stay in the library.
Voices, sounds and music (ElevenLabs)
get_elevenlabs_statusTells whether your ElevenLabs account is linked to EasyStory (editor Profile > Connections), its plan and remaining credits.list_voicesLists the voices of your ElevenLabs account, with your default voice and model in the editor.generate_voiceGenerates a voice from a text (your editor settings and pronunciation vocabulary) and adds it to the library.generate_soundGenerates a sound effect from a description and adds it to the library.generate_musicGenerates music (paid ElevenLabs plan) from a style and mood, and adds it to the library.
Publishing
get_publicationTells whether a story is published on the web or for headsets, its link, its access and whether the publication is up to date.publish_storyPublishes a story or updates its publication (web, tablet and headsets), like the editor's publication window.unpublish_storyStops the web publication, the headset publication or both (confirmation required).
Headset welcome and content groups
get_headset_welcomeShows what headsets display when they start: welcome story, images, ambient sound, boxes.list_headset_publicationsLists the account's publications and which ones are for headsets.set_headset_welcomeSets or removes the headsets' welcome story and welcome media, for the account or a box.list_content_groupsLists the content groups (stories and media installed on headsets) and their boxes.get_content_groupDetails one content group: stories, media and boxes.create_content_groupCreates a content group with its stories, media and boxes.update_content_groupRenames a group, adds or removes stories, media and boxes.delete_content_groupDeletes a content group; its stories and media are kept (confirmation required).
Example requests
- "List my stories and tell me which ones have unpublished changes."
- "In the Castle tour story, add a welcome text at the start of the first scene."
- "Import the image https://example.com/map.jpg into my library and show it in the Entrance hall scene."
- "Add a single-choice question about the construction date at the end of the Keep scene."
- "Publish the story on the web and give me the link."
- "Make the Welcome story the welcome story of my headsets."
Limits and good practice
- Media import: at most 8 MB for a file sent directly by the assistant, 100 MB for a file downloaded from an https URL; your account's storage quota applies. Larger files can be imported from the editor's Library page.
- An EasyStory editor that is already open only sees media imported by the assistant after the Library page is reloaded (F5): reload it before changing anything there, otherwise it saves the library again without the new media.
- If the story changed between the assistant's read and its change (in the editor, for example), the change is refused: the assistant reads the story again before retrying, nothing is overwritten.
- Deleting an event, stopping a publication and deleting a content group require explicit confirmation. Stopping a web publication entirely deletes the statistics of the story's web visits, as in the editor.
- The number of requests per minute is limited for each connection.
Privacy and revoking access
- The assistant only accesses the data of the signed-in EasyStory account: its stories, library, quizzes, publications, headset welcome and content groups, with the same rights as in the editor.
- Personal token: revoke it at any time in your EasyStory profile, Connections section, "Connect an AI assistant".
- Account sign-in (claude.ai, ChatGPT, Claude Code without a token): remove the access at any time in your EasyStory profile, Connections section, "Connect an AI assistant", "Authorised apps" card; it is cut immediately. You can also disconnect the connector in your assistant's settings.
Terms of use and privacy policy: https://explorations360.com/cgu-cgv-easystory360.
Support
A question or a problem? Write to contact@explorations360.com.
EasyStory360 · explorations360