---
title: "nativeMsg MCP server"
url: "https://martechdb.com/vendors/nativemsg"
markdown_url: "https://martechdb.com/vendors/nativemsg.md"
api_url: "https://martechdb.com/api/v1/vendors/nativemsg.com"
updated: "2026-10-01"
---

# nativeMsg MCP server

Yes. nativeMsg publishes an official MCP server at https://mcp.nativemsg.com/mcp. It's hosted. It offers 52 tools. We last checked it on 1 Oct 2026. MartechDB lists only servers the vendor publishes itself, never community servers.

- Website: [nativemsg.com](https://nativemsg.com)
- Categories: [Email & messaging](https://martechdb.com/categories/email-messaging.md)

## nativeMsg MCP server

- Address: https://mcp.nativemsg.com/mcp
- Runs: Hosted
- Sign-in: Sign-in: see vendor docs (`unknown`)
- Official MCP Registry: not listed
- How we know it's official: Live check of the vendor's own web address
- First seen: 2026-10-01
- Last checked: 2026-10-01
- Recent checks: 2 of the last 2 reachable

### Tools (52)

As the server lists them on 2026-10-01. Names and descriptions come from the vendor's server.

- `list_channel_types`: List every messaging channel type supported by nativeMsg. Returns an array of \`{ name, description }\`. Channel-type ids include \`rcs\`, \`dlc\`, \`dsc\`, \`fb\`, \`twr\`, \`alx\`, \`web\`, \`bmp\`. Used as the \`channelType\` field on channel-creation calls.
- `check_rcs_capability`: Check whether a phone number supports RCS, and which RCS features. Returns \`{ rbmEnabled: bool, features: string\[\], name: string\|null }\`. Features include codes like \`RICHCARD\_STANDALONE\`, \`ACTION\_DIAL\`, \`ACTION\_OPEN\_URL\`, \`RICHCARD\_CAROUSEL\`. Pass \`channel\_id\` to scope the check to a specific RCS channel; omit to use the account default.
- `lookup_phone_capability`: Carrier and line-type metadata for any phone number. Returns \`{ callingCountryCode, countryCode, carrierName, mobileCountryCode, lineType, format, phoneNumber, valid, validationErrors }\`. \`lineType\` is one of: landline, mobile, fixedVoip, nonFixedVoip, personal, tollFree, premium, sharedCost, uan, voicemail, pager, unknown.
- `list_channels`: List every messaging channel configured in the account. A channel represents a connection to one messaging destination (RCS agent, SMS short/long code, Facebook page, web chat, etc.). The returned objects carry \`id\`, \`channelType\` (e.g. 'rcs', 'dlc', 'fb', 'web'), \`botId\`, \`name\`, and \`description\`. Pass \`bot\_id\` to filter to channels for a single bot.
- `get_channel`: Fetch one channel's full details by id.
- `get_channel_subscription_count`: Get the number of humans currently subscribed to a channel. Returns \`{ channelId, subscribedHumansCount }\`.
- `subscribe_humans_to_channel`: Bulk subscribe humans to a channel. Subscribed humans become eligible to receive messages sent to that channel. Returns \`{ channelId, subscribedHumansCount }\`.
- `unsubscribe_humans_from_channel`: Bulk unsubscribe humans from a channel. Returns \`{ channelId, unsubscribedHumansCount }\`.
- `add_humans_by_phones`: Bulk-create humans on a channel by phone number; optionally tag/subscribe.
- `list_humans`: List every human (end-user / contact) in the connected nativeMsg account. Returns a JSON array of human objects with fields including \`id\`, \`name\`, \`firstName\`, \`lastName\`, \`phoneNumber\`, \`email\`, \`botEnabled\`, \`channels\`, \`subscribedChannels\`, and \`customFields\`. No pagination is documented; large accounts may return many records. Use \`find\_humans\_by\_attributes\` to filter, or \`get\_human\` for a single record.
- `get_human`: Fetch a single human by id. Returns the full human object including channels, subscriptions, custom fields, RCS capability flags, and bot-enabled state.
- `find_humans_by_attributes`: Find humans whose custom attribute matches a predicate. Wraps \`GET /humans?filters=...\` for the common single-condition case. \`operator\` is one of: present, absent, equal, notEqual, greater, greaterOrEqual, less, lessOrEqual. The \`value\` argument is required for all operators except \`present\` and \`absent\`. Note: type mismatches (e.g. a numeric operator against a string attribute) silently match nothing — they do not raise an error.
- `get_human_subscription`: Get a human's channel-subscription status. Returns \`{ channelId, humanId, subscription: bool }\` for the human's primary channel.
- `get_human_tags`: List the tags currently assigned to a human. Returns an array of tag objects: \`{ id, name, description, dateCreated, dateUpdated }\`.
- `assign_tags_to_human`: Assign one or more tags to a human. Provide exactly one of \`tag\_names\` (assign by name; names that don't exist will be created) or \`tag\_ids\` (assign by existing tag id). Returns \`{ code, message }\`.
- `unassign_tags_from_human`: Remove one or more tags from a human. Provide exactly one of \`tag\_names\` or \`tag\_ids\`. Returns \`{ code, message }\`.
- `update_human_attributes`: Add or update arbitrary custom attributes on a human.
- `set_human_bot_enabled`: Enable or disable the conversational bot for a single human. When disabled, the bot stops responding automatically in that human's conversation — useful when a human agent has taken over. Returns the full updated human object.
- `send_rcs_text_message`: Send a plain-text RCS message to one or more humans. NON-REVERSIBLE. Delivers an actual SMS/RCS message and may incur per-message charges. Confirm with the user before calling.
- `send_rcs_media_message`: Send an image / audio / video / file RCS message. NON-REVERSIBLE.
- `send_rcs_buttons_message`: Send an RCS message with action buttons (suggested actions). NON-REVERSIBLE.
- `send_rcs_quick_replies_message`: Send an RCS message with tap-to-reply chips (quick replies). NON-REVERSIBLE. Quick replies are short text chips the user taps to reply with a pre-filled message. Up to 11 replies.
- `send_rcs_carousel_message`: Send an RCS swipeable carousel of cards. NON-REVERSIBLE.
- `send_rcs_rich_card_message`: Send an RCS rich card (single card with media + suggestions). NON-REVERSIBLE.
- `send_rcs_list_message`: Send an RCS list message (sectioned list of items). NON-REVERSIBLE.
- `send_message_from_template`: Send a saved message template to one or more humans. NON-REVERSIBLE.
- `schedule_text_message`: Schedule a plain-text RCS message to send later. NON-REVERSIBLE. Wraps \`POST /v1/messages?scheduledDate=...&misfireType=...\` for the most common scheduling case. For scheduled sends of richer payloads (carousel, rich-card, etc.), use the dashboard or open a request — see TODO.md.
- `get_message_status`: Look up delivery status for every message produced by a send request. Pass the \`requestId\` returned by a send-message tool. A single send may fan out to many recipients (one row per recipient). Each row carries \`id\`, \`humanId\`, \`channelId\`, \`status\` (single-letter code: A=Accepted, P=Pending, S=Sent, D=Delivered, F=Failed, Q=Queued, R=Read), \`messageType\` (O=Outbound, I=Inbound, B=Blast), \`delivered\`, and the original \`message\` payload.
- `get_message`: Fetch a single message row by its numeric message id. Use \`get\_message\_status\` first if you only have a \`requestId\`.
- `list_bots`: List every conversational bot configured in the account. A bot is a scripted conversation flow attached to one or more channels. Returned objects include \`id\`, \`name\`, \`interactions\` (the bot's flow definition — large nested object), \`dateCreated\`, \`currentRevision\`, and \`latestRevision\`.
- `get_bot`: Fetch one bot by id, including its full interactions tree.
- `list_blasts`: List every blast (saved broadcast) in the account. A blast is a reusable broadcast definition created in \`draft\` status and sent via the messages endpoint. Returned objects carry \`id\`, \`title\`, \`message\`, \`bot\`, \`channels\`, \`tags\`, \`recipientsNumber\`, \`status\` (\`draft\`/\`sent\`/\`scheduled\`/\`processing\`), and \`sendingProgress\`.
- `get_blast`: Fetch one blast by id with its message body, schedule, and status.
- `get_blast_recipients`: List the humans targeted by a blast, with per-recipient delivery status.
- `get_blast_recipients_count`: Count of recipients for a blast (useful before sending to confirm scope). Shape varies by blast status: \`draft\`/\`scheduled\`/\`sent\` returns a single integer; \`processing\` returns per-status counts (read/pending/queued/ accepted/delivered/failed/sent/total).
- `get_blast_tags`: List the tags assigned to a blast (used to derive its recipients).
- `get_blast_channels`: List the channels through which a blast will be sent.
- `send_blast`: Trigger a saved blast to send immediately. NON-REVERSIBLE. Once a blast is sent it cannot be unsent. Confirm the blast's recipient scope with \`get\_blast\_recipients\_count\` before calling. Wraps \`POST /v1/messages\` with \`{ blastId }\`. Returns: \`{ requestId }\` — pass to \`get\_message\_status\` to track delivery.
- `schedule_blast`: Schedule a saved blast to send at a future time. NON-REVERSIBLE once it fires. Use \`cancel\_blast\_schedule\` to cancel before it fires.
- `cancel_blast_schedule`: Cancel a scheduled (not-yet-fired) blast. Has no effect on blasts that have already fired or been sent. Returns \`{ code, message }\`.
- `assign_blast_tags`: Replace the set of tags on a blast (REPLACE SEMANTICS). All previously assigned tags are removed first, then the new set is applied. Pass empty/None for both args to clear all tags. The blast's recipients are recomputed as the intersection of (humans with any of the tags) and (humans subscribed to the assigned channels).
- `assign_blast_channels`: Replace the set of channels on a blast (REPLACE SEMANTICS). All previously assigned channels are removed and replaced by \`channel\_ids\`. Pass an empty list to unassign all channels.
- `list_tags`: List every tag defined in the account. Returns an array of \`{ id, name, description, dateCreated, dateUpdated }\`.
- `get_tag`: Fetch a single tag by id.
- `list_tags_for_humans`: List the tags assigned to a set of humans, grouped by human. Wraps \`GET /tags?humanIds=...\`. Useful for bulk lookups instead of calling \`get\_human\_tags\` per id.
- `list_humans_by_tag`: List every human carrying a given tag.
- `list_message_templates`: List every message template available in the account. Templates are saved Message Object payloads that can be sent via the messages endpoint with a \`templateId\`. Returned objects include \`id\`, \`name\`, \`data\` (the saved Message Object), \`readOnly\` (true = system template), \`dateCreated\`, and \`dateUpdated\`.
- `get_message_template`: Fetch a single message template by id, including its full payload.
- `list_webhooks`: List every webhook receiver registered on the account.
- `get_webhook`: Fetch one webhook by id, including its url and event subscriptions.
- `list_integrations`: List every third-party integration configured on the account.
- `get_integration`: Fetch one integration by id.

### Connect it

Claude Code:

```sh
claude mcp add --transport http nativemsg https://mcp.nativemsg.com/mcp
```

- Add to Cursor: <cursor://anysphere.cursor-deeplink/mcp/install?name=nativemsg&config=eyJ1cmwiOiJodHRwczovL21jcC5uYXRpdmVtc2cuY29tL21jcCJ9>
- Add to VS Code: <vscode:mcp/install?%7B%22name%22%3A%22nativemsg%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.nativemsg.com%2Fmcp%22%7D>
- Claude.ai and Claude Desktop: Customize, Connectors, "+", Add custom connector, then paste https://mcp.nativemsg.com/mcp
- ChatGPT: Settings, Apps, Advanced settings, turn on Developer mode, Create, then paste https://mcp.nativemsg.com/mcp (this usually works only with servers that use self-serve sign-in or none)

JSON for Cursor, Windsurf and other clients that connect to hosted servers:

```json
{
    "mcpServers": {
        "nativemsg": {
            "type": "http",
            "url": "https://mcp.nativemsg.com/mcp"
        }
    }
}
```

## Questions

### Does nativeMsg have an official MCP server?

Yes. nativeMsg publishes its MCP server itself. Its address is on nativeMsg's own domain (mcp.nativemsg.com). MartechDB only lists servers a vendor publishes, never community copies.

### What is the nativeMsg MCP server URL?

The address is https://mcp.nativemsg.com/mcp.

### How do I connect nativeMsg MCP to Claude, ChatGPT or Cursor?

In Claude, add https://mcp.nativemsg.com/mcp as a custom connector (Customize, Connectors, Add custom connector). In Cursor, use the Add to Cursor link on MartechDB's page, or paste the JSON settings into your mcp.json. In Claude Code, run: claude mcp add --transport http nativemsg https://mcp.nativemsg.com/mcp

### What can the nativeMsg MCP server do?

It offers 52 tools, including list\_channel\_types, check\_rcs\_capability, lookup\_phone\_capability, list\_channels and get\_channel (as listed on 1 Oct 2026).

### Is the nativeMsg MCP server in the official MCP Registry?

No. nativeMsg hasn't published it to the official MCP Registry.

### Is the nativeMsg MCP server working?

Yes. It answered our most recent check. We last checked it on 1 Oct 2026.

## Alternatives with an official MCP server

In Email & messaging:

- [AppsFlyer](https://martechdb.com/vendors/appsflyer.md) (appsflyer.com)
- [Twilio](https://martechdb.com/vendors/twilio.md) (twilio.com)
- [Kochava](https://martechdb.com/vendors/kochava.md) (kochava.com)
- [Jampp](https://martechdb.com/vendors/jampp.md) (jampp.com)

## Get this data

- API: `curl https://martechdb.com/api/v1/vendors/nativemsg.com`
- MCP: `claude mcp add --transport http martechdb https://martechdb.com/mcp`, then ask about nativeMsg.
- Web page: https://martechdb.com/vendors/nativemsg
