PainSpotter MCP Server
This server lets you search and retrieve validated business opportunities discovered from Reddit, Hacker News, and Product Hunt discussions. It exposes two core tools:
query_opportunities— Search and filter business opportunities by keyword (matched against title and description), minimum overall score (0–100), platform (reddit,hackernews,producthunt), recommendation tier (Build,Validate, orSkip), and page size (1–30 results, sorted by score descending).get_opportunity— Retrieve full details for a specific opportunity by ID, including its description, score breakdown, MVP feature suggestions, competitor landscape, differentiation angles, risk assessment, community evidence count, and related blog URL (if available).
Additionally, the hosted remote endpoint offers extra tools such as category overviews, trending pain-point themes (list_trending_themes, get_theme), and free weekly blog analyses (list_blog_posts, get_blog_post). Note that searching opportunities requires a Pro tier API key on the hosted endpoint, while retrieving opportunity details is available at the Free tier.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PainSpotter MCP ServerWhat are the trending pain points in healthcare?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PainSpotter MCP Server
Query PainSpotter business opportunities and weekly blog analyses directly from Claude, Cursor, or any MCP client.
PainSpotter mines Reddit, Hacker News and Product Hunt discussions and uses LLMs to surface validated business opportunities, organized in three layers: Category (domain) → Theme (a clustered pain point with trend signal) → Opportunity (a concrete product idea with commercial scores). The Blog publishes weekly long-form analyses of selected opportunities (free to read, built for AI citation).
Two ways to connect
Remote (recommended — zero install)
Point your client at the hosted endpoint and pass your API key as a header. Create a key at https://painspotter.ai/account.
Claude / Cursor (~/.cursor/mcp.json or Claude connectors):
{
"mcpServers": {
"painspotter": {
"url": "https://painspotter.ai/mcp/",
"headers": { "X-API-Key": "psk_live_your_key" }
}
}
}Local (stdio fallback)
The local stdio package talks to the public REST API. It exposes opportunity search plus free blog tools (no key needed for blog). For the full 7-tool hosted set (overview, trending themes, theme detail), use the remote endpoint above.
pip install painspotter-mcp # or: uvx painspotter-mcp{
"mcpServers": {
"painspotter": {
"command": "uvx",
"args": ["painspotter-mcp"],
"env": {
"PAINSPOTTER_API_KEY": "psk_live_your_key",
"PAINSPOTTER_API_BASE": "https://painspotter.ai"
}
}
}
}Related MCP server: FounderSignal
Tools & tiering
Hosted endpoint (https://painspotter.ai/mcp/) — 7 tools
Tool | Tier | Quota cost | Description |
| Free | 1 | Categories overview + trending snapshot |
| Free | 1 | Full detail of one opportunity (+ related blog URL if any) |
| Free | 0 | Recent published weekly analyses |
| Free | 0 | Full Markdown of one blog article |
| Pro | 2 | Filter by keyword / score / platform / recommendation / category |
| Pro | 2 | Pain points trending up right now |
| Pro | 4 | Theme-level market signal + underlying opportunities |
Local stdio package — 4 tools
Tool | Key required | Description |
| Yes | Filter opportunities (Pro-equivalent search via v1 API) |
| Yes | Full opportunity detail |
| No | Recent published blog posts |
| No | Full Markdown of one article |
Free keys can call the free hosted tools; Pro and Business keys unlock everything. Blog tools (list_blog_posts, get_blog_post) never consume quota on the hosted endpoint. Other calls deduct from the key's monthly allowance (Free 20 / Pro 1000 / Business 5000 units). Upgrade at https://painspotter.ai/pricing.
License
MIT — see LICENSE.
Available Tools
4 toolsget_blog_postGet Blog PostARead-onlyIdempotent
Get the full Markdown body of one published blog post by its slug. Free; no API key required. Content is an original AI synthesis with no verbatim community quotes.
Args: slug: Article slug, taken from list_blog_posts results.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint, openWorldHint. The description adds that it is free and requires no API key, plus the content nature (AI synthesis). Adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short paragraphs: first line states purpose, second adds usage context, then Args section. Front-loaded, no wasted words, every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with one param. Description covers purpose, param guidance, cost/auth, and content nature. Output schema exists (not shown) so return value explanation is unnecessary. Complete for a read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema describes slug as type string with no description. The description adds 'Article slug, taken from list_blog_posts results', giving provenance and usage guidance. With 0% schema coverage, this fully compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Get the full Markdown body of one published blog post by its slug', which is a specific verb+resource pair. It clearly distinguishes from siblings like list_blog_posts and get_opportunity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: 'Free; no API key required' and notes the content is an original AI synthesis. It implies the slug comes from list_blog_posts, guiding workflow. No explicit when-not-to-use, but sufficient for the task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_opportunityGet Opportunity DetailARead-onlyIdempotent
Get the full detail of a specific opportunity: description, score breakdown, MVP features, competitors, differentiation, risks and community evidence count.
Args: opportunity_id: Opportunity ID, taken from query_opportunities results.
| Name | Required | Description | Default |
|---|---|---|---|
| opportunity_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, idempotent) already indicate safe read. Description adds value by detailing returned fields (description, score breakdown, etc.), enhancing transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences plus args line, front-loaded with purpose. No unnecessary words, efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, description covers return fields. Sibling context and annotations provide sufficient completeness for a simple detail retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only parameter 'opportunity_id' is explained as coming from query_opportunities, adding context beyond the integer type in schema. With 0% schema coverage, description compensates well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves full detail of a specific opportunity, listing included fields. It distinguishes from sibling 'query_opportunities', which is for listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Indicates that opportunity_id comes from query_opportunities results, implying usage after listing. Lacks explicit when-not-to-use but sibling context provides guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_blog_postsList Blog PostsARead-onlyIdempotent
List recent published PainSpotter blog posts — weekly long-form analyses of validated business opportunities (who's hurting, why now, how to build it, plus an indie-hacker checklist). Free; no API key required.
Args: limit: Number of posts to return, 1-30. Default 10.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds context beyond annotations: 'Free; no API key required' and 'recent published' filter. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences and a bullet. It front-loads the purpose in the first sentence. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, annotations covering safety, and an output schema), the description covers purpose, parameter semantics, and free access. No missing information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage (no description for limit), but the description explicitly explains the limit parameter: 'Number of posts to return, 1-30. Default 10.' This adds complete semantic meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'List recent published PainSpotter blog posts'. It specifies the resource (blog posts) and scope (recent published), distinguishing it from siblings like get_blog_post (single post) and get_opportunity/query_opportunities (opportunities).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it's free and requires no API key, implying low barrier to use. However, it does not explicitly state when to use this tool versus alternative tools like get_blog_post, nor does it provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_opportunitiesQuery OpportunitiesARead-onlyIdempotent
Search PainSpotter opportunities: filter by keyword, minimum score, platform and recommendation tier. Results are sorted by overall score, highest first.
Args: query: Keyword matched against title + description, e.g. "sleep tracker", "AI writing". Empty = no keyword filter. min_score: Minimum overall score, 0-100. Default 0. platform: Platform filter: reddit / hackernews / producthunt. Empty = all. recommendation: Recommendation tier: Build / Validate / Skip. Empty = all. page_size: Number of results to return, 1-30. Default 10.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| min_score | No | ||
| platform | No | ||
| recommendation | No | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint; the description adds that results are sorted by overall score descending, which is useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear summary followed by parameter details in a bullet-like format, no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 5 parameters, all optional with defaults, and an output schema present, the description fully explains inputs, sorting, and defaults, making it complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description fully compensates by providing examples, defaults, and clear explanations for each parameter (e.g., 'e.g. sleep tracker' for query).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Search PainSpotter opportunities' with specific filter criteria, clearly distinguishing it from the sibling 'get_opportunity' which retrieves a single item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for searching/filtering vs. get_opportunity for single retrieval, but no explicit 'when not to use' or alternative conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v1.1.0- Added
get_blog_post - Added
list_blog_posts
4 tool updates
v1.0.0- Removed
get_top_opportunities - Removed
list_opportunities - Added
query_opportunities - Removed
search_opportunities
4 tool updates
v0.1.0- First observed
get_opportunity - First observed
get_top_opportunities - First observed
list_opportunities - First observed
search_opportunities
TDQS
Each tool has a clearly distinct purpose: two for blog posts (list and get by slug) and two for opportunities (query with filters and get by ID). No overlap in functionality.
All tool names follow a consistent verb_noun snake_case pattern: get_blog_post, get_opportunity, list_blog_posts, query_opportunities. No mixing of styles.
With 4 tools, the set is small but well-scoped for a server providing read-only access to blog posts and opportunities. It covers the core operations without being overly minimal.
The tool surface is complete for a read-only information retrieval server: users can list and get individual blog posts, and query opportunities with filters and retrieve full details. No obvious gaps given the domain.
Maintenance
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
AI-analyzed startup opportunities from Reddit, Hacker News & Product Hunt, with commercial scores.
Find and validate SaaS ideas from real user complaints, scored for commercial intent.
Synthesize GitHub Issues, HN and App Store reviews into ranked pain clusters. Pay-per-call x402.
Real-time Reddit + Hacker News sensing: trending, mention velocity, sentiment, emerging terms.
Related MCP Servers
- AlicenseAqualityDmaintenanceQuery 474 validated startup gaps from Claude Desktop, Cursor, and Windsurf.5882MIT
- AlicenseAqualityFmaintenanceAsk Claude what SaaS ideas are worth building. Aggregates revenue data, growth signals and pain points from AppSumo, TrustMRR, Product Hunt, Indie Hackers, Reddit and more.2671MIT
- AlicenseAqualityDmaintenanceEnables semantic search of Reddit posts, subreddit details, and trend discovery through natural language queries.4191MIT
- AlicenseAqualityDmaintenanceProvides Hacker News tools with founder-research features for analyzing Show HN launches, Ask HN discussions, and extracting startup insights.14MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/archoor/painspotter-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server