Skip to main content
Glama

Product Hunt MCP

A read-only MCP server wrapping the Product Hunt API v2 (GraphQL), served over Streamable HTTP so it runs on Vercel with no persistent process.

Built to be registered as a Composio custom toolkit, but it works with any MCP client (Claude, Cursor, OpenClaw, ChatGPT).

Deploy with Vercel

Tools

Tool

What it does

ph_get_posts

List launches. Filter by date range, topic, featured. Order by RANKING / NEWEST / VOTES / FEATURED_AT.

ph_get_post

Full detail for one launch by slug or id, including makers.

ph_get_post_comments

Read a launch's comment thread.

ph_search_topics

Search topics/categories, returns slugs for filtering.

ph_get_user

Profile, follower counts and recent launches for a maker.

ph_whoami

Verify the token works and see whose account it is.

ph_graphql

Escape hatch for arbitrary read queries. Mutations are blocked.

Related MCP server: mcp-producthunt

Deploy

Hit the Deploy button above, or import the repo at vercel.com/new. No environment variables are required.

Your endpoint will be https://<your-project>.vercel.app/api/mcp. Adding a custom domain (e.g. producthunt.yourdomain.com) gives you a stable URL that doesn't leak the Vercel project name.

Authentication

Credentials are passed per request and never stored on the server:

Authorization: Bearer <your-product-hunt-developer-token>

X-ProductHunt-Token: <token> also works. As a fallback for single-user setups, set PRODUCTHUNT_TOKEN as a Vercel environment variable and clients can skip the header entirely.

Get a token: producthunt.com/v2/oauth/applications → Add an application → copy the Developer Token (not the API Key / API Secret pair above it, those are for the full OAuth flow).

Register as a Composio custom toolkit

Dashboard form:

  • Display name: Product Hunt

  • MCP server URL: https://<your-domain>/api/mcp

  • Authentication: API Key

  • Header: Authorization with format Bearer {{generic_api_key}}

  • Advanced settings → Toolkit ID: PRODUCTHUNT

Or via the API:

curl -X POST https://backend.composio.dev/api/v3.1/custom/toolkits/upsert \
  -H "x-api-key: $COMPOSIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "slug": "PRODUCTHUNT",
    "toolkit_config": {
      "name": "Product Hunt",
      "app_url": "https://<your-domain>/api/mcp",
      "auth_schemes": [
        {
          "mode": "API_KEY",
          "headers": { "Authorization": "Bearer {{generic_api_key}}" }
        }
      ]
    }
  }'

Then create the auth config with is_enabled_for_tool_router: true, connect an account using your developer token as the API key, and POST /api/v3.1/custom/toolkits/sync to pull the tool list in.

Note: Composio will not let you change app_url on an existing custom toolkit. If you registered a placeholder URL first, delete and re-create it.

Smoke test

curl -sN -X POST https://<your-domain>/api/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer $PRODUCTHUNT_TOKEN" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

You should get seven tools back. Then try a real call:

curl -sN -X POST https://<your-domain>/api/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer $PRODUCTHUNT_TOKEN" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"ph_get_posts","arguments":{"first":5}}}'

Local dev

npm install
npm run dev
# endpoint at http://localhost:3000/api/mcp

Limits

  • Read-only by design. ph_graphql rejects mutations. Product Hunt also requires manual approval for write scopes.

  • Rate limit: 6,250 complexity points per 15 minutes. The server surfaces a clear error on 429 and warns in logs when the budget drops below 500.

  • Runs on the Node runtime (needs node:async_hooks for per-request credential isolation), not Edge.

MIT.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A read-only research MCP server that provides search and browsing tools for Hacker News, Reddit, and Product Hunt. Works with zero API keys for basic use.
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Provides read-only Chatty Pi tools via a streamable HTTP MCP endpoint, enabling access to user profile, posts, notifications, and YuvaBucks balance.
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pmcostadev/producthunt-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server