Skip to content

viaSocket

com.viasocket.mcp/mcpmcp.viasocket.comstreamable-httpv1.0.0Scanned

Build viaSocket plugins and automations, and connect your product to other apps.

15 tools: 1 can delete or cancel things, 5 change things and 9 only read.

Tools: 1 delete, 0 irreversible, 5 write, 9 read.
  • Reads private data · 3
  • Reads text others write · 10
  • Can send data out · 1
  • 4 findings, 2 high

Anlyon alternative

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

15 tools

Deletes or cancels 1Claude Code: deny
  • call_any_api_of_viasocketSend a POST, PUT, PATCH or DELETE request to any viaSocket API endpoint for the user and return its response: every write (create, update, publish, delete).Reads text others writeNo findings

    Why it is in this group

    • The name "call_any_api_of_viasocket" says "call": a word for a change.
    • The description's first verb is "send": a word for sending, and what is sent cannot be taken back.
    • The server marks it destructive (destructiveHint: true).

    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
    Send a POST, PUT, PATCH or DELETE request to any viaSocket API endpoint for the user and return its response: every write (create, update, publish, delete). For GET requests use call_any_read_api_of_viasocket. Look the endpoint up with get_viasocket_api_docs first to get its URL, headers, query params and body, unless the skill or a dedicated tool on this server already gives them exactly. Load the quickstart-viasocket-developer-hub skill first: it explains which tool to use when. Pass the full url with path variables filled in, the headers the docs list, query params in `query` (not in the url) and the JSON body in `body`. For the auth header the docs name (Authorization, proxy_auth_token, x-api-key, ...), pass it with an empty value "": the signed-in user's token is filled in automatically. Never put a real or made-up token there; if the docs name no auth header, leave it out and the token is sent as Authorization. If the API needs the user to sign in, they're asked the first time. Only for the viaSocket endpoints documented on this server: it attaches the viaSocket sign-in, so never use it for Embarko (ship.embarko.ai) or any other service. Returns { status, ok, headers, data }: the HTTP status and the response body, including error details on failure.

    Annotations the server declares

    • title: Write to viaSocket API
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
Changes things 5Claude Code: ask
  • call_any_read_api_of_viasocketRead from any viaSocket API endpoint with a GET request for the user and return its response.Reads text others writeCan send data out1 finding

    Why it is in this group

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

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.

    Findings

    • Warn

      The server marks "call_any_read_api_of_viasocket" 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":true}; The name "call_any_read_api_of_viasocket" says "call": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Read from any viaSocket API endpoint with a GET request for the user and return its response. Use it once you know the exact endpoint: look it up with get_viasocket_api_docs first to get its URL, headers, query params and body, unless the skill or a dedicated tool on this server already gives them exactly. Load the quickstart-viasocket skill first: it explains which tool to use when. For POST, PUT, PATCH and DELETE use call_any_api_of_viasocket. Pass the full url with path variables filled in, the headers the docs list, and query params in `query` (not in the url). For the auth header the docs name (Authorization, proxy_auth_token, x-api-key, ...), pass it with an empty value "": the signed-in user's token is filled in automatically. Never put a real or made-up token there; if the docs name no auth header, leave it out and the token is sent as Authorization. If the API needs the user to sign in, they're asked the first time. Returns { status, ok, headers, data }: the HTTP status and the response body, including error details on failure.

    Annotations the server declares

    • title: Read from viaSocket API
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_viasocket_embed_secretGets the viaSocket organization's embed signing secret (VIASOCKET_EMBED_SECRET) into the developer's .env encrypted, so you never see it.Reads private dataReads text others write2 findings

    Why it is in this group

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

    What it can reach

    • private-dataThe name "get_viasocket_embed_secret" says "get" and "secret": it reads secrets.
    • private-dataThe description's first sentence says "get" and "secret": it reads secrets.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.

    Findings

    • High

      The description refers to ".env".

      Matched text

      description: "...CKET_EMBED_SECRET) into the developer's .env encrypted, so you never see it. Use it..."

      What this check looks for
    • Warn

      The server marks "get_viasocket_embed_secret" 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 "get_viasocket_embed_secret" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Gets the viaSocket organization's embed signing secret (VIASOCKET_EMBED_SECRET) into the developer's .env encrypted, so you never see it. Use it in SDK setup. Get orgId with get_org_details_by_token first. Before calling, run `docstar-cli key request` in the project folder and pass its publicKey; then run the `save` command this tool returns, then its `emit` command (the developer can choose another .env file). Never ask for, print or repeat the secret.

    Annotations the server declares

    • title: Get a viaSocket API key
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • quickstart-viasocket-developer-hubQuickstart for viaSocket: build and manage your viaSocket plugins (apps) in the Developer Hub (auth, actions, triggers, versions, reusable components, debugging), set up a product'…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.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Quickstart for viaSocket: build and manage your viaSocket plugins (apps) in the Developer Hub (auth, actions, triggers, versions, reusable components, debugging), set up a product's viaSocket keys, give a product its own MCP server, and build automations (flows) for the user: find apps, connect accounts, create flows, set triggers and write steps. Routes plug work through the plug skills index, product integration and the product's MCP server through the viaSocket skill, and Embarko deploy through Embarko's quickstart. Load this before any viaSocket task. Call this to load the full instructions for this skill before doing the task.

    Annotations the server declares

    • title: Quickstart Viasocket Developer Hub
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • report_feedbackReport a problem to viaSocket while building with it: an error, a confusion, wrong docs or skills, a user correction, or a missing capability.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
    Report a problem to viaSocket while building with it: an error, a confusion, wrong docs or skills, a user correction, or a missing capability. Problems only, never success; no need to ask the user; a failed report never stops the task. Plugs: fix or extend the user's own plugs (the ones in list_plugins) yourself, and build a plug for an app that has none. A plug used in flows but not in list_plugins is viaSocket's: never edit it, report it here (refs.pluginId, refs.actionId; a missing action, trigger or field is kind missing_capability, with exactly what is needed and why). Body: source (sdk | http_api | plug | action | trigger | connection | skill | other), kind (error | confusion | missing_capability | wrong_instructions | user_correction) and feedback (what happened, in plain words), plus optional severity, stage, intent, attempted, expected, actual, error, refs, env and retries. Never include secrets, tokens or script_id. The org and user come from the sign-in.

    Annotations the server declares

    • title: Report Feedback
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • report_publishedCall once right after you publish something on the user's own plug (one in list_plugins): a new plug, or a new action, trigger, version or connection on it.No findings

    Why it is in this group

    • The description's first verb is "call": a word for a change.
    Description, as the server wrote it
    Call once right after you publish something on the user's own plug (one in list_plugins): a new plug, or a new action, trigger, version or connection on it. viaSocket then reviews the published plug and may add missing actions or triggers. Body: pluginId (the plug rowid, required), published (new_plug | new_action | new_trigger | new_version | connection), plus optional app (the app's name), actionIds (rowids of the actions or triggers just published) and note (plain words, never secrets). No need to ask the user; a failed call never stops the task. The org and user come from the sign-in. Not for problems: use report_feedback for those.

    Annotations the server declares

    • title: Report Published
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
Only reads 9Show 9 read-only tools
  • get_org_details_by_tokenGet the viaSocket organization (id and details) that the signed-in user's token belongs to.No findings

    Why it is in this group

    • The name "get_org_details_by_token" says "get": a word for reading.
    Description, as the server wrote it
    Get the viaSocket organization (id and details) that the signed-in user's token belongs to. Read-only, no inputs. Call this first whenever you need the organization id (orgId) for other viaSocket Developer Hub calls such as List Plugins, Get Plugin or analytics, instead of asking the user for it.

    Annotations the server declares

    • title: Get Org Details By Token
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_plugin_analyticsGet run counts, error counts and flow counts for every action and trigger version of a plugin (filter=getPluginDetails, identifier=<pluginId>, optional startTime and endTime dates)…Reads text others writeNo findings

    Why it is in this group

    • The name "get_plugin_analytics" says "get": a word for reading.

    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
    Get run counts, error counts and flow counts for every action and trigger version of a plugin (filter=getPluginDetails, identifier=<pluginId>, optional startTime and endTime dates).

    Annotations the server declares

    • title: Get Plugin Analytics
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_viasocket_api_docsBrowse the viaSocket API docs, one level at a time.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "get_viasocket_api_docs" says "get": a word for reading.

    What it can reach

    • private-dataThe name "get_viasocket_api_docs" says "get" and "doc": it reads documents.
    • private-dataThe description's first sentence says "browse" and "doc": it reads documents.
    • untrusted-inputThe description's first sentence says "browse": it reads web pages, which anyone can write.
    Description, as the server wrote it
    Browse the viaSocket API docs, one level at a time. Call it without arguments to get the top level: the modules and pages with a short description and the endpoints they hold. Call it with `path` set to a module's or page's link (or path) to get what is inside it; each listing links the next level. Call it with `path` set to an endpoint's link ending in ".openapi.yml" to get that endpoint as an OpenAPI file: method, url, headers, query params, path variables, a request body example and sample responses. Fetch only the level you need.

    Annotations the server declares

    • title: Get viaSocket API docs
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_action_versionsList all versions of an action or trigger (filter=getActionVersions, identifier=<actionId>), with code, inputs, authid, status and verification status.Reads text others writeNo findings

    Why it is in this group

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

    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
    List all versions of an action or trigger (filter=getActionVersions, identifier=<actionId>), with code, inputs, authid, status and verification status. Use fields to keep the response small.

    Annotations the server declares

    • title: List Action Versions
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_actions_and_triggersList a plugin's actions and triggers (filter=getAllActions, identifier=<pluginId>), or get one (filter=getActionDetails, identifier=<actionId>).Reads text others writeNo findings

    Why it is in this group

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

    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
    List a plugin's actions and triggers (filter=getAllActions, identifier=<pluginId>), or get one (filter=getActionDetails, identifier=<actionId>). Use it to find an actionId.

    Annotations the server declares

    • title: List Actions and Triggers
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_auth_versionsList a plugin's authentication versions (filter=getAuthDetails, identifier=<pluginId>) to find an authid.Reads text others write1 finding

    Why it is in this group

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

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.

    Findings

    • High

      The description contains "never show them to the user", an instruction to keep something from the user.

      Matched text

      description: "...onses include decrypted client secrets: never show them to the user."

      What this check looks for
    Description, as the server wrote it
    List a plugin's authentication versions (filter=getAuthDetails, identifier=<pluginId>) to find an authid. Responses include decrypted client secrets: never show them to the user.

    Annotations the server declares

    • title: List Auth Versions
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_embed_projectsList an organization's embed projects (type=embed) for viaSocket SDK setup.Reads text others writeNo findings

    Why it is in this group

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

    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
    List an organization's embed projects (type=embed) for viaSocket SDK setup. Each data.projects[].id is a project_id (VIASOCKET_PROJECT_ID). Reuse an existing embed: one embed serves a whole product. Only if there is none, create one with the Create Embed Project endpoint (via call_any_api) after the developer confirms.

    Annotations the server declares

    • title: List Embed Projects
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_pluginsList every viaSocket Developer Hub plugin (app) the user's organization owns.Reads text others writeNo findings

    Why it is in this group

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

    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
    List every viaSocket Developer Hub plugin (app) the user's organization owns. Send filter=getAllPlugins and identifier equal to the orgId in the path. Start here to find a pluginId (rowid).

    Annotations the server declares

    • title: List Plugins
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • search_viasocket_docsSearch the viaSocket documentation with a natural-language question.Reads private dataNo findings

    Why it is in this group

    • The name "search_viasocket_docs" says "search": a word for reading.

    What it can reach

    • private-dataThe name "search_viasocket_docs" says "search" and "doc": it reads documents.
    Description, as the server wrote it
    Search the viaSocket documentation with a natural-language question. Returns the most relevant passages with their page URLs.

    Annotations the server declares

    • title: Search viaSocket docs
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

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.

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

Reads private data3
Reads files, mail, messages, databases, secrets, calendars or repositories.
Can send data out1
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__server__call_any_read_api_of_viasocket"
    ]
  }
}

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.

2 high2 warn
  • The description contains "never show them to the user", an instruction to keep something from the user.

    Matched text

    description: "...onses include decrypted client secrets: never show them to the user."

    What this check looks for
  • The description refers to ".env".

    Matched text

    description: "...CKET_EMBED_SECRET) into the developer's .env encrypted, so you never see it. Use it..."

    What this check looks for
  • The server marks "call_any_read_api_of_viasocket" 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":true}; The name "call_any_read_api_of_viasocket" says "call": a word for a change.

    What this check looks for
  • The server marks "get_viasocket_embed_secret" 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 "get_viasocket_embed_secret" says "get": 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 server https://connect.viasocket.com/mcp
claude mcp add --transport http server https://connect.viasocket.com/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__server__search_viasocket_docs",
      "mcp__server__get_viasocket_api_docs",
      "mcp__server__list_plugins",
      "mcp__server__list_auth_versions",
      "mcp__server__list_actions_and_triggers",
      "mcp__server__list_action_versions",
      "mcp__server__get_plugin_analytics",
      "mcp__server__get_org_details_by_token",
      "mcp__server__list_embed_projects"
    ],
    "ask": [
      "mcp__server__call_any_read_api_of_viasocket",
      "mcp__server__report_feedback",
      "mcp__server__report_published",
      "mcp__server__get_viasocket_embed_secret",
      "mcp__server__quickstart-viasocket-developer-hub"
    ],
    "deny": [
      "mcp__server__call_any_api_of_viasocket"
    ]
  }
}

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

Capability tags behind 11 rules
  • mcp__server__search_viasocket_docs private-data
  • mcp__server__get_viasocket_api_docs private-data, untrusted-input
  • mcp__server__call_any_api_of_viasocket untrusted-input
  • mcp__server__list_plugins untrusted-input
  • mcp__server__list_auth_versions untrusted-input
  • mcp__server__list_actions_and_triggers untrusted-input
  • mcp__server__list_action_versions untrusted-input
  • mcp__server__get_plugin_analytics untrusted-input
  • mcp__server__list_embed_projects untrusted-input
  • mcp__server__call_any_read_api_of_viasocket untrusted-input, outbound
  • mcp__server__get_viasocket_embed_secret private-data, 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/com.viasocket.mcp/mcp/verify?hash=6d1e8d5e8f16d77c10acc39a064f07fd87aa2042eada6d2b224197910b600f1d" | jq -e '.changed == false'

Pinned hash 6d1e8d5e8f16, from Oct 30, 2026, 13:18 UTC.

Watch

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

https://anlyon.dev/servers/com.viasocket.mcp/mcp/changes.xml

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

Badge

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

Source: MCP Registry · repository. Synced Oct 30, 2026, 13:17 UTC.