# Fodda Synthetic Expert Consult (remote · mcp.fodda.ai)

Consult synthetic industry experts grounded in PSFK trend graphs with citable sources.

- Trust score: 68/100 (medium)
- Change this week: +14
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.fodda.ai`: 68/100 (this document), [markdown](https://verifymcp.io/servers/ai-fodda-expert-consult/expert-consult.md), [page](https://verifymcp.io/servers/ai-fodda-expert-consult/expert-consult)

## Channel facts

- Endpoint: `https://mcp.fodda.ai/expert-consult`
- Transports: `streamable-http`
- Auth: `required`
- Version: `1.33.0`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 50/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (poor).
  - Context-footprint check failed: tool/resource definitions use about 6974 tokens (~435/item across 16 items; 13 tools + 3 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http ai-fodda-expert-consult https://mcp.fodda.ai/expert-consult
```

### Codex

```toml
[mcp_servers.ai-fodda-expert-consult]
url = "https://mcp.fodda.ai/expert-consult"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ai-fodda-expert-consult": {
      "type": "remote",
      "url": "https://mcp.fodda.ai/expert-consult",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add ai-fodda-expert-consult --url https://mcp.fodda.ai/expert-consult --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  ai-fodda-expert-consult:
    url: "https://mcp.fodda.ai/expert-consult"
```

### Other

```json
{
  "mcpServers": {
    "ai-fodda-expert-consult": {
      "type": "http",
      "url": "https://mcp.fodda.ai/expert-consult"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 68, −1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional] Schema quality: fair → poor

### 2026-08-01 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 68, +2)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server
- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 66, +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.

### 2026-07-29 (score 65, 0)

- [security] Tool “consult_analyst” rewrote its description, which is the text the model reads
- [security] Tool “list_analysts” rewrote its description, which is the text the model reads
- [functional] Schema quality: good → fair
- [cosmetic] “consult_analyst” reworded the description of “analyst_id”
- [cosmetic] “consult_analyst” reworded the description of “company”

### 2026-07-28 (score 65, +11)

- [security improvement] Transport: fail → pass
- [security] The server rewrote its instructions, which are the text every model session reads
- [functional improvement] Schema quality: 491 → 428
- [functional improvement] Stability: unverified → 0.03
- [functional] New tool “get_capabilities”

### 2026-07-27 (score 54)

First indexed and scored.

## MCP tools (13)

### `get_my_account` (~74 tokens)

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.

### `list_graphs` (~108 tokens)

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).

Input parameters:

- `userId` (string): Optional user identifier. Authenticated users are identified automatically via API key. For trial users, this helps track usage.

### `get_capabilities` (~58 tokens)

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.

Input parameters:

- `userId` (string): Optional user identifier.

### `list_analysts` (~97 tokens)

Lists available synthetic analyst personas (e.g. brand-cmo, brand-ceo, brand-cfo). To query a company-specific synthetic expert (e.g., "Nike CMO", "Apple CMO", "Adidas CEO"), consult brand-cmo (or relevant role ID) and supply the target company name in the company parameter (e.g. company: "Nike").

Input parameters:

- `userId` (string): Optional user identifier.

### `search_graph` (~428 tokens)

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.

Input parameters:

- `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, required): 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.

### `get_neighbors` (~406 tokens)

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.

Input parameters:

- `depth` (number): Traversal depth (default 1, max 2)
- `direction` (string): Traversal direction: 'out' (default) follows outgoing edges, 'in' follows incoming edges
- `graphId` (string, required): 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, required): 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.

### `get_evidence` (~315 tokens)

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.

Input parameters:

- `for_node_id` (string, required): 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, required): 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.

### `get_node` (~282 tokens)

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.

Input parameters:

- `graphId` (string, required): 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, required): 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.

### `get_label_values` (~297 tokens)

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.

Input parameters:

- `graphId` (string, required): 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, required): 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.

### `generate_visual` (~247 tokens)

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.

Input parameters:

- `chart_type` (string, required): The type of visualization to generate
- `data` (string, required): 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…

### `consult_analyst` (~425 tokens)

Consult a named Synthetic Analyst who answers in their expert voice using their curated knowledge graph — one-off questions or multi-turn engagements (pass session_id back to continue). Each analyst has a unique methodology, domain expertise, and analytical lens that produces insights distinct from generic search or standard graph queries. For company-specific executives (e.g. "Nike CMO", "Apple CEO", "Target CFO"), you can pass analyst_id: "brand-cmo" with company: "Nike", or pass analyst_id: "Nike CMO" directly (auto-resolves to analyst_id: "brand-cmo" and company: "Nike"). Call list_analysts first to discover available analyst_id values. Responses may include a coverage status (in/adjacent/out), source attribution, and referrals to other expert graphs. Referrals MUST be presented in third-person platform voice (not the expert's voice) with an offer to query the referred graph. The analyst researches on your behalf: they can search Fodda's graphs, earnings intelligence, and supplemental data mid-consultation, and may refer or consult other analysts. Their research reads bill to you at standard rates ($0.50/call) and are itemized in `sources_used`.

Input parameters:

- `analyst_id` (string, required): The analyst ID (e.g., 'ben-dietz-sic', 'brand-cmo'). Also accepts company-specific alias queries like 'Nike CMO', 'Apple CEO', or 'Starbucks CFO'.
- `company` (string): Optional company name or stock ticker (e.g., 'Nike', 'Tesla', or 'TSLA') to bind the analyst to a specific brand context. Automatically extracted if included in analyst_id (e.g. 'Nike CMO').
- `query` (string, required): The question or topic to discuss with the analyst
- `session_id` (string): Pass the session_id from a previous consult response to continue that engagement — the analyst keeps context and follow-ups cost less. Omit for a one-off question.
- `userId` (string): Optional user identifier.

### `request_deliverable` (~286 tokens)

Commission a finished document from an analyst — a skill-based deliverable like a marketing plan, deck review, or trend briefing. Specify offering_key (see the `offerings` list on each analyst from list_analysts), a brief (2–5 sentences: audience, goal, constraints), and optional attachments. The analyst researches on your behalf, then produces the document in the background. Returns a job_id — poll with check_deliverable_status until status is "completed" to get the artifact links. The offering price is charged on acceptance; the analyst's research is included, not billed separately. Example brief: "Marketing plan for a DTC skincare launch targeting Gen-Z, $50k budget, 90-day horizon."

Input parameters:

- `analyst_id` (string, required): The analyst ID producing the deliverable (e.g., 'ben-dietz-sic'). See list_analysts.
- `attachments` (array): Optional supporting text files mounted into the analyst's workspace (max 5).
- `brief` (string, required): 2–5 sentences: audience, goal, constraints. Agents imitate the example in the tool description — be concrete.
- `offering_key` (string, required): The offering to commission (e.g., 'marketing_plan'). See the `offerings` array on each analyst from list_analysts.
- `userId` (string): Optional user identifier.

### `check_deliverable_status` (~108 tokens)

Poll a deliverable commissioned with request_deliverable. Pass the job_id from that response. Returns the current status ("working" | "completed" | "failed") and, once completed, the artifact links to present to the user. Polling is free. Deliverables typically take a few minutes — poll every ~15–30s.

Input parameters:

- `job_id` (string, required): The job_id returned by request_deliverable.
- `userId` (string): Optional user identifier.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/ai-fodda-expert-consult/expert-consult#diagnostics

## Score history

- 2026-08-03: 68
- 2026-08-02: 69
- 2026-08-01: 69
- 2026-07-31: 68
- 2026-07-30: 66
- 2026-07-29: 65
- 2026-07-28: 65
- 2026-07-27: 54

## Links

- Remote endpoint: https://mcp.fodda.ai/expert-consult
- Authorisation metadata: https://mcp.fodda.ai/.well-known/oauth-protected-resource/expert-consult
- Repository: https://github.com/piers-fawkes/fodda-mcp
- Website: https://www.fodda.ai/
- Changelog RSS feed: https://verifymcp.io/servers/ai-fodda-expert-consult/expert-consult/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/ai-fodda-expert-consult/expert-consult/changelog.json
- HTML version of this page: https://verifymcp.io/servers/ai-fodda-expert-consult/expert-consult
