pullpush-mcp
# pullpush-mcp
An MCP (Model Context Protocol) server for the [PullPush.io](https://pullpush.io/) Reddit API. This allows Claude and other MCP-compatible AI assistants to search Reddit comments and submissions.
PullPush.io provides access to Reddit's historical data, making it possible to search posts and comments that may no longer be available through Reddit's official API.
## Tools
### `search_comments`
Search Reddit comments with the following parameters:
| Parameter | Type | Description |
|-----------|------|-------------|
| `q` | string | Search query across all comment fields |
| `subreddit` | string | Filter by subreddit (without r/ prefix) |
| `author` | string | Filter by username |
| `after` | string | Results after date (epoch or relative: `30d`, `1y`) |
| `before` | string | Results before date (epoch or relative: `30d`, `1y`) |
| `sort` | `asc` \| `desc` | Sort order (default: desc) |
| `sort_type` | `created_utc` \| `score` | Sort field (default: created_utc) |
| `size` | number | Results to return (1-100, default: 100) |
### `search_submissions`
Search Reddit posts/submissions with the following parameters:
| Parameter | Type | Description |
|-----------|------|-------------|
| `q` | string | Search query across all fields |
| `subreddit` | string | Filter by subreddit (without r/ prefix) |
| `author` | string | Filter by username |
| `title` | string | Search in titles only |
| `selftext` | string | Search in post body only |
| `after` | string | Results after date (epoch or relative: `30d`, `1y`) |
| `before` | string | Results before date (epoch or relative: `30d`, `1y`) |
| `sort` | `asc` \| `desc` | Sort order (default: desc) |
| `sort_type` | `created_utc` \| `score` \| `num_comments` | Sort field |
| `size` | number | Results to return (1-100, default: 25) |
| `score` | string | Filter by score (`>100`, `<50`, or exact) |
| `num_comments` | string | Filter by comment count (`>10`, `<5`, or exact) |
| `over_18` | boolean | Filter NSFW content |
| `is_video` | boolean | Filter video posts |
| `locked` | boolean | Filter locked posts |
| `stickied` | boolean | Filter stickied posts |
| `spoiler` | boolean | Filter spoiler posts |
## Installation
### npm (recommended)
```bash
npm install -g pullpush-mcp
```
### From source
```bash
git clone https://github.com/jacklenzotti/pullpush-mcp.git
cd pullpush-mcp
npm install
npm run build
```
## Usage with Claude Desktop
Add to your Claude Desktop config file:
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
Using npm (recommended):
```json
{
"mcpServers": {
"pullpush": {
"command": "npx",
"args": ["-y", "pullpush-mcp"]
}
}
}
```
Using a local build:
```json
{
"mcpServers": {
"pullpush": {
"command": "node",
"args": ["/absolute/path/to/pullpush-mcp/build/index.js"]
}
}
}
```
Restart Claude Desktop after updating the config.
## Example Prompts
Once configured, you can ask Claude:
- "Find all posts by user spez from the last year"
- "Search for comments mentioning 'typescript' in r/programming"
- "Show me the top 20 posts in r/LocalLLaMA sorted by score"
- "Find comments by user GovSchwarzenegger"
- "Search r/machinelearning for posts about transformers with more than 100 upvotes"
## Development
```bash
# Build
npm run build
# Type check
npm run typecheck
# Test with MCP Inspector
npm run inspect
```
## API Reference
This server uses the [PullPush.io API](https://pullpush.io/). PullPush provides free access to Reddit's historical data without requiring authentication.
## License
MIT
TDQS
Scored across 2 tools
The two tools target distinct Reddit content types: comments and submissions. There is no overlap in purpose, and an agent can easily distinguish between them based on tool names and descriptions.
Both tool names follow the same verb_noun pattern (search_comments, search_submissions), using snake_case and a consistent verb 'search' followed by the target entity.
With only 2 tools, the server is minimal. While appropriate for a focused search-only purpose, it borders on being too thin for broader Reddit interaction, but not extreme.
The server only provides search functionality, lacking tools for retrieving individual posts/comments by ID, creating, updating, or deleting content. Significant gaps exist for a typical Reddit interaction workflow.