Build and edit your website in Xodia, a visual website builder for real code (Vite, React, HTML).
Connect Remote server
claude mcp add --transport http xodia https://app.xodia.ai/mcp
{
"mcpServers": {
"xodia": {
"url": "https://app.xodia.ai/mcp"
}
}
}
{
"servers": {
"xodia": {
"type": "http",
"url": "https://app.xodia.ai/mcp"
}
}
}
Settings > Connectors > Add custom connector
URL: https://app.xodia.ai/mcp
Tools 55 found in our last check
list_projectsLists the user's website projects on this Xodia host (named on the first line) with when each was last opened. Projects marked locked are past the plan's project limit and can't be opened or edited; pick an open one or ask the user to upgrade in Xodia.
create_projectCreates a new website project. Xodia supports React + Vite and plain HTML sites: by default it starts from the Xodia template (React + Vite: Vite + React Router + Tailwind v4); `template` "html-vite" starts a plain HTML site with Vite instead. Other frameworks (Next.js, Astro, R…
open_workspaceOpens the project for work and returns the Xodia link to share with the user. It is ready at once: the site runs in the user's browser, so there is nothing to start or wait for.
list_filesLists project files with their sizes, one per line as "path (12.3 KB)" (respects .gitignore; up to 1000 files). Optional glob like src/**/*.tsx or public/**/*.{png,jpg}.
read_fileReads a text file with line numbers. Use offset/limit (1-based lines) for long files. The last line gives the file's version: pass it as base to write_file or edit_file so a write is refused if someone changed the file after your read.
write_fileCreates or overwrites a file with the full content. Prefer edit_file for changes to existing files. Pass base (the version read_file gave) when overwriting a file you read, or null for a file that must not exist yet: if the file changed meanwhile, the write is refused with file_…
edit_fileReplaces old_string with new_string in a file. old_string must match exactly (including whitespace) and be unique unless replace_all is true. Pass base (the version read_file gave) to have the edit refused with file_changed if someone changed the file after your read; then read…
search_filesSearches file contents with a regular expression (ripgrep). Returns path:line: text.
delete_fileDeletes a file or folder from the project.
move_fileMoves or renames a file or folder.
run_checkRuns "typecheck" (TypeScript, fast), "build" (production build, slower), "design" (instant static scan for design tells: px sizes, gradient text, purple gradients, emoji or text-glyph icons, transition-all, scale(0) entrances, missing focus-visible styles, repeated icon cards, t…
get_logsReturns the end of the preview's log: the bundle and page errors of the preview open in Xodia, or of Xodia's headless browser when nobody has it open. If it answers that it needs the project open in Xodia, ask the user to open it and don't call it again in this task. Sourcemap w…
get_selectionReturns the element the user selected in the Xodia preview (source file:line:column, tag, text, route, seconds since it was selected). On a Sass or CSS-in-JS site it also lists the element's styles linked to a site setting, theme value or prop, with the file and line where each…
get_projectWhat Xodia knows about a project: the Xodia host it lives on (xodiaHost), how its preview runs (preview), framework, styling, CMS, host, editing tier, the branch the workspace has open, whether that branch is view only on the workspace's plan (branchViewOnly), whether the plan i…
save_checkpointTakes a restore point: commits every change on the branch since the last one, like Push to Git in Xodia (a site imported from GitHub gets it pushed to its repo). Changes are already saved without it, so call it only when the user asks for a restore point or a push. Refused on th…
list_checkpointsLists restore points, newest first.
restore_checkpointReturns the site to an earlier restore point (list_checkpoints). Changes made since the last restore point become a restore point of their own first, so nothing is lost.
get_next_requestWaits for the next change the user asked for in Xodia (up to wait_seconds) and claims it. Do the work, then call reply_to_request. Call again to keep listening.
reply_to_requestPosts a message to the user in Xodia for a request. Use status "working" for progress updates, "done" when finished, "failed" if you tried and could not finish (say why). Leaving it unchanged on purpose because a rule says so is "done", with a message that starts "No change:" an…
get_requestCurrent status of a request. Call before save_checkpoint: if the user cancelled it, drop the work and take the next request.
list_commentsLists review comments people left on the site in Xodia, newest change first, as text: each thread's id, page, screen size (with the canvas width and which take_screenshot viewport to check it at), the element it is on (source, tag and text) or empty space, and every comment with…
reply_to_commentReplies on an open review thread from list_comments, as the user's AI (Xodia shows "AI for" the user). Use it to answer a question or say what you changed, in plain words for the site owner (no file paths or code). To mention a workspace member, write @[Name](user:id) with an id…
get_site_planReads the site plan (.xodia/plan.json) on a branch: a short summary (title, pages by status, the sitemap tree with each page's status and section count, the shared nav and footer, motion, inspiration sites still to study, pages changed since they were wireframed or built, open p…
update_site_planWrites the site plan (.xodia/plan.json) on a branch, saved at once like every edit. Send one of: plan with the whole plan or only the top-level fields you change (brief, inspiration, brand, audience, goals, motion, sitemap, pages, globals, library; the rest keeps its values; pag…
sync_site_planBrings the site plan (.xodia/plan.json) in line with the site on a branch and writes it, the same as the Plan tab's sync. Xodia reads the site's files (the latest edits included): pages and their paths, the top-level sections on each page by their data-section ids and in order,…
study_reference_siteReads one inspiration site from the project's site plan for you and returns a compact study: title, meta description, headings outline, navigation labels, a short text sample, declared colours (theme-color, CSS custom properties) and the most used colours in its same-site CSS, f…
copy_imported_imagesCopies the images a site made with Import a website saved under public/ (a project with IMPORTED.md) into the project you are rebuilding it in, at the same paths, so /assets/... image URLs keep working. Without paths it copies every image the import saved that this project doesn…
get_skillReturns one of Xodia's skills (step-by-step instructions for a kind of work) for the project you are working on: core skills, plus the stack packs get_project lists for that project. Requests, prompts and the router name the skills and packs to follow; load each one when you sta…
list_collectionsLists the site's Xodia CMS collections (content/<id>/collection.json) with their item counts, item URLs and fields, other content the Content tab reads another way (folders, data/, Decap), whether the site has the CMS kit, the plan's CMS limits, whether Xodia collections (readOn…
get_collectionReads one collection: its settings (name, singular, plural, URL folder, sort), groups, every field with its type, rules and options, the collection page settings (SEO and share templates, JSON-LD, custom code), the item count, the CMS kit state and the collection page (file, rou…
create_collectionCreates a collection: from blank (a required Title field) or a starter (Blog posts, Projects, Team, Products, Events, Jobs, Testimonials, FAQ, with fields and sample items), plus extra fields and page settings. On a Xodia template or Vite React site it also installs the CMS kit…
update_collectionChanges a collection: settings (name, singular, plural, urlFolder, which moves the item pages with their route, the links to them and redirects for published ones, reservedSlugs, sort, manualOrder, groups, translatable and translatedOnly for the site's languages), collection pag…
list_itemsLists a collection's items with search (q), status, filters (field, op eq, ne, contains, set or unset, value) and sort ("-publishedAt"), a page at a time (pageSize up to 100), with the total. Long text is cut: get_item reads one whole. Drafts included. With locale (a language fr…
get_itemReads one item whole: slug, status, dates, order and every value, with its file path. With locale: the item in that language (translations over the default values), its translation file and state, which fields are translatable and which still need a translation. Reads only.
create_itemsCreates up to 50 items in one call, each checked against the collection's fields (required, types, options, validation, references to existing items or items in this call). Items that fail are listed with their index and field problems and the others are still written: send only…
update_itemChanges one item: values (only the ones you send; null or "" clears one), newSlug (renames the file and its URL), draft (false publishes it with the site), publishedAt, order. Checked against the fields like create_items; a wrong type is refused with the field and why. With loca…
delete_itemsDeletes up to 100 items by slug; slugs not found are listed. Confirm with the user before deleting content they wrote. Writes go to the branch the workspace has open, the same as the Content tab. Saved at once, like every edit in Xodia; pushing to Git and publishing stay the use…
list_pagesLists the site's pages and folders on a branch: each page's address, file and whether it has a variable part (collection pages and other :slug routes), each folder (explicit or from page addresses and collection URL folders) with its name, folder page, page count and the collect…
create_pageAdds a page the way the Pages panel does. On a Xodia template site: a page file that mirrors its folders (src/pages/services/web/Design.tsx) and its route in src/routes.tsx at /<parent>/<slug>, inside the site's layout, with a starter section (data-section="page-header": the tit…
move_pageMoves or renames a page (another folder, another slug, or both) in one change: its route, its file on template sites (src/pages mirrors the folders, imports follow) and plain HTML sites (<slug>/index.html or <name>.html), every internal link to it in the site's code and CMS item…
delete_pageDeletes a page the way the Pages panel does, in one change: its route (src/routes.tsx on a Xodia template site, the routes file on a React site with routes in code) and its file unless another route uses it, or its .html file on a plain HTML site. The home page stays. The answer…
create_folderCreates an empty folder (an address segment such as /services; a folder is not a file), kept in .xodia/folders.json so it shows in the Pages panel and the plan before any page is in it. Folders that pages or collections use exist without this. Addresses are lowercase words with…
update_folderRenames a folder (name) or moves it (to: a new slug or parent), with everything under it in one change: every page's route and file, sub folders, collections whose URL folder is inside it, the internal links to all of them, redirects for the published ones and the site plan. dry…
delete_folderDeletes a folder. An empty one just goes; one with pages is refused (folder_not_empty, listing them) unless withPages is true, which deletes every page under it with its route and file (template sites; ask the user first, and dryRun lists them). A folder holding a collection's i…
list_localesLists the site's languages (Xodia Languages): whether languages are set up, the default language, every other language with its code, name, direction (ltr or rtl), address prefix (/<code>/) and how many texts are translated, translated page addresses (paths), the site address us…
get_translationsReads what a language still needs, for one page or one CMS collection. page: the page is rendered in that language in a real browser and every translatable text on it comes back as { text, translation }, translation null where it is missing; text is the key to send back to set_t…
set_translationsWrites translations for one language, the same as typing on the canvas in that language. Saved at once, like every edit in Xodia; pushing to Git and publishing stay the user's. entries: page texts, each { text, value } with text exactly as get_translations gave it and value the…
list_formsLists the site's Xodia Forms (forms that post to Xodia, whose messages the owner reads in the Content tab): each form's id, name, status (active or paused), the file and line it is in, recipients, the Turnstile spam check, notifications (each message or a daily digest), webhooks…
connect_formTurns a form in the site's code into a Xodia form, the same way as Send to Xodia Forms in Xodia's Settings panel: it writes action, method="post", data-xodia-form, success and error text, a hidden spam field and the page field onto the form, adds the site helper, and makes the f…
list_submissionsReads the messages visitors sent through the site's Xodia forms, newest first, a page at a time (up to 50; pass nextCursor for older ones): each message's form, fields, page, when it came and whether it is read or spam. Spam is left out unless includeSpam is true. Read only: it…
deploy_statusThe latest deploy on the site's host (Vercel, Netlify, Cloudflare) for a branch: state, address and log link. Check it after the user publishes. Each row is one check (a Worker, a Pages project, Vercel, Netlify or CI); a failed one includes its details. Failed deploys from a con…
deploy_logsThe last lines of a Cloudflare Workers Builds, Vercel or Netlify build log (deploy id from deploy_status). Use it to fix a failed build; the fix goes live when the user publishes again. Needs a plan that includes host connections.
run_seo_testTests a live page with Google PageSpeed Insights: SEO, performance, accessibility and best practices scores, Core Web Vitals and the failed checks. Uses one of the workspace's monthly SEO tests, so run it once before fixing and once after the user publishes, never in a loop. url…
get_seo_reportReads a PageSpeed Insights result without using a test: the latest finished test of the project (or of url), or a given runId (for example one run_seo_test or a Fix with AI request named). Returns scores, Core Web Vitals and the top failed checks with a few affected items, plus…
take_screenshotRenders a page of the preview in a real browser and returns the image plus any console errors. Use it to check your work visually, at mobile size too. Pages are rendered by Xodia's headless browser within a monthly allowance. When it answers that screenshots aren't available, or…
Details
| Endpoint | https://app.xodia.ai/mcp (Streamable HTTP) |
| First published | 8 Nov 2026 |
| Last updated | 8 Nov 2026 |
| Registry name | ai.xodia/xodia |
More developer tools servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
