Skip to main content
Glama
nabinkhair42

Tallwatch

by nabinkhair42
README.md
# Tallwatch MCP

Public install wrapper for the [Tallwatch](https://tallwatch.com) MCP server. The server is hosted at `https://api.tallwatch.com/mcp`. There is no npm package and no local `npx` process.

Check org status, list monitors, triage incidents, see who is on call, and (with a write key) pause monitors or ack/resolve incidents. Same ops surface as the [CLI](https://docs.tallwatch.com/integrations/cli). Guide: [docs.tallwatch.com/integrations/mcp](https://docs.tallwatch.com/integrations/mcp).

This repo holds the Cursor plugin files. The server code lives in the Tallwatch API (`packages/mcp`).

## Install

1. Create a key in [Settings → API keys](https://app.tallwatch.com/settings/api-keys). The `tw_live_…` secret is shown once. **Copy prompt** on that page pastes client-specific setup into the agent.
2. Merge the block for **this client**. Prefer user-level config so the key is not git-tracked. The URL field name is not the same in every client; the wrong key is ignored or falls back to SSE.

Cursor (`~/.cursor/mcp.json`). Remote entries use `url` and `headers`. Do not set `type`.

```json
{
  "mcpServers": {
    "tallwatch": {
      "url": "https://api.tallwatch.com/mcp",
      "headers": {
        "Authorization": "Bearer tw_live_your_key_here"
      }
    }
  }
}
```

You can put the secret in the environment instead: `"Authorization": "Bearer ${env:TALLWATCH_API_KEY}"`. Reload MCP in Cursor Settings.

| Client | Config |
| --- | --- |
| Cursor | `~/.cursor/mcp.json` (user) or `.cursor/mcp.json` (project). `url` + `headers`. No `type`. |
| VS Code | Command Palette → **MCP: Open User Configuration**, or `.vscode/mcp.json`. Key is `servers`, not `mcpServers`. `"type": "http"` is required. |
| Claude Code | `claude mcp add --scope user --transport http --header "Authorization: Bearer tw_live_your_key_here" tallwatch https://api.tallwatch.com/mcp` |
| Claude Desktop | `claude_desktop_config.json` is stdio-only. Bridge with `mcp-remote`. Connectors are OAuth-only and will not send this Bearer key. |
| Codex | `~/.codex/config.toml`. `url` plus `bearer_token_env_var = "TALLWATCH_API_KEY"` (the env var **name**, not the token). |
| Devin Desktop | `~/.codeium/windsurf/mcp_config.json`. URL field is `serverUrl`. |
| Devin CLI | `~/.config/devin/mcp_config.json` or `.devin/mcp_config.local.json`. Uses `url`. |
| Gemini CLI | `httpUrl`, not `url` (`url` is SSE). `gemini mcp add --scope user --transport http --header "Authorization: Bearer tw_live_your_key_here" tallwatch https://api.tallwatch.com/mcp` |
| Cline | `~/.cline/mcp.json`. `"type": "streamableHttp"` is required. |
| Continue | `config.yaml` or `.continue/mcpServers/`. `type: streamable-http`. Headers under `requestOptions`. |

VS Code:

```json
{
  "servers": {
    "tallwatch": {
      "type": "http",
      "url": "https://api.tallwatch.com/mcp",
      "headers": {
        "Authorization": "Bearer tw_live_your_key_here"
      }
    }
  }
}
```

Codex:

```toml
[mcp_servers.tallwatch]
url = "https://api.tallwatch.com/mcp"
bearer_token_env_var = "TALLWATCH_API_KEY"
```

Full snippets: [docs.tallwatch.com/integrations/mcp](https://docs.tallwatch.com/integrations/mcp).

## Tools

Prefer `get_status` when asking what is broken. Same capability set as the CLI (minus browser login / browse / import).

| Scope | Tools |
| --- | --- |
| `read` | `get_status`, `whoami`, `list_monitors`, `get_monitor`, `list_incidents`, `get_incident`, `list_oncall_now`, `list_status_pages`, `get_status_page` |
| `write` | `create_monitor`, `update_monitor`, `pause_monitor`, `resume_monitor`, `trigger_test_check`, `acknowledge_incident`, `resolve_incident`, `add_postmortem` |