Skip to content

Vision6 MCP by usefulapi

io.usefulapi/vision6usefulapi.iostreamable-httpv1.0.0Scanned

Read Vision6 lists, contacts, messages and reports; update contacts; send transactional email/SMS.

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

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

Anlyon alternative

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

23 tools

Deletes or cancels 4Claude Code: deny
  • vision6_delete_contactWRITE, IRREVERSIBLE: permanently delete one contact from a list (for example for a privacy erasure request).Reads text others writeNo findings

    Why it is in this group

    • The name "vision6_delete_contact" says "delete": a word for removing or ending something.
    • The description says "IRREVERSIBLE".
    • 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
    WRITE, IRREVERSIBLE: permanently delete one contact from a list (for example for a privacy erasure request). To stop emailing someone but keep the record, use vision6_update_contact with email_subscribed=false instead. Pass confirm=true only after the user agreed to the deletion. DELETE /lists/{list_id}/contacts?id={contact_id}.

    Annotations the server declares

    • title: Delete a contact
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • vision6_send_transactionalWRITE: SENDS REAL EMAIL OR SMS to the recipients immediately (asynchronously) and USES ACCOUNT SENDING CREDITS.Reads text others writeCan send data outNo findings

    Why it is in this group

    • The name "vision6_send_transactional" says "send": a word for sending, and what is sent cannot be taken back.
    • The input addresses people (input.recipients): what it sends 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.
    • outboundThe name "vision6_send_transactional" says "send": it sends or publishes something to other people.
    Description, as the server wrote it
    WRITE: SENDS REAL EMAIL OR SMS to the recipients immediately (asynchronously) and USES ACCOUNT SENDING CREDITS. It cannot be recalled. Up to 100 recipients per call, each identified by exactly one of contact_id, email or mobile, plus optional personalisation values (wildcards %%key%% in the body). Either send a saved message (message_id) or custom content (subject/body_html/body_text, and for SMS body_text + from_address). Unsubscribed addresses are skipped. Email always needs list_id. Results appear in the transactional group (vision6_get_transactional_group). The account owner's email must be confirmed in Vision6 first. Pass confirm_send=true only after the user approved these recipients and this content. POST /transactional-sends.

    Annotations the server declares

    • title: Send a transactional email or SMS
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • vision6_update_contactWRITE: change one contact's email, mobile, custom field values, subscription status (email_subscribed/mobile_subscribed=false unsubscribes), active flag or double opt-in.Reads text others writeNo findings

    Why it is in this group

    • The name "vision6_update_contact" says "update": a word for a change.
    • 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
    WRITE: change one contact's email, mobile, custom field values, subscription status (email_subscribed/mobile_subscribed=false unsubscribes), active flag or double opt-in. Only the fields you pass change. May trigger 'contact updated' automations. Returns the updated contact. PATCH /lists/{list_id}/contacts/{contact_id}.

    Annotations the server declares

    • title: Update a contact
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • vision6_update_messageWRITE: change a saved message's name, subject, sender, folder or body.Reads text others writeCan send data outNo findings

    Why it is in this group

    • The name "vision6_update_message" says "update": a word for a change.
    • 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.
    • outboundThe name "vision6_update_message" says "update" and "message": it writes something other people read.
    Description, as the server wrote it
    WRITE: change a saved message's name, subject, sender, folder or body. Only the fields you pass change. It does not send anything. PATCH /messages/{message_id}.

    Annotations the server declares

    • title: Update a message
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
Can't be undone 1Claude Code: ask
  • vision6_list_reportsSend reports for campaigns, newest first: message name, type, sent, bounced, opened, unique clicks, unsubscribes, complaints, total recipients and last sent time.Reads private dataReads text others write1 finding

    Why it is in this group

    • The name "vision6_list_reports" says "list": a word for reading.
    • The description's first verb is "send": a word for sending, and what is sent cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • private-dataThe description's first sentence says "message": it reads messages.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "send" and "message": it reads messages, which other people can write.

    Findings

    • Warn

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

      Matched text

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

      What this check looks for
    Description, as the server wrote it
    Send reports for campaigns, newest first: message name, type, sent, bounced, opened, unique clicks, unsubscribes, complaints, total recipients and last sent time. Filter by message, type, test sends or creation time. Click and domain breakdowns are only returned when requested via `fields`. GET /reports.

    Annotations the server declares

    • title: List send reports
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
Changes things 4Claude Code: ask
  • vision6_add_contactsWRITE: add up to 200 contacts to a list in one request (faster than one by one).Reads text others writeNo findings

    Why it is in this group

    • The name "vision6_add_contacts" says "add": a word for a change.

    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
    WRITE: add up to 200 contacts to a list in one request (faster than one by one). Each needs an email and/or mobile. Vision6 returns no contact data (HTTP 204), so use vision6_list_contacts to read them back. May trigger automations. POST /lists/{list_id}/contacts.

    Annotations the server declares

    • title: Add several contacts
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • vision6_create_contactWRITE: add one contact to a list (needs an email and/or mobile that matches a field of the list).Reads text others writeNo findings

    Why it is in this group

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

    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
    WRITE: add one contact to a list (needs an email and/or mobile that matches a field of the list). May trigger the list's 'contact created' automations and notification emails. Returns the new contact. POST /lists/{list_id}/contacts.

    Annotations the server declares

    • title: Create a contact
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • vision6_create_listWRITE: create a new, empty contact list inside a list folder (see vision6_list_folders with type list).Reads text others writeNo findings

    Why it is in this group

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

    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
    WRITE: create a new, empty contact list inside a list folder (see vision6_list_folders with type list). Returns the new list. POST /lists.

    Annotations the server declares

    • title: Create a contact list
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • vision6_create_messageWRITE: save a new email or SMS message in Vision6.Reads text others writeCan send data outNo findings

    Why it is in this group

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

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • outboundThe name "vision6_create_message" says "create" and "message": it writes something other people read.
    Description, as the server wrote it
    WRITE: save a new email or SMS message in Vision6. This only stores the message; it is NOT sent (use the Vision6 app to send a campaign, or vision6_send_transactional for a one-off send). Email needs email_type, subject and matching body fields (plain: content_text; html: content_html; plain-html: both; raw_html: content_html or content_html_raw). SMS needs content_sms. The drag-and-drop builder is not supported. POST /messages.

    Annotations the server declares

    • title: Create a message (draft)
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Only reads 14Show 14 read-only tools
  • vision6_get_accountDetails of the API key this server uses: the scopes it grants (e.g.Reads text others writeNo findings

    Why it is in this group

    • The name "vision6_get_account" 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
    Details of the API key this server uses: the scopes it grants (e.g. list.view, contact.create, message.edit, report.view) and its creation/expiry time. Use it to see why a request is refused. GET /v1/.

    Annotations the server declares

    • title: Get API key details
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • vision6_get_contactOne contact by id within a list, with all fields.Reads private dataReads text others writeNo findings

    Why it is in this group

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

    What it can reach

    • private-dataThe name "vision6_get_contact" says "get" and "contact": it reads contacts.
    • private-dataThe description's first sentence says "contact": it reads contacts.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    One contact by id within a list, with all fields. GET /lists/{list_id}/contacts/{contact_id}.

    Annotations the server declares

    • title: Get a contact
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • vision6_get_listOne contact list by id.Reads private dataReads text others writeNo findings

    Why it is in this group

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

    What it can reach

    • private-dataThe description's first sentence says "contact": it reads contacts.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    One contact list by id. GET /lists/{list_id}.

    Annotations the server declares

    • title: Get a contact list
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • vision6_get_messageOne message by id.Reads private dataReads text others writeNo findings

    Why it is in this group

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

    What it can reach

    • private-dataThe name "vision6_get_message" says "get" and "message": it reads messages.
    • private-dataThe description's first sentence says "message": it reads messages.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe name "vision6_get_message" says "get" and "message": it reads messages, which other people can write.
    • untrusted-inputThe description's first sentence says "message": it reads messages, which other people can write.
    Description, as the server wrote it
    One message by id. With include_content=true the HTML and plain-text body is included. GET /messages/{message_id}.

    Annotations the server declares

    • title: Get a message
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • vision6_get_message_sender_defaultsThe account's default from name, from address and reply-to, applied to new email messages when you omit them.Reads private dataReads text others writeNo findings

    Why it is in this group

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

    What it can reach

    • private-dataThe name "vision6_get_message_sender_defaults" says "get" and "message": it reads messages.
    • private-dataThe description's first sentence says "email": it reads mail.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe name "vision6_get_message_sender_defaults" says "get" and "message": it reads messages, which other people can write.
    • untrusted-inputThe description's first sentence says "reply": it reads comments, which other people can write.
    Description, as the server wrote it
    The account's default from name, from address and reply-to, applied to new email messages when you omit them. GET /message-sender-defaults.

    Annotations the server declares

    • title: Get default sender details
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • vision6_get_reportOne send report by id with all delivery and engagement counts, per-link click counts and recipient domain distribution.Reads text others writeNo findings

    Why it is in this group

    • The name "vision6_get_report" 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
    One send report by id with all delivery and engagement counts, per-link click counts and recipient domain distribution. Optionally includes A/B test results and social click/share statistics. GET /reports/{report_id}.

    Annotations the server declares

    • title: Get a send report
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • vision6_get_transactional_groupOne transactional group by id with its delivery statistics.Reads text others writeNo findings

    Why it is in this group

    • The name "vision6_get_transactional_group" 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
    One transactional group by id with its delivery statistics. GET /transactional-groups/{group_id}.

    Annotations the server declares

    • title: Get a transactional group
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • vision6_list_contactsList the contacts of one list: email, mobile, subscribed/blocked status, active flag, double opt-in and the list's custom fields.Reads private dataReads text others writeNo findings

    Why it is in this group

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

    What it can reach

    • private-dataThe name "vision6_list_contacts" says "list" and "contact": it reads contacts.
    • private-dataThe description's first sentence says "list" and "contact": it reads contacts.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "list" and "email": it reads inbound email, which other people can write.
    Description, as the server wrote it
    List the contacts of one list: email, mobile, subscribed/blocked status, active flag, double opt-in and the list's custom fields. Filter by email, mobile, active flag, creation/modification time or any custom field (`filters`, e.g. {"city":"Brisbane"} or {"source:ne":"promo"}). GET /lists/{list_id}/contacts.

    Annotations the server declares

    • title: List contacts
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • vision6_list_foldersList the account's folders (list folders and message folders) with id, name, type and size.Reads private dataReads text others writeNo findings

    Why it is in this group

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

    What it can reach

    • private-dataThe name "vision6_list_folders" says "list" and "folder": it reads files.
    • private-dataThe description's first sentence says "list" and "folder": it reads files.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "list" and "message": it reads messages, which other people can write.
    Description, as the server wrote it
    List the account's folders (list folders and message folders) with id, name, type and size. Needed for the folder id when creating a list or message. GET /folders.

    Annotations the server declares

    • title: List folders
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • vision6_list_list_fieldsThe fields (columns) of a contact list: label, type (email, mobile, text, dropdown, date ...), allowed values and whether they are mandatory.Reads private dataReads text others writeNo findings

    Why it is in this group

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

    What it can reach

    • private-dataThe description's first sentence says "contact": it reads contacts.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
    Description, as the server wrote it
    The fields (columns) of a contact list: label, type (email, mobile, text, dropdown, date ...), allowed values and whether they are mandatory. The lowercase underscore form of a label is the key used for contact values and filters. GET /lists/{list_id}/fields.

    Annotations the server declares

    • title: List a list's fields
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • vision6_list_listsList the account's contact lists with id, name, creation/modification time and notification settings.Reads private dataReads text others writeNo findings

    Why it is in this group

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

    What it can reach

    • private-dataThe description's first sentence says "list" and "contact": it reads contacts.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    List the account's contact lists with id, name, creation/modification time and notification settings. Filter by exact name. GET /lists.

    Annotations the server declares

    • title: List contact lists
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • vision6_list_messagesList saved email and SMS messages (templates and campaigns) with id, type, name, subject and sender.Reads private dataReads text others writeNo findings

    Why it is in this group

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

    What it can reach

    • private-dataThe name "vision6_list_messages" says "list" and "message": it reads messages.
    • private-dataThe description's first sentence says "list" and "email": it reads mail.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe name "vision6_list_messages" says "list" and "message": it reads messages, which other people can write.
    • untrusted-inputThe description's first sentence says "list" and "email": it reads inbound email, which other people can write.
    Description, as the server wrote it
    List saved email and SMS messages (templates and campaigns) with id, type, name, subject and sender. Filter by type or exact name/subject. GET /messages.

    Annotations the server declares

    • title: List messages
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • vision6_list_sent_contactsThe contacts one message was sent to, with send time, first/last open time and open type (html, text, sms or not_opened).Reads private dataReads text others writeNo findings

    Why it is in this group

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

    What it can reach

    • private-dataThe name "vision6_list_sent_contacts" says "list" and "contact": it reads contacts.
    • private-dataThe description's first sentence says "contact": it reads contacts.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "message": it reads messages, which other people can write.
    Description, as the server wrote it
    The contacts one message was sent to, with send time, first/last open time and open type (html, text, sms or not_opened). Use it to see who opened a campaign. GET /messages/{message_id}/sent-contacts.

    Annotations the server declares

    • title: List contacts a message was sent to
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • vision6_list_transactional_groupsTransactional send groups (one per group name used with vision6_send_transactional) with sent, failed, bounced, delivered, opened, clicked and unsubscribed counts.Reads text others writeNo findings

    Why it is in this group

    • The name "vision6_list_transactional_groups" 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
    Transactional send groups (one per group name used with vision6_send_transactional) with sent, failed, bounced, delivered, opened, clicked and unsubscribed counts. GET /transactional-groups.

    Annotations the server declares

    • title: List transactional groups
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: 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.

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

Can send data out3
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__vision6__vision6_create_message",
      "mcp__vision6__vision6_send_transactional",
      "mcp__vision6__vision6_update_message"
    ]
  }
}

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 warn
  • The server marks "vision6_list_reports" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "vision6_list_reports" says "list": 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 vision6 https://vision6.usefulapi.io/mcp
claude mcp add --transport http vision6 https://vision6.usefulapi.io/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__vision6__vision6_get_account",
      "mcp__vision6__vision6_list_lists",
      "mcp__vision6__vision6_get_list",
      "mcp__vision6__vision6_list_list_fields",
      "mcp__vision6__vision6_list_folders",
      "mcp__vision6__vision6_list_contacts",
      "mcp__vision6__vision6_get_contact",
      "mcp__vision6__vision6_list_messages",
      "mcp__vision6__vision6_get_message",
      "mcp__vision6__vision6_get_message_sender_defaults",
      "mcp__vision6__vision6_get_report",
      "mcp__vision6__vision6_list_sent_contacts",
      "mcp__vision6__vision6_list_transactional_groups",
      "mcp__vision6__vision6_get_transactional_group"
    ],
    "ask": [
      "mcp__vision6__vision6_list_reports",
      "mcp__vision6__vision6_create_contact",
      "mcp__vision6__vision6_add_contacts",
      "mcp__vision6__vision6_create_list",
      "mcp__vision6__vision6_create_message"
    ],
    "deny": [
      "mcp__vision6__vision6_update_contact",
      "mcp__vision6__vision6_delete_contact",
      "mcp__vision6__vision6_update_message",
      "mcp__vision6__vision6_send_transactional"
    ]
  }
}

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

Capability tags behind 23 rules
  • mcp__vision6__vision6_get_account untrusted-input
  • mcp__vision6__vision6_list_lists private-data, untrusted-input
  • mcp__vision6__vision6_get_list private-data, untrusted-input
  • mcp__vision6__vision6_list_list_fields private-data, untrusted-input
  • mcp__vision6__vision6_list_folders private-data, untrusted-input
  • mcp__vision6__vision6_list_contacts private-data, untrusted-input
  • mcp__vision6__vision6_get_contact private-data, untrusted-input
  • mcp__vision6__vision6_list_messages private-data, untrusted-input
  • mcp__vision6__vision6_get_message private-data, untrusted-input
  • mcp__vision6__vision6_get_message_sender_defaults private-data, untrusted-input
  • mcp__vision6__vision6_list_reports private-data, untrusted-input
  • mcp__vision6__vision6_get_report untrusted-input
  • mcp__vision6__vision6_list_sent_contacts private-data, untrusted-input
  • mcp__vision6__vision6_list_transactional_groups untrusted-input
  • mcp__vision6__vision6_get_transactional_group untrusted-input
  • mcp__vision6__vision6_create_contact untrusted-input
  • mcp__vision6__vision6_add_contacts untrusted-input
  • mcp__vision6__vision6_update_contact untrusted-input
  • mcp__vision6__vision6_delete_contact untrusted-input
  • mcp__vision6__vision6_create_list untrusted-input
  • mcp__vision6__vision6_create_message untrusted-input, outbound
  • mcp__vision6__vision6_update_message untrusted-input, outbound
  • mcp__vision6__vision6_send_transactional untrusted-input, 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/io.usefulapi/vision6/verify?hash=8b3aa5bffd28715619264063b1f17b9de26705f311e1b6d134769070063be3a9" | jq -e '.changed == false'

Pinned hash 8b3aa5bffd28, from Oct 24, 2026, 16:23 UTC.

Watch

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

https://anlyon.dev/servers/io.usefulapi/vision6/changes.xml

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

Badge

anlyon.dev badge for io.usefulapi/vision6
[![anlyon.dev](https://anlyon.dev/badge/io.usefulapi/vision6.svg)](https://anlyon.dev/servers/io.usefulapi/vision6)

Source: MCP Registry · repository. Synced Oct 24, 2026, 17:18 UTC.