---
title: "MCP server"
description: "Give Claude, Cursor, VS Code or Codex Reddit posts, subreddits and search through threadapi's remote MCP server."
---

> Documentation Index
> Fetch the complete documentation index at: https://staging.threadapi.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP server

threadapi runs a remote MCP server. There's nothing to install: point your client at the URL, then sign in to threadapi when the client asks, or send an API key.

| | |
| :--- | :--- |
| **URL** | `https://api.threadapi.dev/mcp` |
| **Transport** | Streamable HTTP |
| **Auth** | OAuth sign-in, or `Authorization: Bearer <YOUR_API_KEY>` |
| **Billing** | Tool calls cost the same as the REST routes. Connecting and listing tools is free. |

No account yet? An agent can create one for its user: see [Agent sign-up](/docs/agent-signup).

## Tools

| Tool | What it does | Credits |
| :--- | :--- | :--- |
| `get_reddit_post` | A raw Reddit post with its full comment tree as pristine Markdown (default) or raw JSON. Zero AI summarization; delivers full ground-truth content. Arguments: `post` (URL, comment permalink or ID), `comment` and `context` to focus on one comment, `max_comments` (default 200), `format` (`markdown` or `json`), `digest` (boolean, default `false`). | 1 for up to 500 comments, +1 per further 100 |
| `get_reddit_items` | Up to 100 raw posts by ID (`t3_` or bare ID) or URL via fast bulk lookup. Arguments: `ids` (comma-separated). | 1 |
| `list_subreddit_posts` | Hot, new, top, rising or controversial posts. Arguments: `subreddit`, `sort`, `time`, `limit`, `after`, `nsfw`. | 1 |
| `get_subreddit` | A subreddit's description, subscribers and rules. Arguments: `subreddit`. | 1 |
| `get_reddit_user` | A user's karma and badges, and with `include` their recent `posts` or `comments`. Arguments: `name`, `include`. | 1, or 2 with `include` |
| `search_reddit` | Posts, comments, subreddits or users matching a query. Supports direct comment search without CDN blocks. Arguments: `query`, `type` (`post`, `comment`, `subreddit` or `user`), `subreddit`, `sort`, `time`, `limit`, `after`, `nsfw`. | 1 |
| `create_monitor` | Creates a new keyword monitor on public Reddit posts and comments. Scans the real-time Reddit firehose. Arguments: `name`, `keywords` (array of strings, 1-20), `exclude`, `subreddits`, `posts`, `comments`, `nsfw`, `webhook_url`, `webhook_kind`. | 10 credits / day |
| `update_monitor` | Updates an existing monitor's settings, keywords, subreddits, or webhook. Pass `webhook_url: ""` to remove an existing webhook. Arguments: `monitor_id`, `name`, `keywords`, `exclude`, `subreddits`, `posts`, `comments`, `nsfw`, `webhook_url`, `webhook_kind`. | 0 |
| `pause_monitor` | Pauses an active keyword monitor. Stops scanning and stops daily charges at once. Arguments: `monitor_id`. | 0 |
| `resume_monitor` | Resumes a paused keyword monitor and restarts scanning. Charges 10 credits for 1 day. Arguments: `monitor_id`. | 10 credits / day |
| `delete_monitor` | Permanently deletes a keyword monitor and stops daily charges at once. Arguments: `monitor_id`. | 0 |
| `list_monitors` | Lists all active keyword monitors on your account, with their IDs, status, keywords, subreddits, and match counts. | 0 |
| `get_monitor_matches` | Matches detected by one of your [monitors](/docs/monitors) in compact text format. Arguments: `monitor_id`, `order` (`oldest` default or `newest`), `after` (cursor for oldest), `before` (cursor for newest), `limit` (default 100). | 0 |

Errors come back as tool errors with a hint for the model, and cost nothing.

## Resources

Read-only context providers exposed through MCP URIs:

| Resource URI Template | MIME Type | Description |
| :--- | :--- | :--- |
| `reddit://post/{id}` | `text/markdown` | Direct markdown representation of a raw Reddit post and its full comment tree. |
| `reddit://r/{subreddit}/hot` | `text/plain` | Top hot posts from a subreddit in JSON format. |

## Client Setup

### Cursor

Add to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (project-specific):

```json
{
  "mcpServers": {
    "threadapi": {
      "url": "https://api.threadapi.dev/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
```

### Claude Desktop

Add to `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "threadapi": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-fetch", "https://api.threadapi.dev/mcp"]
    }
  }
}
```

### Claude Code

Run in your terminal:

```bash
claude mcp add --transport http threadapi https://api.threadapi.dev/mcp
```

### Windsurf

Add to `~/.codeium/windsurf/mcp_config.json`:

```json
{
  "mcpServers": {
    "threadapi": {
      "serverUrl": "https://api.threadapi.dev/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
```

### VS Code

Install the Model Context Protocol extension, then add to your settings:

```json
{
  "mcp": {
    "servers": {
      "threadapi": {
        "type": "http",
        "url": "https://api.threadapi.dev/mcp",
        "headers": {
          "Authorization": "Bearer YOUR_API_KEY"
        }
      }
    }
  }
}
```

Source: https://staging.threadapi.dev/docs/mcp/index.mdx
