Skip to main content
Glama
simrelay

SimRelay MCP Server

Official
by simrelay

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SIMRELAY_TOKEN_FILENoOverride token storage path.~/.config/simrelay-mcp/tokens.json
SIMRELAY_API_BASE_URLNoPoint at staging or a self-hosted instance.https://simrelay.com
SIMRELAY_OAUTH_SCOPESNoSpace-separated scopes.mobile:device
SIMRELAY_OAUTH_CLIENT_IDNoOverride the bundled OAuth client (dev/staging only).built-in

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
simrelay_loginA

Sign in to SimRelay via OAuth. Opens the user's default browser to the SimRelay authorization page; after they authorize, tokens are saved locally and refreshed automatically. Returns the path where tokens were stored. Call this when the user asks to log in or when another tool fails with 'Not authenticated'.

simrelay_logoutA

Forget the saved SimRelay OAuth tokens. Idempotent — safe to call even when not signed in. After this, the next tool call that needs auth will require simrelay_login again.

list_simsA

List all SIMs the authenticated user can access, grouped by team. Each SIM includes id, phone_number, status, alias (organization-pivot label), organization, type, messages_received_count, and current lock state (unlocked, or locked-by-user with expiry). The response is structured as groups: [{ team, sims: [...] }, ...] plus a top-level flat sims array for convenience.

lock_simA

Acquire an exclusive lock on a SIM so other users/agents cannot send or read messages on it. Locks expire automatically after the server-configured TTL (typically a few minutes). Use the integer hosted_sim_id from list_sims.

release_sim_lockA

Release a previously acquired lock on a SIM. Idempotent — safe to call even if the lock has already expired or never existed.

get_sim_messagesA

Retrieve historical SMS messages for a SIM, paginated. Returns a normalized list (id, sim_id, direction, from, to, text, received_at) plus pagination metadata.

subscribe_to_messagesA

Open (or reuse) a WebSocket subscription that streams new SMS for the authenticated user. Each incoming SMS is pushed as an MCP notifications/message (logger=simrelay-sms, level=info, JSON-encoded payload). Also kept in an internal ring buffer of the most recent 100. Pass sim_id to filter to a single SIM. Idempotent — calling again updates the filter and returns the current subscription state.

wait_for_next_smsA

Block until the next SMS arrives (optionally filtered by sim_id) and return its payload. Use this when an agent expects a code/OTP imminently — the call returns synchronously with the message so you don't have to poll. Ensures a WebSocket subscription is open before waiting; reuses any existing one. Default timeout is 60s, max 300s. Throws after the timeout if no matching SMS arrives.

get_recent_smsA

Return the N most-recent SMS messages captured by the WebSocket subscription in this server's lifetime (in-memory ring buffer, capacity 100). Filter by sim_id if provided. Returns an empty list if the subscription was never started or no matching SMS has arrived since startup. For historical messages persisted by SimRelay, use get_sim_messages instead.

get_subscription_statusA

Return the current WebSocket subscription state, the channel we're listening on, the active filter, and the most recent buffered SMS events. Useful for diagnosing why messages aren't arriving.

unsubscribe_from_messagesA

Stop the real-time SMS stream and close the WebSocket. Idempotent — safe to call even if no subscription is active.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/simrelay/mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server