Skip to content

Model Context Protocol (MCP)

PushGo now natively supports the Model Context Protocol (MCP). MCP is an open protocol that enables AI models (like Claude, ChatGPT, etc.) to securely access local or remote tools and data.


PushGo MCP server supports two primary modes of operation:

FeatureOAuth2 Mode (Recommended)Legacy / Standard Mode
SecurityHigh (Token-based, scoped grants)Medium (Key-based or public)
Channel PasswordNOT required in tool argumentsREQUIRED in every tool call
Setup FlowOne-time OAuth binding requiredDirect access with gateway token
Best ForProduction AI agents, secure sharingPersonal scripts, trusted environments

The PushGo MCP server provides the following core capabilities:

AI models can use the following tools for various push operations:

  • pushgo.message.send: Send a standard push message.
    • Parameters: channel_id (Required), title (Required), body, url, images, severity, ttl, metadata, thing_id (Optional scope).
    • Note: Passing password is forbidden in OAuth2 mode; it is required in Legacy mode.
  • pushgo.event.create: Create a new lifecycle event.
  • pushgo.event.update: Update an existing event’s status or information.
  • pushgo.event.close: Close an active event.
    • Core Parameters: event_id (Required for update/close), status, message, severity, event_time, started_at, ended_at.
  • pushgo.thing.create: Create a persistent object in a channel.
  • pushgo.thing.update: Update object attributes.
  • pushgo.thing.archive: Archive an object.
  • pushgo.thing.delete: Permanently delete an object.
    • Core Parameters: thing_id (Required), title, description, tags, external_ids, location_type, location_value.

2. Authorization & Channel Management (mcp:channels:manage)

Section titled “2. Authorization & Channel Management (mcp:channels:manage)”

Used to manage the binding relationship between the AI assistant and user channels:

  • pushgo.channel.list: List all channels currently authorized for the AI assistant.
  • pushgo.channel.unbind: Revoke the AI assistant’s access to a specific channel.
  • pushgo.channel.bind.start: Initiate a channel binding (or revocation) session.
    • Parameters: action (“bind” or “revoke”), requested_channel_id (Optional suggestion).
    • Returns: bind_url (User must open this in a browser to complete OAuth authorization).
  • pushgo.channel.bind.status: Poll the status of a binding session.
    • Parameters: bind_session_id.

AI models can read the following resources:

  • pushgo://channels: A list of all authorized channels.
  • pushgo://channels/{channel_id}: Detailed status and recent audit summaries for a specific channel.

In your self-hosted environment, set the following environment variables:

Terminal window
PUSHGO_MCP_ENABLED=true
PUSHGO_PUBLIC_BASE_URL=https://your-gateway.com

For example, in Claude Desktop, add the following to your configuration file:

{
"mcpServers": {
"pushgo": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/inspector", "https://your-gateway.com/mcp"]
}
}
}

(Note: PushGo uses HTTP SSE or JSON-RPC transport and supports standard OAuth2 authentication)

  1. The AI assistant will first attempt to call pushgo.channel.bind.start.
  2. it will provide an authorization URL (e.g., https://your-gateway.com/mcp/bind/session?...).
  3. Open this URL in your browser and select the channel you wish to authorize for the AI.
  4. Once authorized, the AI assistant can automatically send messages through that channel.

MCP access is controlled by two primary scopes:

  • mcp:tools: Allows calling push tools.
  • mcp:channels:manage: Allows managing channel authorizations and reading resources.

If you wish to avoid dynamic registration, you can specify clients at startup:

Terminal window
PUSHGO_MCP_PREDEFINED_CLIENTS="my_client_id:my_client_secret"