Skip to main content
Glama
archoor

PainSpotter MCP Server

by archoor

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

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

get_overview

Free

1

Categories overview + trending snapshot

get_opportunity

Free

1

Full detail of one opportunity (+ related blog URL if any)

list_blog_posts

Free

0

Recent published weekly analyses

get_blog_post

Free

0

Full Markdown of one blog article

query_opportunities

Pro

2

Filter by keyword / score / platform / recommendation / category

list_trending_themes

Pro

2

Pain points trending up right now

get_theme

Pro

4

Theme-level market signal + underlying opportunities

Local stdio package — 4 tools

Tool

Key required

Description

query_opportunities

Yes

Filter opportunities (Pro-equivalent search via v1 API)

get_opportunity

Yes

Full opportunity detail

list_blog_posts

No

Recent published blog posts

get_blog_post

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 tools
get_blog_postGet Blog PostA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 DetailA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
opportunity_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 PostsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 OpportunitiesA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
min_scoreNo
platformNo
recommendationNo
page_sizeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 2 tool updatesv1.1.0
    • Addedget_blog_post
    • Addedlist_blog_posts
  2. 4 tool updatesv1.0.0
    • Removedget_top_opportunities
    • Removedlist_opportunities
    • Addedquery_opportunities
    • Removedsearch_opportunities
  3. 4 tool updatesv0.1.0
    • First observedget_opportunity
    • First observedget_top_opportunities
    • First observedlist_opportunities
    • First observedsearch_opportunities

TDQS

A4.6/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness5/5

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

ActivityStale
ResponsivenessSyncing

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

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/archoor/painspotter-mcp'

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