Server definition
- Hash
- sha256:c5a4fdf5029d9f3d4bb124dc74455d7b543dd3cf312b3e027e7b5b8827449c5e
- What it is
- What a remote MCP server returned when asked what it offers: 7 tools
The blob, as servednamed by its sha256
{
"instructions": "PainSpotter is a database of AI-analyzed business opportunities mined from Reddit, Hacker News and Product Hunt discussions. Data is layered: Category (domain) > Theme (a clustered pain point with trend signal) > Opportunity (a concrete product idea with commercial scores).\n\nSuggested flow: call get_overview first to learn the landscape, then list_trending_themes or query_opportunities to drill in, get_theme for market-signal context, and get_opportunity for full detail. For long-form weekly analyses, use list_blog_posts and get_blog_post (free, no quota cost).\n\nTiering: get_overview, get_opportunity, list_blog_posts and get_blog_post are free. query_opportunities, list_trending_themes and get_theme require a Pro plan. When a tool returns an upgrade notice, relay it to the user and point them to https://painspotter.ai/pricing.",
"tools": [
{
"description": "Get the full Markdown body of one published blog post by its slug.\nFree; does not consume API quota. Content is an original AI synthesis with\nno verbatim community quotes.",
"inputSchema": {
"properties": {
"slug": {
"description": "Article slug, taken from list_blog_posts results.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_blog_post",
"outputSchema": {
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Get the full detail of a specific opportunity: description, score breakdown,\nMVP features, competitors, differentiation, risks and community evidence count.\n(Free tool)",
"inputSchema": {
"properties": {
"opportunity_id": {
"description": "Opportunity ID, taken from query_opportunities or get_overview results.",
"type": "integer"
}
},
"required": [
"opportunity_id"
],
"type": "object"
},
"name": "get_opportunity",
"outputSchema": {
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Get a global overview of PainSpotter: all domain categories (with theme count,\nopportunity count and 30-day mentions) plus a snapshot of currently trending themes.\nA good first step to map the landscape before drilling in with the other tools.\n(Free tool)",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_overview",
"outputSchema": {
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Get the full market signal for a single theme: trend, 30-day / all-time mentions,\nsignal channels, audience clarity and market summary, plus the top-scoring\nopportunities under it (including the Best Bet flagship opportunity).\n(Pro tool)",
"inputSchema": {
"properties": {
"theme": {
"description": "Theme ID (numeric) or slug (string), from list_trending_themes / get_overview.",
"type": "string"
}
},
"required": [
"theme"
],
"type": "object"
},
"name": "get_theme",
"outputSchema": {
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "List recent published PainSpotter blog posts — weekly long-form analyses of\nvalidated business opportunities (who's hurting, why now, how to build it).\nFree; does not consume API quota.",
"inputSchema": {
"properties": {
"limit": {
"default": 10,
"description": "Number of posts to return, 1-30. Default 10.",
"type": "integer"
}
},
"type": "object"
},
"name": "list_blog_posts",
"outputSchema": {
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "List themes that are currently heating up (sorted by trend change %), to catch\ndemand that is growing. A theme is the \"market-signal layer\": it aggregates\nmultiple opportunities and carries 30-day mentions, trend direction and audience clarity.\n(Pro tool)",
"inputSchema": {
"properties": {
"limit": {
"default": 15,
"description": "Number of themes to return, 1-30. Default 15.",
"type": "integer"
},
"min_mentions": {
"default": 2,
"description": "Minimum 30-day discussion count, filters out noise. Default 2.",
"type": "integer"
}
},
"type": "object"
},
"name": "list_trending_themes",
"outputSchema": {
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Unified opportunity search: filter by keyword, minimum score, platform,\nrecommendation tier and domain category, then sort the results.\n(Pro tool)",
"inputSchema": {
"properties": {
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Category slug from get_overview, e.g. ai-developer-tools. Empty = all categories."
},
"min_score": {
"default": 0,
"description": "Minimum overall score, 0-100. Default 0.",
"type": "integer"
},
"page_size": {
"default": 10,
"description": "Number of results to return, 1-30. Default 10.",
"type": "integer"
},
"platform": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Platform filter: reddit / hackernews / producthunt / stackexchange. Empty = all platforms."
},
"query": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Keyword matched against title + description, e.g. \"sleep tracker\", \"AI writing\". Empty = no keyword filter."
},
"recommendation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Recommendation tier: Build / Validate / Skip. Empty = all tiers."
},
"sort": {
"default": "score",
"description": "Sort order: 'score' (default, by overall score) or 'recent' (by creation time).",
"type": "string"
}
},
"type": "object"
},
"name": "query_opportunities",
"outputSchema": {
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:c5a4fdf5029d9f3d4bb124dc74455d7b543dd3cf312b3e027e7b5b8827449c5e | sha256sum