MCP Server

The seven Model Context Protocol server lets AI assistants like Claude Desktop, Claude Code and Cursor interact with the seven.io API directly. It exposes SMS, RCS, voice, lookups, contacts and account management as more than 40 tools across 12 categories.

You have two ways to connect the server:

  • Hosted server (URL) - connect directly to https://mcp.seven.io/mcp without any installation. Streamable HTTP transport, OAuth login opens automatically in your browser.
  • Local install (npx) - the npm package @seven.io/mcp launched via npx over the MCP stdio transport. Source on GitHub.
PropertyHosted (URL)Local (npx)
TransportStreamable HTTPstdio
AuthenticationOAuth 2.0 (PKCE)OAuth 2.0 or API key
Installationnonenpx fetches on demand
Updatesserver-side, automaticon every npx start
Headless supportyesAPI key only
Token storageinside the MCP clientOS keychain

Hosted server (URL)

Add https://mcp.seven.io/mcp to your MCP client. The server uses the Streamable HTTP transport (not SSE) and OAuth 2.0 with PKCE via Authorization Server Discovery.

Claude Code

claude mcp add --transport http seven https://mcp.seven.io/mcp

Cursor

Add the server to your project's .cursor/mcp.json:

{
  "mcpServers": {
    "seven": {
      "url": "https://mcp.seven.io/mcp"
    }
  }
}

Claude Desktop

The simplest way is through the UI: Settings → Connectors → Add custom connector, enter the URL https://mcp.seven.io/mcp. Claude then opens the OAuth login in your browser.

Alternatively, add the snippet to your claude_desktop_config.json using the mcp-remote bridge:

{
  "mcpServers": {
    "seven": {
      "command": "npx",
      "args": ["mcp-remote", "https://mcp.seven.io/mcp"]
    }
  }
}

Authentication

On the first connection the MCP client discovers the OAuth endpoint automatically, opens your browser, requests the necessary scopes (SMS, Voice, RCS, …) and stores the tokens. No manual login step required.


Local install (npx)

The npm package @seven.io/mcp is launched by your MCP client via npx. A global install is not necessary - npx fetches the latest version on demand. If you want one anyway:

npm install -g @seven.io/mcp

Claude Code

claude mcp add seven npx @seven.io/mcp

Cursor

Add the server to your project's .cursor/mcp.json:

{
  "mcpServers": {
    "seven": {
      "command": "npx",
      "args": ["@seven.io/mcp"]
    }
  }
}

Claude Desktop

Edit your claude_desktop_config.json:

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": {
    "seven": {
      "command": "npx",
      "args": ["@seven.io/mcp"]
    }
  }
}

Authentication

The local variant supports two methods. OAuth 2.0 with PKCE is recommended - automatic token refresh, fine-grained scopes and tokens stored securely in your operating system's keychain. If both methods are configured, OAuth takes priority.

OAuth 2.0 (recommended)

Run the login command once. It opens your browser, requests the necessary scopes and stores the tokens.

npx @seven.io/mcp login

Other CLI commands:

# Show whether you are signed in
npx @seven.io/mcp status

# Remove the stored tokens
npx @seven.io/mcp logout

API key (legacy)

Set the SEVEN_API_KEY environment variable. Create your key in the seven.io dashboard.

export SEVEN_API_KEY="your-api-key"

In the client configuration:

{
  "mcpServers": {
    "seven": {
      "command": "npx",
      "args": ["@seven.io/mcp"],
      "env": {
        "SEVEN_API_KEY": "your-api-key"
      }
    }
  }
}

Headless or remote setups

The OAuth login flow needs a browser on the same machine that can reach 127.0.0.1:7177 / 9437 / 8659. If you run the MCP server on a headless box or via SSH without port forwarding, switch to the hosted server (URL) or use the API key variant - both paths work without a local browser.


Available tools

The server provides more than 40 tools grouped by capability.

Messaging

ToolDescription
send_smsSend an SMS
delete_smsDelete a scheduled SMS
send_rcsSend an RCS message
delete_rcsDelete an RCS message
rcs_eventsHandle RCS events
send_voiceSend a text-to-speech call
hangup_voiceEnd an active voice call

Account

ToolDescription
get_balanceCheck your account balance
get_pricingGet pricing per country
get_analyticsView account statistics

Lookup

ToolDescription
lookup_formatValidate a phone number's format
lookup_hlrHome Location Register (network, roaming)
lookup_mnpMobile Number Portability (carrier info)
lookup_cnamCaller ID name lookup
lookup_rcsCheck whether a number supports RCS

Status & logbook

ToolDescription
get_statusCheck delivery status
get_logbook_sentView sent messages
get_logbook_receivedView received SMS
get_logbook_voiceView voice call history

Phone numbers

ToolDescription
get_available_numbersList numbers available to order
order_numberPurchase a phone number
get_active_numbersList your active numbers
get_numberGet a number's details
update_numberUpdate a number's configuration
delete_numberCancel a number

Contacts

ToolDescription
list_contactsList all contacts
create_contactCreate a new contact
get_contactGet a contact by ID
update_contactUpdate a contact
delete_contactDelete a contact

Groups

ToolDescription
list_groupsList all groups
create_groupCreate a new group
get_groupGet a group by ID
update_groupUpdate a group
delete_groupDelete a group

Subaccounts

ToolDescription
list_subaccountsList all subaccounts
create_subaccountCreate a new subaccount
update_subaccountUpdate a subaccount
transfer_creditsTransfer credits to a subaccount
delete_subaccountDelete a subaccount

Webhooks

ToolDescription
list_webhooksList registered webhooks
create_webhookRegister a new webhook
delete_webhookRemove a webhook

Sender

ToolDescription
validate_senderValidate a sender identifier

Examples

Once the server is connected, you can ask the assistant in plain language. The MCP client picks the right tool automatically.

Send an SMS:

Send an SMS to +49170123456789 saying 'Order shipped, track at example.com/t/abc123'.

The assistant calls send_sms.

Check your balance:

What is my seven.io account balance?

The assistant calls get_balance.

Pricing per country:

What does an SMS to France, Spain and the United States cost?

The assistant calls get_pricing and filters the results.

Carrier lookup and RCS check:

Look up the carrier for +49170123456789 and tell me whether the number supports RCS.

The assistant chains lookup_mnp and lookup_rcs.

Reachability check, then send:

Use HLR to check whether +49170123456789 is reachable. If yes, send an SMS saying 'Meeting tomorrow at 10am'.

The assistant calls lookup_hlr and decides based on the result whether to run send_sms.

Create a subaccount and transfer credits:

Create a subaccount for our new team and transfer 50 EUR of credits to it.

The assistant chains create_subaccount and transfer_credits.


Troubleshooting


Debug logging

Set SEVEN_LOG_FILE to log every API request and response to a file. Useful when a tool call doesn't behave as expected.

{
  "mcpServers": {
    "seven": {
      "command": "npx",
      "args": ["@seven.io/mcp"],
      "env": {
        "SEVEN_API_KEY": "your-api-key",
        "SEVEN_LOG_FILE": "/tmp/mcp-seven-debug.log"
      }
    }
  }
}

Then tail the file:

tail -f /tmp/mcp-seven-debug.log

Resources

Last updated: 2 weeks ago