Skip to content

com.makehybrid/makehybrid

com.makehybrid/makehybridmakehybrid.comstreamable-httpv1.0.0Scanned

LinkedIn, messaging channels, work trackers and project rooms, for an assistant to act through.

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

Tools: 1 delete, 3 irreversible, 8 write, 8 read.
  • Reads private data · 6
  • Reads text others write · 16
  • Can send data out · 4
  • 6 findings, 2 high

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 1Claude Code: deny
  • makehybrid_callInvoke ANY operation in the MakeHybrid manifest -- all 431 of them (431 MakeHybrid API).Reads text others writeNo findings

    Why it is in this group

    • The name "makehybrid_call" says "call": 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
    Invoke ANY operation in the MakeHybrid manifest -- all 431 of them (431 MakeHybrid API). The catalogue is derived from the live API, so an endpoint added upstream becomes callable here as soon as the manifest refreshes, with no new tool. Use makehybrid_list_operations to find the operation id and makehybrid_describe_operation to see its parameters, then call it here. Authentication is handled by the server.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
Can't be undone 3Claude Code: ask
  • complete_chats_messages_sendSend a Message -- MakeHybrid API plan, POST /linkedin/v2/{account_id}/chats/{chat_id}/messages/send, group chats.Reads text others writeCan send data outNo findings

    Why it is in this group

    • The name "complete_chats_messages_send" says "send": a word for sending, and what is sent cannot be taken back.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • outboundThe name "complete_chats_messages_send" says "send": it sends or publishes something to other people.
    • outboundThe input takes a destination (input.chat_id): what the tool writes goes there.
    Description, as the server wrote it
    Send a Message -- MakeHybrid API plan, POST /linkedin/v2/{account_id}/chats/{chat_id}/messages/send, group chats.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • complete_inbox_v1_conversations_messagesReply in a conversation on the customer's own channel: body {content, message_type: outgoing}.Reads text others writeCan send data outNo findings

    Why it is in this group

    • The description's first verb is "reply": a word for sending, and what is sent cannot be taken back.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • outboundThe description's first verb is "reply": it sends or publishes something to other people.
    Description, as the server wrote it
    Reply in a conversation on the customer's own channel: body {content, message_type: outgoing}. With private: true it is an internal note only your team sees. In an API inbox, message_type incoming records what the customer wrote. -- MakeHybrid API plan, POST /inbox/v1/conversations/{id}/messages, group inbox.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • complete_x_v1_messagesSend a message on X to one person: body {to: an X user id or a username such as @pat, text}.Reads text others writeCan send data outNo findings

    Why it is in this group

    • The description's first verb is "send": a word for sending, and what is sent cannot be taken back.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • outboundThe description's first verb is "send": it sends or publishes something to other people.
    Description, as the server wrote it
    Send a message on X to one person: body {to: an X user id or a username such as @pat, text}. Goes to X Chat, encrypted, when you have a conversation there and the passcode was given; otherwise a direct message. -- MakeHybrid API plan, POST /x/v1/messages, group x.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Changes things 8Claude Code: ask
  • complete_connect_accountsThe LinkedIn accounts this organization has connected, which are the only ones anything here may act as.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.
    • 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.
    Description, as the server wrote it
    The LinkedIn accounts this organization has connected, which are the only ones anything here may act as. Start here when a request names a person's account: an id that is not on this list answers 404 everywhere else. -- MakeHybrid API plan, GET /linkedin/connect/accounts, group connect.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • complete_connect_credentialsSign a LinkedIn account in with the member's own email and password.Reads text others write2 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.

    Findings

    • High

      The description refers to "/linkedin/connect/credentials".

      Matched text

      description: "...heckpoint. -- MakeHybrid API plan, POST /linkedin/connect/credentials, group connect."

      What this check looks for
    • High

      The input schema at properties.body.description refers to "/linkedin/connect/credentials".

      Matched text

      inputSchema.properties.body.description: "JSON request body for POST /linkedin/connect/credentials."

      What this check looks for
    Description, as the server wrote it
    Sign a LinkedIn account in with the member's own email and password. DO NOT ASK ANYONE FOR A PASSWORD IN A CONVERSATION: send them POST /linkedin/connect/link {action: connect} instead, which gives a one-hour link to a page of ours where the password is typed, and which asks for whatever LinkedIn wants next -- a verification code, or an approval in its app. This route is for a caller with its own sign-in form. The password is forwarded once and never stored. LinkedIn answers most first sign-ins with a challenge, so a 201 here usually means the account was challenged rather than connected — follow up on POST /linkedin/connect/checkpoint. -- MakeHybrid API plan, POST /linkedin/connect/credentials, group connect.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • complete_linkedin_search_peoplePerform People Search -- MakeHybrid API plan, POST /linkedin/v2/{account_id}/linkedin/search/people, group linkedin.Reads text others write1 finding

    Why it is in this group

    • The name "complete_linkedin_search_people" says "search": 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 "post": it reads posts, which other people can write.

    Findings

    • Warn

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

      What this check looks for
    Description, as the server wrote it
    Perform People Search -- MakeHybrid API plan, POST /linkedin/v2/{account_id}/linkedin/search/people, group linkedin.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • complete_linkedin_search_postsPerform Posts Search -- MakeHybrid API plan, POST /linkedin/v2/{account_id}/linkedin/search/posts, group linkedin.Reads text others write1 finding

    Why it is in this group

    • The name "complete_linkedin_search_posts" says "search": 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 name "complete_linkedin_search_posts" says "search" 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.

    Findings

    • Warn

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

      What this check looks for
    Description, as the server wrote it
    Perform Posts Search -- MakeHybrid API plan, POST /linkedin/v2/{account_id}/linkedin/search/posts, group linkedin.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • complete_postsCreate a Post -- MakeHybrid API plan, POST /linkedin/v2/{account_id}/posts, group posts.Reads text others writeCan send data outNo findings

    Why it is in this group

    • The name "complete_posts" says "post": 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 "complete_posts" says "post": it sends or publishes something to other people.
    Description, as the server wrote it
    Create a Post -- MakeHybrid API plan, POST /linkedin/v2/{account_id}/posts, group posts.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • makehybrid_aboutWhat MakeHybrid is, what this connection can do, and what it needs before it can act.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
    What MakeHybrid is, what this connection can do, and what it needs before it can act. ANSWER ANY GENERAL QUESTION ABOUT MAKEHYBRID WITH THIS -- "what do you do?", "what can you help with?", "what is this?" -- and call it first when you have not used this server before. It needs no API key and no sign-in, and reports whether this connection is signed in yet.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
Only reads 8Show 8 read-only tools
  • complete_chatsList all Chats -- MakeHybrid API plan, GET /linkedin/v2/{account_id}/chats, group chats.Reads private dataReads 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

    • private-dataThe name "complete_chats" says "chat": it reads messages.
    • private-dataThe description's first sentence says "list" and "chat": it reads messages.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe name "complete_chats" says "chat": it reads messages, which other people can write.
    • untrusted-inputThe description's first sentence says "list" and "chat": it reads messages, which other people can write.
    Description, as the server wrote it
    List all Chats -- MakeHybrid API plan, GET /linkedin/v2/{account_id}/chats, group chats.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • complete_inbox_v1_conversationsList conversations across every channel, newest activity first, 25 a page: query status (open, resolved, pending, snoozed, all), inbox_id (one channel), assignee_type (me, unassign…Reads private dataReads 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

    • private-dataThe name "complete_inbox_v1_conversations" says "inbox": it reads mail.
    • private-dataThe description's first sentence says "list" and "conversation": it reads messages.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe name "complete_inbox_v1_conversations" says "inbox": it reads inbound email, which other people can write.
    • untrusted-inputThe description's first sentence says "list" and "conversation": it reads messages, which other people can write.
    Description, as the server wrote it
    List conversations across every channel, newest activity first, 25 a page: query status (open, resolved, pending, snoozed, all), inbox_id (one channel), assignee_type (me, unassigned, assigned, all), labels, q (words in the messages), page. -- MakeHybrid API plan, GET /inbox/v1/conversations, group inbox.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • complete_inbox_v1_inboxesList the inboxes, one per connected channel: id, name and channel_type (Channel::Whatsapp, Channel::Telegram, Channel::Email, Channel::Sms, Channel::TwilioSms, Channel::Line, Chann…Reads private dataReads 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

    • private-dataThe name "complete_inbox_v1_inboxes" says "inbox": it reads mail.
    • private-dataThe description's first sentence says "list" and "inbox": it reads mail.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe name "complete_inbox_v1_inboxes" says "inbox": it reads inbound email, which other people can write.
    • untrusted-inputThe description's first sentence says "list" and "inbox": it reads inbound email, which other people can write.
    Description, as the server wrote it
    List the inboxes, one per connected channel: id, name and channel_type (Channel::Whatsapp, Channel::Telegram, Channel::Email, Channel::Sms, Channel::TwilioSms, Channel::Line, Channel::WebWidget, Channel::Api, Channel::Tiktok, Channel::Instagram, Channel::FacebookPage). Use the id as inbox_id elsewhere. -- MakeHybrid API plan, GET /inbox/v1/inboxes, group inbox.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • complete_usersGet a User Profile -- MakeHybrid API plan, GET /linkedin/v2/{account_id}/users/{user_id}, group users.Reads text others writeNo findings

    Why it is in this group

    • The description's first verb is "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 a User Profile -- MakeHybrid API plan, GET /linkedin/v2/{account_id}/users/{user_id}, group users.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • complete_webhooks_inboxRead the AI inbox: what happened on your connected LinkedIn accounts (messages received and sent, new relations, account status changes and checkpoints), in your shared inbox (inbo…Reads private dataReads text others writeNo findings

    Why it is in this group

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

    What it can reach

    • private-dataThe name "complete_webhooks_inbox" says "inbox": it reads mail.
    • private-dataThe description's first sentence says "read" and "inbox": it reads mail.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe name "complete_webhooks_inbox" says "inbox": it reads inbound email, which other people can write.
    • untrusted-inputThe description's first sentence says "read" and "inbox": it reads inbound email, which other people can write.
    Description, as the server wrote it
    Read the AI inbox: what happened on your connected LinkedIn accounts (messages received and sent, new relations, account status changes and checkpoints), in your shared inbox (inbox.* events) and on your X account (x.message_*), oldest first, kept 30 days. Pass query.after = the next value from your last read to see only what is new, query.event to filter, query.since for a time. -- MakeHybrid API plan, GET /linkedin/webhooks/inbox, group webhooks.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • makehybrid_describe_operationShow one operation in full: method, path, plan, group, required scope, path parameters, summary, the source file it was derived from, and the exact makehybrid_call arguments that i…Reads private dataNo findings

    Why it is in this group

    • The name "makehybrid_describe_operation" says "describe": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "show" and "file": it reads files.
    Description, as the server wrote it
    Show one operation in full: method, path, plan, group, required scope, path parameters, summary, the source file it was derived from, and the exact makehybrid_call arguments that invoke it. Use this before calling an operation you have not called before.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • makehybrid_list_operationsSearch the MakeHybrid LinkedIn API catalogue (431 operations: 431 MakeHybrid API) and get back a compact table of plan, method, path, group and operation id, plus the total number …Reads private dataNo findings

    Why it is in this group

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

    What it can reach

    • private-dataThe description's first sentence says "search" and "table": it reads databases.
    Description, as the server wrote it
    Search the MakeHybrid LinkedIn API catalogue (431 operations: 431 MakeHybrid API) and get back a compact table of plan, method, path, group and operation id, plus the total number of matches. Start here, then pass an id to makehybrid_describe_operation or makehybrid_call.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • makehybrid_statusReport the configured host, enabled plans, whether an API key is configured (never the key itself), the manifest's origin, digest and age, the operation count per plan, and whether…No findings

    Why it is in this group

    • The name "makehybrid_status" says "status": a word for reading.
    Description, as the server wrote it
    Report the configured host, enabled plans, whether an API key is configured (never the key itself), the manifest's origin, digest and age, the operation count per plan, and whether writes are enabled. Use this when a call fails unexpectedly.

    Annotations the server declares

    • readOnlyHint: 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.

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

Can send data out4
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__makehybrid__complete_chats_messages_send",
      "mcp__makehybrid__complete_inbox_v1_conversations_messages",
      "mcp__makehybrid__complete_posts",
      "mcp__makehybrid__complete_x_v1_messages"
    ]
  }
}

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 warn2 info
  • The description refers to "/linkedin/connect/credentials".

    Matched text

    description: "...heckpoint. -- MakeHybrid API plan, POST /linkedin/connect/credentials, group connect."

    What this check looks for
  • The input schema at properties.body.description refers to "/linkedin/connect/credentials".

    Matched text

    inputSchema.properties.body.description: "JSON request body for POST /linkedin/connect/credentials."

    What this check looks for
  • The server marks "complete_linkedin_search_people" 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 "complete_linkedin_search_people" says "search": a word for reading.

    What this check looks for
  • The server marks "complete_linkedin_search_posts" 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 "complete_linkedin_search_posts" says "search": a word for reading.

    What this check looks for
  • The title mentions "credential".

    Matched text

    title: "...k from their own browser. A cookie is a credential: do not ask for one in a conversation —..."

    What this check looks for
  • The description mentions "credential".

    Matched text

    description: "...k from their own browser. A cookie is a credential: do not ask for one in a conversation —..."

    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 makehybrid https://makehybrid.com/mcp
claude mcp add --transport http makehybrid https://makehybrid.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__makehybrid__makehybrid_list_operations",
      "mcp__makehybrid__makehybrid_describe_operation",
      "mcp__makehybrid__makehybrid_status",
      "mcp__makehybrid__complete_users",
      "mcp__makehybrid__complete_chats",
      "mcp__makehybrid__complete_webhooks_inbox",
      "mcp__makehybrid__complete_inbox_v1_inboxes",
      "mcp__makehybrid__complete_inbox_v1_conversations"
    ],
    "ask": [
      "mcp__makehybrid__makehybrid_about",
      "mcp__makehybrid__complete_connect_credentials",
      "mcp__makehybrid__complete_connect_cookie",
      "mcp__makehybrid__complete_connect_accounts",
      "mcp__makehybrid__complete_linkedin_search_people",
      "mcp__makehybrid__complete_linkedin_search_posts",
      "mcp__makehybrid__complete_chats_messages_send",
      "mcp__makehybrid__complete_posts",
      "mcp__makehybrid__complete_connect_link",
      "mcp__makehybrid__complete_inbox_v1_conversations_messages",
      "mcp__makehybrid__complete_x_v1_messages"
    ],
    "deny": [
      "mcp__makehybrid__makehybrid_call"
    ]
  }
}

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

Capability tags behind 18 rules
  • mcp__makehybrid__makehybrid_list_operations private-data
  • mcp__makehybrid__makehybrid_describe_operation private-data
  • mcp__makehybrid__makehybrid_call untrusted-input
  • mcp__makehybrid__complete_connect_credentials untrusted-input
  • mcp__makehybrid__complete_connect_cookie untrusted-input
  • mcp__makehybrid__complete_connect_accounts untrusted-input
  • mcp__makehybrid__complete_linkedin_search_people untrusted-input
  • mcp__makehybrid__complete_linkedin_search_posts untrusted-input
  • mcp__makehybrid__complete_users untrusted-input
  • mcp__makehybrid__complete_chats private-data, untrusted-input
  • mcp__makehybrid__complete_chats_messages_send untrusted-input, outbound
  • mcp__makehybrid__complete_posts untrusted-input, outbound
  • mcp__makehybrid__complete_webhooks_inbox private-data, untrusted-input
  • mcp__makehybrid__complete_connect_link untrusted-input
  • mcp__makehybrid__complete_inbox_v1_inboxes private-data, untrusted-input
  • mcp__makehybrid__complete_inbox_v1_conversations private-data, untrusted-input
  • mcp__makehybrid__complete_inbox_v1_conversations_messages untrusted-input, outbound
  • mcp__makehybrid__complete_x_v1_messages 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/com.makehybrid/makehybrid/verify?hash=1e72efca4d59c2d99d5afa534437358c3177e8ae512049a11be908ae1dd9bff2" | jq -e '.changed == false'

Pinned hash 1e72efca4d59, from Oct 31, 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.makehybrid/makehybrid/changes.xml

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

Badge

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

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