Fodda Topic & Trend Research
REMOTE · MCP.FODDA.AI · SCANNED AUG 3
Trend, stats & insight search across PSFK expert graphs with citable sources.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security74
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability61
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (fair).Partial
- Context-footprint check failed: tool/resource definitions use about 7287 tokens (~404/item across 18 items; 15 tools + 3 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
- Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · mcp.fodda.ai
claude mcp add --transport http ai-fodda-topic-research https://mcp.fodda.ai/topic-research
[mcp_servers.ai-fodda-topic-research] url = "https://mcp.fodda.ai/topic-research"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ai-fodda-topic-research": {
"type": "remote",
"url": "https://mcp.fodda.ai/topic-research",
"enabled": true
}
}
} openclaw mcp add ai-fodda-topic-research --url https://mcp.fodda.ai/topic-research --transport streamable-http
mcp_servers:
ai-fodda-topic-research:
url: "https://mcp.fodda.ai/topic-research" {
"mcpServers": {
"ai-fodda-topic-research": {
"type": "http",
"url": "https://mcp.fodda.ai/topic-research"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +2
- The server rewrote its instructions, which are the text every model session reads security
- Schema quality: poor → fair functional
- 2 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Aug 26 +3
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 31 Jul 26 −1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 29 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Jul 26 +9
- Transport: fail → pass ▲ security
- The server rewrote its instructions, which are the text every model session reads security
- Schema quality: 475 → 403 ▲ functional
- Stability: unverified → 0.03 ▲ functional
- Schema quality: good → fair functional
- New tool “get_capabilities” functional
- New tool “get_validated_trends” functional
- 27 Jul 26 54
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://mcp.fodda.ai/topic-research
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=mcp.fodda.ai | CN=WR3,O=Google Trust Services,C=US | 24 Jul 2026 | 22 Oct 2026 | RSA 2048 | SHA256-RSA | 327a89c0ad6224d8102712bc19dab6f4 |
| SANs: mcp.fodda.ai | ||||||
| CN=WR3,O=Google Trust Services,C=US (CA) | CN=GTS Root R1,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | RSA 2048 | SHA256-RSA | 7ff005a91568d63abc22861684aa4b5a |
| CN=GTS Root R1,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 19 Jun 2020 | 28 Jan 2028 | RSA 4096 | SHA256-RSA | 77bd0d6cdb36f91aea210fc4f058d30d |
DNSSEC insecure
Validation of mcp.fodda.ai. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| ai. | present | 3799 | 8 | Verified |
| fodda.ai. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.fodda.ai/topic-research | Verified | 200 | |
| http (plaintext) | http://mcp.fodda.ai/topic-research | HTTPS enforced | 302 | https://mcp.fodda.ai/topic-research |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
check_supplemental_status ~67
Check if market data gathering is complete and retrieve the results. Call this after get_supplemental_context — poll every 5-10 seconds until status is COMPLETE or FAILED.
| Name | Type | Req | Description |
|---|---|---|---|
| job_id | string | yes | The Job ID returned by get_supplemental_context |
No output schema declared.
No examples provided.
generate_visual ~247
Create a presentation-ready data visualization from research findings. Available chart types: "cultural_shifts" (From→To transitions), "competitive_compass" (brands on 2 axes), "trend_constellation" (network of related trends), "implication_ladder" (Signal→Trend→So What→Do What), "innovation_pathway" (Now→Near-Term→Future), "opportunity_map" (2×2 white space analysis). Returns a branded SVG that renders directly in the chat.
| Name | Type | Req | Description |
|---|---|---|---|
| chart_type | string | yes | The type of visualization to generate |
| data | string | yes | JSON string containing the chart data. Structure depends on chart_type. cultural_shifts: {shifts:[{from,to}]}. competitive_compass: {brands:[{name,x,y}], axes:{left,right,top,bottom}}. trend_constell… |
No output schema declared.
No examples provided.
get_capabilities ~58
Returns Fodda's main capabilities / features / offerings / products / services / tools and what they cost. Call this for any question about what Fodda can do or what's available.
| Name | Type | Req | Description |
|---|---|---|---|
| userId | string | — | Optional user identifier. |
No output schema declared.
No examples provided.
get_evidence ~315
Get the source articles, case studies, and statistics behind a specific trend — with full citations and publisher attribution. Each item includes source URL, location, brand names, publication date, category, and a formatted citation. Use after search_graph when you need the supporting proof behind a trend. This is a direct lookup by trend ID — not a text search tool.
| Name | Type | Req | Description |
|---|---|---|---|
| for_node_id | string | yes | The node_id from a prior search_graph result (e.g. '2507.0'). MUST come from the search result's node_id field. Node IDs are NOT sequential integers — do NOT guess or invent IDs like '1', '2', '3'. D… |
| graphId | string | yes | The graph ID. Use list_graphs to see all options. Examples: 'retail', 'tech', 'food', 'travel', 'beauty', 'sports', 'sic', 'pew', 'ce-design', 'ezra-eeman-wayfinder', 'dhl-ecommerce-trends-2026', 'au… |
| top_k | number | — | Number of evidence items to return (default 5) |
| userId | string | — | Optional user identifier for trial usage tracking. |
No output schema declared.
No examples provided.
get_label_values ~297
List all brands, locations, technologies, audiences, or trends within a specific knowledge graph. Use to explore what a graph contains — e.g., "what brands are in the retail graph?" or "what locations does the fashion graph cover?". To get a complete list of every trend in a graph, call with label="Trend" — this returns the full deterministic list, useful for industry-report graphs where search may return partial results.
| Name | Type | Req | Description |
|---|---|---|---|
| graphId | string | yes | The graph ID. Use list_graphs to see all options. Examples: 'retail', 'tech', 'food', 'travel', 'beauty', 'sports', 'sic', 'pew', 'ce-design', 'ezra-eeman-wayfinder', 'dhl-ecommerce-trends-2026', 'au… |
| label | string | yes | The label to fetch values for (e.g., 'Brand', 'Location', 'Technology', 'Audience', 'RetailerType', 'Trend') |
| property | string | — | Optional property to return values for. Defaults vary by label. |
| userId | string | — | Optional user identifier for trial usage tracking. |
No output schema declared.
No examples provided.
get_my_account ~74
Check the current user's account status: API call balance, plan, enabled/disabled graphs, and profile info. Use when the user asks "how many API calls do I have?", "what plan am I on?", "what graphs can I access?", or similar account questions. Returns live data — not cached from session start.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_neighbors ~406
Discover what's connected to a specific trend — related brands, technologies, locations, and cross-domain links that search alone wouldn't surface. Returns curated editorial connections between trends that web search cannot provide. Use after search_graph to map the territory around a trend, find which brands are connected, or understand cross-domain relationships. Requires node_id from a prior search_graph result.
| Name | Type | Req | Description |
|---|---|---|---|
| depth | number | — | Traversal depth (default 1, max 2) |
| direction | string | — | Traversal direction: 'out' (default) follows outgoing edges, 'in' follows incoming edges |
| graphId | string | yes | The graph ID. Use list_graphs to see all options. Examples: 'retail', 'tech', 'food', 'travel', 'beauty', 'sports', 'sic', 'pew', 'ce-design', 'ezra-eeman-wayfinder', 'dhl-ecommerce-trends-2026', 'au… |
| limit | number | — | Maximum results (default 50) |
| relationship_types | array | — | Filter by relationship types: 'EVIDENCED_BY', 'RELATED_TO', 'SEMANTICALLY_SIMILAR', 'ASSOCIATED_BRAND', 'MENTIONS_BRAND', 'IN_LOCATION' |
| seed_node_ids | array | yes | Array of node IDs to start traversal from. MUST be actual node_id values from a prior search_graph result (e.g. ["2507.0"]). Node IDs are NOT sequential integers — do NOT guess or invent IDs like "1"… |
| userId | string | — | Optional user identifier for trial usage tracking. |
No output schema declared.
No examples provided.
get_node ~282
Get the full profile of a specific trend — detailed description, lifecycle stage (emerging/building/mature), signal strength, geographic scope, and all properties. Use when you need deeper detail on a single trend after search_graph returned a summary. Requires node_id from a prior search_graph result.
| Name | Type | Req | Description |
|---|---|---|---|
| graphId | string | yes | The graph ID. Use list_graphs to see all options. Examples: 'retail', 'tech', 'food', 'travel', 'beauty', 'sports', 'sic', 'pew', 'ce-design', 'ezra-eeman-wayfinder', 'dhl-ecommerce-trends-2026', 'au… |
| nodeId | string | yes | The node_id from a prior search_graph result (e.g. '2507.0'). MUST come from the search result's node_id field. Node IDs are NOT sequential integers — do NOT guess or invent IDs like '1', '2', '3'. D… |
| userId | string | — | Optional user identifier for trial usage tracking. |
No output schema declared.
No examples provided.
get_supplemental_context ~288
A standard layer for macro, institutional, and real-time market data. Call this tool when curated coverage is thin, empty, or when the query is explicitly demand/attention-shaped (e.g. to get search volume, economic series, or census data). It retrieves data from 80+ authoritative sources (Google Trends, FRED, BLS, Census, etc.) fanned out in parallel. Returns categorized data blocks with source attribution and metadata. Note: call after search_graph indicates thin/empty coverage via its coverage annotation. Uses 5 tokens ($2.50 via SPT) per standalone use.
| Name | Type | Req | Description |
|---|---|---|---|
| brands | array | — | Brand names to include in demand/product lookups (e.g., ['Nike', 'Adidas']). Triggers Google Trends comparison and Amazon product search. |
| domain | string | — | Domain hint to improve source routing: 'retail', 'beauty', 'fashion', 'sports', 'food', 'technology', 'culture', 'travel', 'design'. If omitted, inferred from query. |
| graph_ids | array | — | Graph IDs from prior search results — helps refine domain inference. |
| query | string | yes | The topic or query to get supplemental data for (e.g., 'sustainable packaging', 'tequila spirits market', 'Gen Z beauty') |
| userId | string | — | Optional user identifier for trial usage tracking. |
No output schema declared.
No examples provided.
get_validated_trends ~158
Returns market-validated consumer trends from corporate earnings reports cross-validated by Fodda's analysis pipeline. Connects earnings commentary (analyst concerns, CEO statements) with consumer trend signals.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Max results to return (default 20, max 50) |
| search | string | — | Free text search in validated trends (e.g. 'resale', 'inventory', 'pricing'). |
| sector | string | — | Filter by sector (e.g. 'retail', 'sportswear', 'beauty'). |
| ticker | string | — | Filter by company ticker symbol (e.g. 'NKE', 'LULU'). |
| userId | string | — | Optional user identifier for trial usage tracking. |
No output schema declared.
No examples provided.
list_graphs ~108
List all knowledge graphs the user can access — IDs, descriptions, authors, sectors, signal counts. Use FIRST in any session to discover available sources before searching. Returns graph metadata needed for graphId parameters in other tools. Deprecated: waldo, psfk (use retail/tech/food/travel/fashion/beauty/sports instead).
| Name | Type | Req | Description |
|---|---|---|---|
| userId | string | — | Optional user identifier. Authenticated users are identified automatically via API key. For trial users, this helps track usage. |
No output schema declared.
No examples provided.
read_url ~99
Extract clean text content from any URL. Use this when a user shares a link (competitor site, news article, client brief, trend report) and wants to cross-reference it against Fodda knowledge graphs. Returns structured text ready for analysis. Uses 15 tokens ($7.50 via SPT).
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | The URL to read and extract content from |
| userId | string | — | Optional user identifier for usage tracking. |
No output schema declared.
No examples provided.
search_graph ~428
Find trends, signals, and expert insights across 100+ curated knowledge graphs covering retail, beauty, tech, food, travel, sports, and 30+ specialist domains. Returns trend data with cited evidence, source attribution, and lifecycle stage (emerging/building/mature/fading) — not generic web summaries. If graphId is omitted, searches ALL accessible graphs in parallel (recommended default). Use for market trends, competitor analysis, innovation signals, consumer behavior, cultural shifts, or any topic where curated expert intelligence outperforms web search.
| Name | Type | Req | Description |
|---|---|---|---|
| graphId | string | — | Optional graph ID. If omitted, searches ALL accessible graphs. Examples: 'retail', 'tech', 'food', 'travel', 'beauty', 'sports', 'sic', 'pew', 'ce-design', 'ezra-eeman-wayfinder', 'dhl-ecommerce-tren… |
| include_evidence | boolean | — | If true, batch-fetch supporting evidence articles inline with results. Default: true. |
| limit | number | — | Maximum number of results (default 10, max 50) |
| mode | string | — | Execution mode: "research" for topic research (15 API calls), "compare" for upload & compare intelligence (20 API calls). Defaults to "research". |
| query | string | yes | The search query. Location terms are auto-detected and used to filter results geographically. |
| skip_skills | boolean | — | If true, skip applying any enabled skills (Paralogy, Igloo, etc.) for this query only. Use when the user says "without skills", "skip Paralogy", or "just the raw results". Default: false. |
| use_semantic | boolean | — | Whether to use semantic search (default true) |
| userId | string | — | Optional user identifier for trial usage tracking. |
No output schema declared.
No examples provided.
search_insights ~310
NARRATIVE only: expert quotes, editorial analysis, and strategic perspectives on a topic — sourced from named strategists and industry leaders. Returns qualitative evidence (quotes, interpretations) with source attribution and parent trend context, NOT raw numbers. For hard data points, market sizes, and growth rates, use search_statistics instead. Works on ALL graphs. Use when you need authoritative voices, strategic framing, or analytical depth that web search cannot provide.
| Name | Type | Req | Description |
|---|---|---|---|
| graph_id | string | yes | Graph ID to search. Works on ALL graphs — PSFK curated ('retail', 'sic', 'beauty', 'sports', 'fashion', 'ce-design', 'pew') AND expert graphs. Search across multiple graphs for best coverage. |
| limit | number | — | Max results to return (default: 10, max: 50) |
| min_score | number | — | Minimum relevance threshold 0-1 (default: 0.60). Use 0.60 for broad queries, 0.70+ for precise lookups. |
| query | string | yes | Natural language search query. E.g. 'expert views on Gen Z luxury' or 'resale market statistics' |
| types | string | — | Comma-separated evidence types to search: quote, interpretation, signal, metric, or 'all' (default: 'quote,interpretation' — narrative. For hard numbers, use search_statistics or add 'metric'). |
| userId | string | — | Optional user identifier for trial usage tracking. |
No output schema declared.
No examples provided.
search_statistics ~307
HARD NUMBERS only: specific figures, market sizes, growth rates, and quantitative data points across Fodda's knowledge graphs. Each result links back to the expert trend it supports. Use when a question asks for a number or statistic — try this BEFORE supplemental data tools, as Fodda's experts may have already curated the answer. For expert quotes, editorial analysis, and narrative interpretation, use search_insights instead. Works on ALL graphs — domain, expert, and report. Search multiple graphs for best coverage.
| Name | Type | Req | Description |
|---|---|---|---|
| graph_id | string | yes | Graph ID to search. Works on ALL graphs — PSFK curated ('retail', 'fashion', 'beauty', 'sports', 'sic', 'ce-design', 'pew') AND expert graphs. Search across multiple graphs for best coverage. |
| include_signals | boolean | — | Also include Signal nodes (case studies, brand examples). Default: false |
| limit | number | — | Max results to return (default: 10, max: 50) |
| min_score | number | — | Minimum relevance threshold, 0-1 (default: 0.60). Use 0.60 for broad queries, 0.70+ only for precise data lookups. |
| query | string | yes | What data to search for (e.g., 'luxury resale market size', 'secondhand clothing sales volume', 'Gen Z spending behavior') |
| userId | string | — | Optional user identifier for trial usage tracking. |
No output schema declared.
No examples provided.