EZ Texting MCP — Onboarding

Your EZ Texting account, accessible from any AI assistant. Connect once. Ask anything.
v1.0.3 · com.eztexting/mcp
Quick jump

Overview

What is MCP?

Model Context Protocol (MCP) is an open standard that lets AI assistants securely connect to external tools and data. EZ Texting's MCP server puts your account directly inside the AI clients you already use. No switching tabs, no copy-paste.

EZ Texting MCP exposes 37 tools — send SMS/MMS, manage contacts and groups, run workflows, fetch reports, manage webhooks, query account state.

Prefer remote. If your client speaks Streamable HTTP MCP, point it at https://mcp.eztexting.com/mcp directly. No npm, no Node, no child process, faster startup, auto-updates server-side. Use the local stdio bridge only when the client doesn't support remote yet.

1. Remote — Streamable HTTP recommended

Claude.ai, ChatGPT, Claude Desktop, Claude Code, Cursor 0.46+, VS Code 1.99+, Windsurf, Cline 3.0+.

Endpoint: https://mcp.eztexting.com/mcp. OAuth 2.1 PKCE auto-discovered.

2. Local — stdio bridge

Fallback: clients without native remote MCP support, air-gapped envs, or proxy quirks.

Runs npx -y @eztexting/mcp-server as child process. Tokens cached in ~/.mcp-auth/.

Prerequisites

Claude.ai (web)

  1. Go to claude.ai → Settings → Connectors.
  2. Click Add custom connector.
  3. Name: EZ Texting
  4. URL:
    https://mcp.eztexting.com/mcp
  5. Save → Click Connect → OAuth pop-up → sign in.

Available on Pro / Max / Team / Enterprise plans.

ChatGPT

ChatGPT supports remote MCP via custom connectors (Plus / Pro / Team / Enterprise — Developer mode).

  1. Settings → Connectors → Advanced settings → enable Developer mode.
  2. Connectors → Create.
  3. Name: EZ Texting
  4. MCP Server URL:
    https://mcp.eztexting.com/mcp
  5. Auth: OAuth (auto-discovered).
  6. Save → Connect → sign in.

Claude Desktop

Remote — Custom Connector (recommended)

  1. Settings → Connectors → Add custom connector.
  2. Name: EZ Texting
  3. URL: https://mcp.eztexting.com/mcp
  4. Save → Connect → OAuth pop-up → sign in.

Pro / Max / Team / Enterprise plans. No config file, no Node.

Local stdio — fallback

Edit your config file, then fully quit + relaunch Claude Desktop.

OSPath
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json
Linux~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "eztexting": {
      "command": "npx",
      "args": ["-y", "@eztexting/mcp-server"]
    }
  }
}

Verify: Settings → Developer → MCP Servers. eztexting shown as "running".

Claude Code

Remote — HTTP transport (recommended)

claude mcp add --transport http eztexting https://mcp.eztexting.com/mcp

Scope flag works the same:

claude mcp add --transport http --scope user eztexting https://mcp.eztexting.com/mcp
claude mcp add --transport http --scope project eztexting https://mcp.eztexting.com/mcp

Or in ~/.claude.json / .mcp.json:

{
  "mcpServers": {
    "eztexting": {
      "type": "http",
      "url": "https://mcp.eztexting.com/mcp"
    }
  }
}

Verify: claude mcp list. First tool call triggers OAuth.

Local stdio — fallback

claude mcp add eztexting -- npx -y @eztexting/mcp-server

Or JSON:

{
  "mcpServers": {
    "eztexting": {
      "command": "npx",
      "args": ["-y", "@eztexting/mcp-server"]
    }
  }
}

Cursor (0.46+)

Remote (recommended)

Edit ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):

{
  "mcpServers": {
    "eztexting": {
      "type": "http",
      "url": "https://mcp.eztexting.com/mcp"
    }
  }
}

Or: Settings → MCP → Add new MCP server → choose HTTP transport.

Local stdio — fallback

{
  "mcpServers": {
    "eztexting": {
      "command": "npx",
      "args": ["-y", "@eztexting/mcp-server"]
    }
  }
}

VS Code 1.99+ (GitHub Copilot Chat — Agent Mode)

Remote (recommended)

Command palette → MCP: Open User Configuration. Add:

{
  "servers": {
    "eztexting": {
      "type": "http",
      "url": "https://mcp.eztexting.com/mcp"
    }
  }
}

Workspace scope: same shape in .vscode/mcp.json. Open Copilot Chat → Agent mode → eztexting tools surface.

Local stdio — fallback

{
  "servers": {
    "eztexting": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@eztexting/mcp-server"]
    }
  }
}

Windsurf (Codeium)

Edit ~/.codeium/windsurf/mcp_config.json (or: Settings → Cascade → MCP Servers → Add).

Remote (recommended)

{
  "mcpServers": {
    "eztexting": {
      "serverUrl": "https://mcp.eztexting.com/mcp"
    }
  }
}

Local stdio — fallback

{
  "mcpServers": {
    "eztexting": {
      "command": "npx",
      "args": ["-y", "@eztexting/mcp-server"]
    }
  }
}

Restart Windsurf after editing.

Cline 3.0+ (VS Code extension)

Open Cline panel → MCP Servers icon → Configure MCP Servers → opens cline_mcp_settings.json.

Remote (recommended)

{
  "mcpServers": {
    "eztexting": {
      "type": "streamableHttp",
      "url": "https://mcp.eztexting.com/mcp",
      "disabled": false,
      "autoApprove": []
    }
  }
}

Local stdio — fallback

{
  "mcpServers": {
    "eztexting": {
      "command": "npx",
      "args": ["-y", "@eztexting/mcp-server"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

Save → Cline auto-restarts server. Refresh MCP panel if tools don't appear.

Zed

Zed remote-MCP support is limited as of writing. Use the local stdio bridge.

Open ~/.config/zed/settings.json. Add under context_servers:

{
  "context_servers": {
    "eztexting": {
      "command": {
        "path": "npx",
        "args": ["-y", "@eztexting/mcp-server"]
      },
      "settings": {}
    }
  }
}

Restart Zed. Tools surface in the assistant panel.

Available tools

37 tools across 4 functional groups. Names exposed unprefixed (no cross-group collisions).

Messaging — 12 tools

ToolPurpose
message_sendSend SMS / MMS to one or more recipients
message_listList sent messages with filters (date, status, recipient)
message_getFetch a single message by ID
message_template_listList templates; pass id to fetch one
message_template_upsertCreate or update a template
message_template_deleteDelete a template
conversation_listList conversation threads (inbox)
conversation_messagesFetch messages within a thread
conversation_messages_markMark thread messages read / unread
conversation_stateGet / set thread state (open, closed, archived)
message_report_getFetch delivery + engagement report for a campaign
message_report_responsesFetch response data tied to a sent message

Contacts — 11 tools

ToolPurpose
contact_listList contacts with filters / pagination
contact_getFetch a single contact by ID
contact_upsertCreate or update a contact
contact_deleteDelete a contact
contact_group_listList contact groups; pass id to fetch one
contact_group_upsertCreate or update a group
contact_group_deleteDelete a group
contact_group_membershipAdd / remove contacts in a group
contact_field_listList custom contact fields
contact_field_upsertCreate or update a custom field
contact_field_deleteDelete a custom field

Workflows — 7 tools

ToolPurpose
wf_fetchFetch a workflow definition
wf_saveCreate or update a workflow
wf_statusActivate / deactivate a workflow (publish / unpublish)
wf_statGet aggregated workflow stats
wf_templatesList available workflow templates
wf_create_from_templateInstantiate a workflow from a template
wf_schemaFetch workflow JSON schema

Workflow publishing eligibility is exposed via account_details (workflowPublishAllowed).

Admin — 7 tools

ToolPurpose
account_detailsAccount info, plan, balance, workflow publishing eligibility
buy_creditsPurchase message credits
stat_getAccount stats — type=MSG (delivery) or AI_COMPOSE (AI usage)
webhook_listList webhooks; pass id to fetch one
webhook_createRegister a new webhook
webhook_deleteRemove a webhook
keyword_listList keyword auto-responders

Sub-servers (narrow scopes)

Use the unified /mcp endpoint by default. Pick a sub-server when you want a smaller tool catalog or a separate identity.

Sub-serverRemote URLSample tools
messaginghttps://mcp.eztexting.com/mcp/messagingmessage_send, conversation_list, message_template_upsert
contactshttps://mcp.eztexting.com/mcp/contactscontact_upsert, contact_group_membership, contact_field_list
workflowshttps://mcp.eztexting.com/mcp/workflowswf_save, wf_create_from_template, wf_status
adminhttps://mcp.eztexting.com/mcp/adminaccount_details, buy_credits, webhook_create

Remote — pin one sub-server

Point your client at the sub-server URL directly. Example (Claude Code):

claude mcp add --transport http eztexting-messaging https://mcp.eztexting.com/mcp/messaging

Or JSON (Cursor / VS Code / Claude Desktop / Claude Code):

{
  "mcpServers": {
    "eztexting-messaging": {
      "type": "http",
      "url": "https://mcp.eztexting.com/mcp/messaging"
    }
  }
}

Local stdio — pin one sub-server

{
  "mcpServers": {
    "eztexting-messaging": {
      "command": "npx",
      "args": ["-y", "@eztexting/mcp-server", "--server", "messaging"]
    }
  }
}

Example prompts

Send SMS

"Send 'Order shipped — track at ez.tx/abc' to +15555550123."

uses message_send
Bulk import

"Add these 50 contacts to group 'VIP-2026' from contacts.csv."

uses contact_upsert, contact_group_membership
Drip workflow

"Create a 3-step drip from the 'Welcome' template, send Day 0/3/7."

uses wf_create_from_template, wf_save
Reporting

"How many messages did we send last week, broken out by day?"

uses stat_get, message_report_get
Webhooks

"Register a webhook at https://my.app/ez for incoming replies."

uses webhook_create
Inbox triage

"List unread conversations and summarize the top 5."

uses conversation_list, conversation_messages