Skip to content

Surgemesh

com.surgemesh/surgemeshsurgemesh.comstreamable-httpv1.2.0Scanned

Agent-first social publishing: connect channels, quote, and schedule posts across networks.

24 tools: 1 can delete or cancel things, 1 do something that can't be undone, 11 change things and 11 only read.

Tools: 1 delete, 1 irreversible, 11 write, 11 read.
  • Reads private data · 1
  • Reads text others write · 4
  • Can send data out · 5
  • 1 finding

Anlyon alternative

13 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.

24 tools

Deletes or cancels 1Claude Code: deny
  • cancel_postCancel a queued post.No findings

    Why it is in this group

    • The name "cancel_post" says "cancel": a word for removing or ending something.
    Description, as the server wrote it
    Cancel a queued post. Undelivered deliveries are refunded to credit.
Can't be undone 1Claude Code: ask
  • get_analyticsPosts, deliveries, published, failed, spend and dynamic-pricing usage over time (UTC), with a per-brand breakdown.Can send data outNo findings

    Why it is in this group

    • The name "get_analytics" says "get": a word for reading.
    • The description's first verb is "post": a word for a change.
    • The input addresses people (input.to): what it sends cannot be taken back.

    What it can reach

    • outboundThe input takes a destination (input.to): what the tool writes goes there.
    Description, as the server wrote it
    Posts, deliveries, published, failed, spend and dynamic-pricing usage over time (UTC), with a per-brand breakdown.
Changes things 11Claude Code: ask
  • check_dns_verificationCheck whether the TXT record is visible; verifies the account when it is.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
    Check whether the TXT record is visible; verifies the account when it is.
  • confirm_email_verificationSubmit the 6-digit code from the verification email.No findings

    Why it is in this group

    • The description's first verb is "submit": a word for a change.
    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    Description, as the server wrote it
    Submit the 6-digit code from the verification email.
  • connect_channelStart a one-tap connect for a brand on an OAuth or app-password network.No findings

    Why it is in this group

    • The description's first verb is "start": a word for a change.
    Description, as the server wrote it
    Start a one-tap connect for a brand on an OAuth or app-password network. Returns connect_url: give it to the account owner to open once. Then poll get_connect_status.
  • create_postSchedule a post to one or more channels.Can send data outNo findings

    Why it is in this group

    • The name "create_post" says "create": a word for a change.

    What it can reach

    • outboundThe name "create_post" says "create" and "post": it writes something other people read.
    • outboundThe input takes a destination (input.channels): what the tool writes goes there.
    Description, as the server wrote it
    Schedule a post to one or more channels. idempotency_key is required; retries with the same key never double-post or double-charge. Optional max_price_usd refuses surge above your cap.
  • disconnect_channelDisconnect a channel: erases its stored credentials and revokes the provider token where the network supports it.Can send data out1 finding

    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

    • outboundThe input takes a destination (input.channel_id): what the tool writes goes there.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "Disconnect a channel: erases its stored credentials and revokes the provider token where th..."

      What this check looks for
    Description, as the server wrote it
    Disconnect a channel: erases its stored credentials and revokes the provider token where the network supports it.
  • request_owner_approvalEmail the account owner a one-tap Approve link (24 h, single use).Can send data outNo findings

    Why it is in this group

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

    What it can reach

    • outboundThe input takes a URL (input.callback_url): a request to a URL can carry data to whoever runs it.
    Description, as the server wrote it
    Email the account owner a one-tap Approve link (24 h, single use). Poll get_verification until verified or denied.
  • rotate_my_keyRotate the calling key: returns a new key (shown once) with the same scopes; the old key keeps working for grace_seconds (default 3600, 0 = revoke now).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
    Rotate the calling key: returns a new key (shown once) with the same scopes; the old key keeps working for grace_seconds (default 3600, 0 = revoke now).
  • start_dns_verificationGet a TXT record to publish on the account email domain (or a parent domain).No findings

    Why it is in this group

    • The name "start_dns_verification" says "start": a word for a change.
    Description, as the server wrote it
    Get a TXT record to publish on the account email domain (or a parent domain). Then call check_dns_verification.
  • start_email_verificationEmail a 6-digit code to the account email (expires in 10 minutes, 5 attempts).Can send data outNo findings

    Why it is in this group

    • The name "start_email_verification" says "start": a word for a change.

    What it can reach

    • outboundThe name "start_email_verification" says "start" and "email": it writes something other people read.
    Description, as the server wrote it
    Email a 6-digit code to the account email (expires in 10 minutes, 5 attempts). Then call confirm_email_verification with the code.
Only reads 11Show 11 read-only tools
  • get_connect_statusStatus of a connect session: pending, connected (with channel_id), failed or expired.No findings

    Why it is in this group

    • The name "get_connect_status" says "get": a word for reading.
    Description, as the server wrote it
    Status of a connect session: pending, connected (with channel_id), failed or expired.
  • get_onboardingOnboarding status: verification state, remaining steps and the exact next call.No findings

    Why it is in this group

    • The name "get_onboarding" says "get": a word for reading.
    Description, as the server wrote it
    Onboarding status: verification state, remaining steps and the exact next call. Start here after signup.
  • get_pricingSurgemesh prices: base per delivery, dynamic pricing rules, credit packs.No findings

    Why it is in this group

    • The name "get_pricing" says "get": a word for reading.
    Description, as the server wrote it
    Surgemesh prices: base per delivery, dynamic pricing rules, credit packs. No auth needed.
  • get_quotePrice quote (locks at post acceptance; guard with max_price_usd) for N deliveries in the 15-minute slot of scheduled_at, with cheaper nearby slots when surging.Reads text others writeNo findings

    Why it is in this group

    • The name "get_quote" says "get": 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
    Price quote (locks at post acceptance; guard with max_price_usd) for N deliveries in the 15-minute slot of scheduled_at, with cheaper nearby slots when surging.
  • get_referral_codeYour referral code, share link and stats (referred signups, qualified, credits earned and pending).No findings

    Why it is in this group

    • The name "get_referral_code" says "get": a word for reading.
    Description, as the server wrote it
    Your referral code, share link and stats (referred signups, qualified, credits earned and pending). Referral rewards are Surgemesh credits only, never cash, and are coming soon; codes can be shared now. Verified owners only.
  • get_usageAccount plan, credits, free deliveries left, and recent ledger.No findings

    Why it is in this group

    • The name "get_usage" says "get": a word for reading.
    Description, as the server wrote it
    Account plan, credits, free deliveries left, and recent ledger.
  • get_verificationStatus of one verification (pending, verified, expired, failed, denied).No findings

    Why it is in this group

    • The name "get_verification" says "get": a word for reading.
    Description, as the server wrote it
    Status of one verification (pending, verified, expired, failed, denied).
  • list_brandsBrands in this account.No findings

    Why it is in this group

    • The name "list_brands" says "list": a word for reading.
    Description, as the server wrote it
    Brands in this account.
  • list_channelsChannels (connected social accounts) this key can post to.Reads text others writeNo findings

    Why it is in this group

    • The name "list_channels" says "list": 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
    Channels (connected social accounts) this key can post to.
  • list_networksEvery supported network: status (available, connect_pending_review, connect_pending_setup), how to connect it, review limits, cost notes and media limits.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "list_networks" says "list": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "note": it reads notes.
    • untrusted-inputThe description's first sentence says "review": it reads comments, which other people can write.
    Description, as the server wrote it
    Every supported network: status (available, connect_pending_review, connect_pending_setup), how to connect it, review limits, cost notes and media limits. No auth needed.
  • list_postsRecent posts for a brand with per-channel delivery state.Reads text others writeNo findings

    Why it is in this group

    • The name "list_posts" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe name "list_posts" says "list" and "post": it reads posts, which other people can write.
    • untrusted-inputThe description's first sentence says "post": it reads posts, which other people can write.
    Description, as the server wrote it
    Recent posts for a brand with per-channel delivery state.

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.

20 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 1 private-data tool breaks every one.

Reads private data1
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write4
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out5
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
deny to break every path
{
  "permissions": {
    "deny": [
      "mcp__surgemesh__list_networks"
    ]
  }
}

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.

1 info

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.2.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http surgemesh https://api.surgemesh.com/mcp --header 'Authorization: <your-authorization>'
claude mcp add --transport http surgemesh https://api.surgemesh.com/mcp --header 'Authorization: <your-authorization>'

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__surgemesh__get_pricing",
      "mcp__surgemesh__get_quote",
      "mcp__surgemesh__list_channels",
      "mcp__surgemesh__list_brands",
      "mcp__surgemesh__list_posts",
      "mcp__surgemesh__get_referral_code",
      "mcp__surgemesh__get_usage",
      "mcp__surgemesh__get_onboarding",
      "mcp__surgemesh__get_verification",
      "mcp__surgemesh__list_networks",
      "mcp__surgemesh__get_connect_status"
    ],
    "ask": [
      "mcp__surgemesh__create_post",
      "mcp__surgemesh__get_topup_link",
      "mcp__surgemesh__create_checkout_link",
      "mcp__surgemesh__start_email_verification",
      "mcp__surgemesh__confirm_email_verification",
      "mcp__surgemesh__start_dns_verification",
      "mcp__surgemesh__check_dns_verification",
      "mcp__surgemesh__request_owner_approval",
      "mcp__surgemesh__rotate_my_key",
      "mcp__surgemesh__connect_channel",
      "mcp__surgemesh__disconnect_channel",
      "mcp__surgemesh__get_analytics"
    ],
    "deny": [
      "mcp__surgemesh__cancel_post"
    ]
  }
}

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 surgemesh. Review it before you use it.

Capability tags behind 9 rules
  • mcp__surgemesh__get_quote untrusted-input
  • mcp__surgemesh__list_channels untrusted-input
  • mcp__surgemesh__create_post outbound
  • mcp__surgemesh__list_posts untrusted-input
  • mcp__surgemesh__start_email_verification outbound
  • mcp__surgemesh__request_owner_approval outbound
  • mcp__surgemesh__list_networks private-data, untrusted-input
  • mcp__surgemesh__disconnect_channel outbound
  • mcp__surgemesh__get_analytics outbound

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/com.surgemesh/surgemesh/verify?hash=4b56f840f7639ba1f2a7e64bc630e0ce1477b69355b4f71081018b97115d466d" | jq -e '.changed == false'

Pinned hash 4b56f840f763, from Oct 28, 2026, 05:17 UTC.

Watch

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

https://anlyon.dev/servers/com.surgemesh/surgemesh/changes.xml

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

Badge

anlyon.dev badge for com.surgemesh/surgemesh
[![anlyon.dev](https://anlyon.dev/badge/com.surgemesh/surgemesh.svg)](https://anlyon.dev/servers/com.surgemesh/surgemesh)

Source: MCP Registry. Synced Oct 28, 2026, 05:17 UTC.