🚀 Product Hunt MCP Server
A plug-and-play MCP server for Product Hunt
✨ What is this?
Product Hunt MCP Server connects Product Hunt's API to any LLM or agent that speaks the Model Context Protocol (MCP). Perfect for AI assistants, chatbots, or your own automations!
- 🔍 Get posts, collections, topics, users
- 🗳️ Get votes, comments, and more
- 🛠️ Use with Claude Desktop, Cursor, or any MCP client
🛠️ Features
- Get detailed info on posts, comments, collections, topics, users
- Search/filter by topic, date, votes, etc.
- Paginated comments, user upvotes, and more
- Built with FastMCP for speed and compatibility
🧑💻 Who is this for?
- AI/LLM users: Plug into Claude Desktop, Cursor, or your own agent
- Developers: Build bots, dashboards, or automations with Product Hunt data
- Tinkerers: Explore the MCP ecosystem and build your own tools
🏁 Setup
Prerequisites
- Python 3.10+
- Product Hunt API token (get one here)
- You'll need to create an account on Product Hunt
- Navigate to the API Dashboard and create a new application
- Use the
Developer Tokenfor the token
Installation
Preferred: uv (fast, modern Python installer)
# Install uv if you don't have it
pip install uv
Install from PyPI (recommended)
uv pip install product-hunt-mcp
# or
pip install product-hunt-mcp
Install from GitHub (latest main branch)
uv pip install 'git+https://github.com/jaipandya/producthunt-mcp-server.git'
# or
pip install 'git+https://github.com/jaipandya/producthunt-mcp-server.git'
Install locally from source
uv pip install .
# or
pip install .
🚀 Usage with Claude Desktop & Cursor
Once installed, the product-hunt-mcp command will be available. Add it to your Claude Desktop or Cursor configuration:
{
"mcpServers": {
"product-hunt": {
"command": "product-hunt-mcp",
"env": {
"PRODUCT_HUNT_TOKEN": "your_token_here"
}
}
}
}
- Replace
your_token_herewith your actual Product Hunt API token. - The token must be set as an environment variable in your Claude Desktop or Cursor config for the server to authenticate.
- Always restart your client (Claude Desktop/Cursor) after editing the config file.
Finding your configuration file
-
Claude Desktop:
- Windows:
%APPDATA%\claude-desktop\config.json - macOS:
~/Library/Application Support/claude-desktop/config.json - Linux:
~/.config/claude-desktop/config.json
- Windows:
-
Cursor:
- Windows:
%APPDATA%\Cursor\User\settings.json - macOS:
~/Library/Application Support/Cursor/User/settings.json - Linux:
~/.config/Cursor/User/settings.json
- Windows:
Docker
You can also run the server using Docker:
# Build the Docker image
docker build -t product-hunt-mcp .
# Run the Docker container (interactive for MCP)
docker run -i --rm -e PRODUCT_HUNT_TOKEN=your_token_here product-hunt-mcp
For Claude Desktop/Cursor integration with Docker, use this configuration:
{
"mcpServers": {
"product-hunt": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "PRODUCT_HUNT_TOKEN=your_token_here", "product-hunt-mcp"],
"env": {}
}
}
}
Security Note: Your
PRODUCT_HUNT_TOKENis sensitive. Do not share it or commit it to version control.
🛠️ MCP Tools
| Tool | Description | Key Parameters |
|---|---|---|
| get_post_details | Get info about a specific post | id or slug, comments_count, comments_after |
| get_posts | Get posts with filters | topic, order, count, featured, posted_before, posted_after |
| get_comment | Get info about a specific comment | id (required) |
| get_post_comments | Get comments for a post | post_id or slug, order, count, after |
| get_collection | Get info about a collection | id or slug |
| get_collections | Get collections with filters | featured, user_id, post_id, order, count |
| get_topic | Get info about a topic | id or slug |
| search_topics | Search topics | query, followed_by_user_id, order, count |
| get_user | Get info about a user | id or username, posts_type, posts_count |
| get_viewer | Get info about the authenticated user | None |
| check_server_status | Check server/API status & authentication | None |
🏗️ Project Structure
product-hunt-mcp/
├── src/
│ └── product_hunt_mcp/ # Main package directory
│ ├── __init__.py
│ ├── cli.py # Command-line entry point
│ ├── api/ # API clients & queries
│ ├── schemas/ # Data validation schemas
│ ├── tools/ # MCP tool definitions
│ └── utils/ # Utility functions
├── pyproject.toml # Project metadata, dependencies, build config
├── README.md
├── CONTRIBUTING.md
├── CHANGELOG.md
├── Dockerfile
└── ... (config files, etc.)
🔄 Rate Limiting
The Product Hunt API has rate limits that this client respects. If you encounter rate limit errors, the client will inform you when the rate limit resets. You can check your current rate limit status using the get_api_rate_limits or check_server_status tools.
🐛 Troubleshooting
- Missing token: Ensure your
PRODUCT_HUNT_TOKENis correctly set as an environment variable. - Connection issues: Verify your internet connection and that the Product Hunt API is accessible.
- Rate limiting: If you hit rate limits, wait until the reset time or reduce your query frequency.
- Claude Desktop/Cursor not finding the server: Verify the path to your Python executable and restart the client.
🤝 Contributing
- PRs and issues welcome!
- Please follow PEP8 and use ruff for linting.
- See
pyproject.tomlfor dev dependencies.
🌐 Links
📝 Notes
- This project is not affiliated with Product Hunt.
- The Product Hunt API is subject to change.
📜 License
MIT
Metadata
Release files for product-hunt-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| product_hunt_mcp-0.1.0.tar.gz | 53.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| product_hunt_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 80.8 kB
Release files / product_hunt_mcp-0.1.0.tar.gz
| Download URL | product_hunt_mcp-0.1.0.tar.gz |
|---|---|
| Size | 53.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
53c70bee912c83ff8028bdb35cbb9fd2b184f72e42790c989620aae6166be706
|
|
BLAKE2b-256 checksum How to use checksums |
e5069aa6b87f21bbac9618d734b50c7be664c783c3f6692678a2cbf113207265
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.10
|
Release files / product_hunt_mcp-0.1.0-py3-none-any.whl
| Download URL | product_hunt_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 27.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a53f49005503f8dddfad4d9d863804c580f79c684cd5a8443cb3679bb9db4a45
|
|
BLAKE2b-256 checksum How to use checksums |
ea18c907937a31903a08fc91003ae26b0769c1cffec9974a6d38a5584e487b4a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.10
|
Security for product-hunt-mcp 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.