# Simplepush MCP server

> An agent sends tasks and notifications to mobile phones and queries the resulting answers to build a knowledge base.

- Repository: https://github.com/simplepush/simplepush-mcp
- Page: https://hostedmcp.org/servers/simplepush/simplepush-mcp
- Transport: stdio, remote
- Stars: 0
- Latest version: 0.5.0

## Install

### Claude Code

```sh
claude mcp add --env 'SP_API_TOKEN=<YOUR_SP_API_TOKEN>' --env 'SP_INTEGRATION_TOKEN=<YOUR_SP_INTEGRATION_TOKEN>' --env 'SP_KEYS=<YOUR_SP_KEYS>' simplepush-mcp -- npx -y @simplepush/mcp
```

### Cursor (`~/.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "simplepush-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@simplepush/mcp"
      ],
      "env": {
        "SP_API_TOKEN": "<YOUR_SP_API_TOKEN>",
        "SP_INTEGRATION_TOKEN": "<YOUR_SP_INTEGRATION_TOKEN>",
        "SP_KEYS": "<YOUR_SP_KEYS>"
      }
    }
  }
}
```

### VS Code (`.vscode/mcp.json`)

```json
{
  "servers": {
    "simplepush-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@simplepush/mcp"
      ],
      "env": {
        "SP_API_TOKEN": "<YOUR_SP_API_TOKEN>",
        "SP_INTEGRATION_TOKEN": "<YOUR_SP_INTEGRATION_TOKEN>",
        "SP_KEYS": "<YOUR_SP_KEYS>"
      }
    }
  }
}
```

### VS Code CLI

```sh
code --add-mcp '{"name":"simplepush-mcp","type":"stdio","command":"npx","args":["-y","@simplepush/mcp"],"env":{"SP_API_TOKEN":"<YOUR_SP_API_TOKEN>","SP_INTEGRATION_TOKEN":"<YOUR_SP_INTEGRATION_TOKEN>","SP_KEYS":"<YOUR_SP_KEYS>"}}'
```

### Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "simplepush-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@simplepush/mcp"
      ],
      "env": {
        "SP_API_TOKEN": "<YOUR_SP_API_TOKEN>",
        "SP_INTEGRATION_TOKEN": "<YOUR_SP_INTEGRATION_TOKEN>",
        "SP_KEYS": "<YOUR_SP_KEYS>"
      }
    }
  }
}
```

### Codex

```sh
codex mcp add simplepush-mcp --env 'SP_API_TOKEN=<YOUR_SP_API_TOKEN>' --env 'SP_INTEGRATION_TOKEN=<YOUR_SP_INTEGRATION_TOKEN>' --env 'SP_KEYS=<YOUR_SP_KEYS>' -- npx -y @simplepush/mcp
```

### Codex config.toml (`~/.codex/config.toml`)

```toml
[mcp_servers.simplepush-mcp]
command = "npx"
args = ["-y", "@simplepush/mcp"]

[mcp_servers.simplepush-mcp.env]
SP_API_TOKEN = "<YOUR_SP_API_TOKEN>"
SP_INTEGRATION_TOKEN = "<YOUR_SP_INTEGRATION_TOKEN>"
SP_KEYS = "<YOUR_SP_KEYS>"
```

### Gemini CLI

```sh
gemini mcp add -s user -e 'SP_API_TOKEN=<YOUR_SP_API_TOKEN>' -e 'SP_INTEGRATION_TOKEN=<YOUR_SP_INTEGRATION_TOKEN>' -e 'SP_KEYS=<YOUR_SP_KEYS>' simplepush-mcp npx -- -y @simplepush/mcp
```

### Gemini settings.json (`~/.gemini/settings.json`)

```json
{
  "mcpServers": {
    "simplepush-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@simplepush/mcp"
      ],
      "env": {
        "SP_API_TOKEN": "<YOUR_SP_API_TOKEN>",
        "SP_INTEGRATION_TOKEN": "<YOUR_SP_INTEGRATION_TOKEN>",
        "SP_KEYS": "<YOUR_SP_KEYS>"
      }
    }
  }
}
```

## Environment variables

| Name | Required | Secret | Description |
|---|---|---|---|
| `SP_API_TOKEN` | no | yes | Personal API token from the API Token screen in the Simplepush app. Set this or SP_INTEGRATION_TOKEN. |
| `SP_INTEGRATION_TOKEN` | no | yes | Organization integration token from `sp integration create`. Set this or SP_API_TOKEN; unlocks member, topic and broadcast targeting and end-to-end encryption. |
| `SP_KEYS` | no | yes | Personal encryption keys exported from the app, comma-separated: a bare base64 key is the Personal Password key, `topic=key` binds a key to one topic. |
| `SP_BASE_URL` | no | no | API origin. |
| `SP_MAX_WAIT_SECONDS` | no | no | Ceiling on how long send_task may block waiting for answers. |

## Tools (14)

- `send_notification`
- `send_task`
- `append_subtask`
- `cancel_task`
- `get_task_answer`
- `get_notification_answer`
- `query_tasks`
- `get_task`
- `get_group_status`
- `query_events`
- `query_submissions`
- `search_knowledge`
- `get_activity`
- `download_attachment`

## FAQ

### How can I send a task and wait for a response?

Use the `send_task` tool, which can take various inputs like text, choices, photos, or voice recordings and waits for answers.

### Can I search through previous tasks and submissions?

Yes, the `search_knowledge` tool allows for full-text and location-based searches over all tasks, notifications, and ad-hoc submissions.

### Is my data secure?

Yes, the server supports end-to-end encryption for organizations and allows personal encryption using keys exported from the Simplepush app.

### What happens if a task times out?

A timeout is not a cancellation; the questions remain live on phones and answers can be retrieved later.
