Skip to main content
Glama
jhartum

reddit-research-mcp

by jhartum
README.md
# reddit-research-mcp

`reddit-research-mcp` is a fork/remake of the `pi-reddit-research` [Pi](https://docs.pi.dev) extension by [SaintNerona](https://github.com/SaintNerona) — [github.com/SaintNerona/pi-reddit-research](https://github.com/SaintNerona/pi-reddit-research). It was converted from a Pi extension into a standalone MCP Server, with the core logic minimally changed.

MCP server for compact Reddit research packs.

## Features

Registers these tools:

- `reddit_url_extract` — parse Reddit URLs, permalinks, post IDs, and comment IDs.
- `reddit_resolve_subreddits` — find and rank subreddit candidates for a topic.
- `reddit_pack` — build a compact evidence pack from posts and top comments.
- `reddit_search` — search Reddit posts without fetching full comment threads.
- `reddit_thread` — fetch one thread and top comments.
- `reddit_subreddits` — raw subreddit search.
- `reddit_trends` — inspect hot/top/new posts in one or more subreddits.

## Install

```json
{
  "mcpServers": {
    "reddit-research": {
      "command": "npx",
      "args": [
        "-y",
        "git+https://github.com/jhartum/reddit-research-mcp.git"
      ],
      "env": {
        "REDDIT_SESSION": "${REDDIT_SESSION}",
        "REDDIT_TOKEN_V2": "${REDDIT_TOKEN_V2}"
      }
    }
  }
}
```

For local development:

```bash
git clone https://github.com/jhartum/reddit-research-mcp.git
cd reddit-research-mcp
npm install
npm run build
```

Then point your MCP client at `node /path/to/reddit-research-mcp/dist/index.js`.

## Usage

Ask questions like:

- "What does Reddit think about Claude Code vs OpenCode?"
- "Find Reddit fixes for this error: ..."
- "What settings do ComfyUI users recommend for ...?"

## Configuration

### 1. JSON config (recommended)

Since mid-2026, Reddit requires authentication for `.json` access. Create `~/.pi/agent/reddit-research.json`:

```json
{
  "cookie": "reddit_session=abc123; token_v2=def456"
}
```

Or reference a separate cookie file:

```json
{
  "cookieFile": "/home/user/.config/pi-reddit-research/cookie.txt"
}
```

**Advantages:**
- No env vars to manage
- The server re-reads the config before requests, so you can update the cookie without restarting
- `cookieFile` keeps the secret outside the JSON config and shell startup files

**Security:** your Reddit cookie is a secret. Do not commit it to git or public dotfiles.

### 2. Environment variables (alternative)

| Variable | Default | Description |
| --- | --- | --- |
| `REDDIT_CACHE_DIR` | `~/.cache/reddit-research-mcp` | Cache directory. |
| `REDDIT_SQLITE_PATH` | `$REDDIT_CACHE_DIR/reddit.sqlite` | SQLite cache path. |
| `REDDIT_USER_AGENT` | `reddit-research-mcp/1.0 (https://github.com/jhartum/reddit-research-mcp)` | User-Agent for Reddit JSON requests. |
| `REDDIT_DELAY_MS` | `1200` | Minimum delay between Reddit requests. |
| `REDDIT_CACHE_TTL_MS` | `3600000` | Search/request cache TTL. |
| `REDDIT_THREAD_TTL_MS` | `21600000` | Thread cache TTL. |
| `REDDIT_SUBREDDIT_TTL_MS` | `604800000` | Subreddit cache TTL. |
| `REDDIT_TOPIC_TTL_MS` | `2592000000` | Topic-to-subreddit cache TTL. |
| `REDDIT_MAX_OUTPUT_CHARS` | `14000` | Max compact output size. |
| `REDDIT_COOKIE` | — | Reddit session cookie value. Overrides config file. |
| `REDDIT_COOKIE_FILE` | — | Path to a file with the Cookie header value. Overrides config file. |
| `REDDIT_CONFIG_PATH` | `~/.pi/agent/reddit-research.json` | Path to JSON config file. |

**Cookie source priority (highest to lowest):**
1. `REDDIT_COOKIE` env var
2. `REDDIT_COOKIE_FILE` env var → reads file
3. `cookie` field in JSON config
4. `cookieFile` field in JSON config → reads file

## Notes

This server uses Reddit's `.json` endpoints with local SQLite caching. **Since mid-2026, Reddit requires authentication for `.json` access.** Set your cookie in `~/.pi/agent/reddit-research.json`, via `cookieFile`, or via env vars to restore functionality.

Treat Reddit posts and comments as anecdotal evidence, not verified facts.

### How to get your Reddit cookie

1. Open a **private/incognito** browser window (to avoid unrelated cookies).
2. Go to https://www.reddit.com/login and sign in.
3. F12 → Application → Cookies → `reddit.com`.
4. **Method A (full Cookie header):** Click any cookie → Ctrl+A → Ctrl+C, then pick "Copy as string" (Chrome) or paste into an editor and join with `; `.
5. **Method B (only `reddit_session`):** Copy the value of the `reddit_session` cookie and use:

   ```bash
   # Via config file:
   echo '{"cookie": "reddit_session=YOUR_VALUE"}' > ~/.pi/agent/reddit-research.json

   # Or keep the secret in a separate file:
   mkdir -p ~/.config/reddit-research-mcp
   printf '%s\n' 'reddit_session=YOUR_VALUE' > ~/.config/reddit-research-mcp/cookie.txt
   printf '{"cookieFile":"%s/.config/reddit-research-mcp/cookie.txt"}\n' "$HOME" > ~/.pi/agent/reddit-research.json

   # Or via env:
   export REDDIT_COOKIE="reddit_session=YOUR_VALUE"
   ```

**Important:** Avoid cookies with JSON values (like `g_state={"i_l":1,...}`) — they break the JSON config file. If you copy the full Cookie header, remove entries like `g_state`, `eu_cookie`, and `seeker_session`. Only `reddit_session` and `token_v2` are needed for authentication.

The cookie expires after a few days. When that happens, just update it in the config or cookie file — the server will pick up the change automatically.

## License

MIT

TDQS

B3.2/5.0

Scored across 7 tools

Disambiguation3/5

Reddit_subreddits and reddit_resolve_subreddits both find subreddits for a topic, creating potential confusion. Reddit_search and reddit_trends both return posts but differ in scope and parameters, though still somewhat distinct. The remaining tools are well-differentiated.

Naming Consistency2/5

Tool names lack a consistent pattern; some are nouns (reddit_pack, reddit_subreddits, reddit_thread, reddit_trends) while others are verbs (reddit_search) or verb-noun phrases (reddit_resolve_subreddits, reddit_url_extract). This mixed convention reduces predictability.

Tool Count5/5

With 7 tools, the server covers essential Reddit research capabilities without being bloated or sparse. Each tool serves a distinct purpose within the domain, and the count feels well-scoped for a research-oriented MCP server.

Completeness4/5

The tool set covers major research workflows: finding subreddits, searching posts, fetching threads, and getting trends. Minor gaps exist, such as lacking a dedicated tool for subreddit-specific search or comment-only extraction, but these can be worked around.

Maintenance

ActivitySlowing
ResponsivenessSyncing