Skip to content

Xyla AI

ai.xyla/xylaxyla.aistreamable-httpv1.0.0Scanned

Social posts for Shopify and WooCommerce stores: approve posts, see results, change settings.

20 tools: 2 can delete or cancel things, 10 change things and 8 only read.

Tools: 2 delete, 0 irreversible, 10 write, 8 read.
  • Reads private data · 0
  • Reads text others write · 7
  • Can send data out · 7
  • 3 findings

Anlyon alternative

12 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

20 tools

Deletes or cancels 2Claude Code: deny
  • reject_postRejects one post in this Xyla shop that is waiting for approval, by its ID from pending_approvals.Can send data outNo findings

    Why it is in this group

    • The name "reject_post" says "reject": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • outboundThe name "reject_post" says "reject" and "post": it writes something other people read.
    Description, as the server wrote it
    Rejects one post in this Xyla shop that is waiting for approval, by its ID from pending_approvals. The post is cancelled and will not be published.

    Annotations the server declares

    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: false
  • set_autopilotTurns Xyla autopilot on or off for this shop.No findings

    Why it is in this group

    • The name "set_autopilot" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Turns Xyla autopilot on or off for this shop. With autopilot on, Xyla makes and schedules posts by itself. mode include (the default) keeps posts already made and adds them to the schedule. mode fresh DELETES every post not yet scheduled, including posts the merchant made by hand, then builds a new schedule: call it first without confirm_delete_count to get the number of posts it deletes, tell the merchant, and only after they agree call again with confirm_delete_count set to that number. Turning autopilot off unschedules upcoming posts and deletes nothing.

    Annotations the server declares

    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
Changes things 10Claude Code: ask
  • approve_first_batchApproves this Xyla shop's first batch of posts as a whole.No findings

    Why it is in this group

    • The name "approve_first_batch" says "approve": a word for a change.
    Description, as the server wrote it
    Approves this Xyla shop's first batch of posts as a whole. When the shop can publish, this also turns autopilot on in include mode (the posts already made are scheduled and nothing is deleted), and releases posts held for review into the schedule. Posts go out at their scheduled times, not straight away.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
  • approve_postsApproves posts in this Xyla shop that are waiting for approval, by their IDs from pending_approvals.Can send data outNo findings

    Why it is in this group

    • The name "approve_posts" says "approve": a word for a change.

    What it can reach

    • outboundThe name "approve_posts" says "approve" and "post": it writes something other people read.
    Description, as the server wrote it
    Approves posts in this Xyla shop that are waiting for approval, by their IDs from pending_approvals. Each approved post takes the next free slot in the schedule; nothing publishes straight away. Posts in the shop's first batch cannot be approved one by one: use approve_first_batch for those.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
  • change_settingsChanges the shop's Xyla settings in one setting group (or a few related ones) and returns each value before and after plus an undo id.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Changes the shop's Xyla settings in one setting group (or a few related ones) and returns each value before and after plus an undo id. Every change in a call applies, or none does. Read the group with get_settings first, and confirm the change with the merchant before calling this. Changes affect posts made from now on, not posts already scheduled or published.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
  • confirm_post_fixRuns a post fix that request_post_fix started in this Xyla shop, with the change the merchant asked for.Can send data outNo findings

    Why it is in this group

    • The name "confirm_post_fix" says "post": a word for a change.

    What it can reach

    • outboundThe name "confirm_post_fix" says "post": it sends or publishes something to other people.
    Description, as the server wrote it
    Runs a post fix that request_post_fix started in this Xyla shop, with the change the merchant asked for. Call post_fix_status first and tell the merchant whether it is free or what it costs; a fix that is not free uses the shop's credits. The new image or video replaces the post's media when it is ready.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
  • connect_accountMakes a one-use link that connects a social account to this Xyla shop, or reconnects a broken one.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Makes a one-use link that connects a social account to this Xyla shop, or reconnects a broken one. Give the merchant the link to open in their browser; it works once and expires in 10 minutes, and asks for the store's email. To reconnect an account from connection_status, pass its social_media_account_id. Instagram has two ways in: instagram_direct (Instagram Login, the usual choice) and instagram (through a Facebook Page, needed for Stories and product tags). Disconnecting stays on the Xyla website.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • readOnlyHint: false
  • post_fix_statusReports where a post fix from request_post_fix stands in this Xyla shop: still being checked, free (Xyla found a problem on its side), or how many credits it costs.Can send data out1 finding

    Why it is in this group

    • The name "post_fix_status" says "post": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • outboundThe name "post_fix_status" says "post": it sends or publishes something to other people.

    Findings

    • Warn

      The server marks "post_fix_status" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "post_fix_status" says "post": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Reports where a post fix from request_post_fix stands in this Xyla shop: still being checked, free (Xyla found a problem on its side), or how many credits it costs. After confirm_post_fix, reports whether the fix is running, done or failed.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • preview_storeShows what Xyla would post for an online store, with no Xyla account.Reads text others writeCan send data out1 finding

    Why it is in this group

    • The name "preview_store" says "preview": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "show" and "post": it reads posts, which other people can write.
    • untrusted-inputThe input takes a URL (input.url), and the tool reads it: it reads web pages, which anyone can write.
    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.

    Findings

    • Warn

      The server marks "preview_store" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "preview_store" says "preview": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Shows what Xyla would post for an online store, with no Xyla account. Give it the store's web address (Shopify or WooCommerce). Xyla reads the store's brand (logo, colours, niche) and makes 3 sample social media posts from the store's own product photos, with captions. Returns a preview token at once; the posts take about 3 minutes and the card shows them as they finish. A store previewed in the last 7 days gets its earlier samples back. When no card is shown, call preview_status with the token to follow it. A store that already uses Xyla gets a sign-in link instead.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • readOnlyHint: false
  • request_post_fixStarts a fix for one post's image or video in this Xyla shop.Can send data outNo findings

    Why it is in this group

    • The name "request_post_fix" says "request": a word for a change.

    What it can reach

    • outboundThe name "request_post_fix" says "request" and "post": it writes something other people read.
    Description, as the server wrote it
    Starts a fix for one post's image or video in this Xyla shop. Xyla first checks the media for a problem on its side, which makes the fix free; otherwise the fix costs credits. Nothing is changed or charged yet. Then call post_fix_status with the audit_id to learn the cost, tell the merchant, and call confirm_post_fix only once they agree.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
  • undo_changePuts back the settings a change set replaced, using the undo id from change_settings or change_history.No findings

    Why it is in this group

    • The description's first verb is "put": a word for a change.
    Description, as the server wrote it
    Puts back the settings a change set replaced, using the undo id from change_settings or change_history. The whole set is undone, or nothing is. It is refused when a setting has changed again since, so a newer choice is never overwritten.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
  • upcoming_postsLists the posts this Xyla shop will publish, day by day, for up to 7 days from a start date (the shop's today if left out).Can send data out1 finding

    Why it is in this group

    • The name "upcoming_posts" says "post": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • outboundThe name "upcoming_posts" says "post": it sends or publishes something to other people.

    Findings

    • Warn

      The server marks "upcoming_posts" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "upcoming_posts" says "post": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Lists the posts this Xyla shop will publish, day by day, for up to 7 days from a start date (the shop's today if left out). Each post has its platforms, send time in the shop's time zone, type, caption and media links. Posts waiting for approval are not here: use pending_approvals.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
Only reads 8Show 8 read-only tools
  • change_historyLists recent changes to the shop's Xyla settings, newest first: what changed, before and after, who made it (the merchant, Xyla or the assistant), and the undo id to pass to undo_c…No findings

    Why it is in this group

    • The description's first verb is "list": a word for reading.
    Description, as the server wrote it
    Lists recent changes to the shop's Xyla settings, newest first: what changed, before and after, who made it (the merchant, Xyla or the assistant), and the undo id to pass to undo_change.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • connection_statusShows each social account connected to this Xyla shop: connected, expiring soon, expired, needs reconnecting, restricted or disconnected, and how many upcoming posts a broken accou…Reads text others writeNo findings

    Why it is in this group

    • The name "connection_status" says "status": a word for reading.

    What it can reach

    • untrusted-inputThe description's first sentence says "show" and "post": it reads posts, which other people can write.
    Description, as the server wrote it
    Shows each social account connected to this Xyla shop: connected, expiring soon, expired, needs reconnecting, restricted or disconnected, and how many upcoming posts a broken account is blocking.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • get_settingsShows the shop's current Xyla settings for one setting group, with the ids change_settings needs and how each field works.No findings

    Why it is in this group

    • The name "get_settings" says "get": a word for reading.
    Description, as the server wrote it
    Shows the shop's current Xyla settings for one setting group, with the ids change_settings needs and how each field works. Call it without tool to list the setting groups. Read a group before changing it.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • insightsShows how this Xyla shop's published posts performed over the last 7, 14, 30 or 90 days: reach, views, engagement, followers per account, and the top posts.Reads text others writeNo findings

    Why it is in this group

    • The description's first verb is "show": a word for reading.

    What it can reach

    • untrusted-inputThe description's first sentence says "show" and "post": it reads posts, which other people can write.
    Description, as the server wrote it
    Shows how this Xyla shop's published posts performed over the last 7, 14, 30 or 90 days: reach, views, engagement, followers per account, and the top posts. Same data as the Insights page in Xyla.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • pending_approvalsLists the posts in this Xyla shop that wait for the merchant's approval before they are scheduled, 12 per page, with captions and media links.Reads text others writeNo findings

    Why it is in this group

    • The description's first verb is "list": a word for reading.

    What it can reach

    • untrusted-inputThe description's first sentence says "list" and "post": it reads posts, which other people can write.
    Description, as the server wrote it
    Lists the posts in this Xyla shop that wait for the merchant's approval before they are scheduled, 12 per page, with captions and media links. When the shop is still on its first batch, returns that batch as one draft: it is approved as a whole, not post by post.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • preview_statusChecks a store preview started with preview_store: the brand Xyla found and the sample posts finished so far.Reads text others writeNo findings

    Why it is in this group

    • The name "preview_status" says "preview": a word for reading.

    What it can reach

    • untrusted-inputThe description's first sentence says "post": it reads posts, which other people can write.
    Description, as the server wrote it
    Checks a store preview started with preview_store: the brand Xyla found and the sample posts finished so far. done is true once the preview is ready or has stopped. While the preview card is showing it updates itself, so only call this when no card is shown, every few seconds.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • shop_overviewSummarises this Xyla shop: its plan, AI credits left, whether autopilot is on, how many posts wait for approval, the next 3 posts due, and any social account that needs fixing.Reads text others writeNo findings

    Why it is in this group

    • The description's first verb is "summarise": a word for reading.

    What it can reach

    • untrusted-inputThe description's first sentence says "summarise" and "post": it reads posts, which other people can write.
    Description, as the server wrote it
    Summarises this Xyla shop: its plan, AI credits left, whether autopilot is on, how many posts wait for approval, the next 3 posts due, and any social account that needs fixing.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • whoamiShows which Xyla shop this connection acts for and whether it can only read or can also make changes.No findings

    Why it is in this group

    • The name "whoami" says "whoami": a word for reading.
    Description, as the server wrote it
    Shows which Xyla shop this connection acts for and whether it can only read or can also make changes.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data.

Reads private data0
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write7
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out7
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Findings

Matches of fixed checks, with the text they matched.

3 warn
  • The server marks "upcoming_posts" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "upcoming_posts" says "post": a word for a change.

    What this check looks for
  • The server marks "post_fix_status" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "post_fix_status" says "post": a word for a change.

    What this check looks for
  • The server marks "preview_store" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "preview_store" says "preview": a word for reading.

    What this check looks for

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http xyla https://app.xyla.ai/mcp
claude mcp add --transport http xyla https://app.xyla.ai/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__xyla__whoami",
      "mcp__xyla__shop_overview",
      "mcp__xyla__pending_approvals",
      "mcp__xyla__insights",
      "mcp__xyla__connection_status",
      "mcp__xyla__get_settings",
      "mcp__xyla__change_history",
      "mcp__xyla__preview_status"
    ],
    "ask": [
      "mcp__xyla__upcoming_posts",
      "mcp__xyla__change_settings",
      "mcp__xyla__undo_change",
      "mcp__xyla__connect_account",
      "mcp__xyla__approve_posts",
      "mcp__xyla__approve_first_batch",
      "mcp__xyla__request_post_fix",
      "mcp__xyla__post_fix_status",
      "mcp__xyla__confirm_post_fix",
      "mcp__xyla__preview_store"
    ],
    "deny": [
      "mcp__xyla__reject_post",
      "mcp__xyla__set_autopilot"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as xyla. Review it before you use it.

Capability tags behind 13 rules
  • mcp__xyla__shop_overview untrusted-input
  • mcp__xyla__upcoming_posts outbound
  • mcp__xyla__pending_approvals untrusted-input
  • mcp__xyla__insights untrusted-input
  • mcp__xyla__connection_status untrusted-input
  • mcp__xyla__connect_account untrusted-input
  • mcp__xyla__approve_posts outbound
  • mcp__xyla__reject_post outbound
  • mcp__xyla__request_post_fix outbound
  • mcp__xyla__post_fix_status outbound
  • mcp__xyla__confirm_post_fix outbound
  • mcp__xyla__preview_store untrusted-input, outbound
  • mcp__xyla__preview_status untrusted-input

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/ai.xyla/xyla/verify?hash=59ea19d51d4d7394d5a5bc33aacd5618c8682278313cf205ec1f1ff64d942452" | jq -e '.changed == false'

Pinned hash 59ea19d51d4d, from Oct 22, 2026, 21:20 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/ai.xyla/xyla/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for ai.xyla/xyla
[![anlyon.dev](https://anlyon.dev/badge/ai.xyla/xyla.svg)](https://anlyon.dev/servers/ai.xyla/xyla)

Source: MCP Registry. Synced Oct 22, 2026, 22:17 UTC.