PainSpotter MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PAINSPOTTER_API_KEY | Yes | Your PainSpotter API key (psk_live_...). Create one at https://painspotter.ai/account. | |
| PAINSPOTTER_API_BASE | No | Base URL for the PainSpotter API (default: https://painspotter.ai). | https://painspotter.ai |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| query_opportunitiesA | 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. |
| get_opportunityA | 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. |
| list_blog_postsA | 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. |
| get_blog_postA | 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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 4 tools
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.