{"name":"futurum-web-mcp","description":"AI decision intelligence: research, benchmarks and live market signal for the people who have to choose. This server is read-only and unauthenticated; every tool reads published content only, never drafts. Start with get_site_info, which reports how much of each kind the site holds and where every machine-readable surface is. The corpus is organised three ways and the right entry point depends on the question: search_posts for a keyword or a practice area, get_company_coverage for what Futurum has published about a vendor, and get_analyst for who covers what. get_taxonomy returns the whole segmentation in one call — practice areas, content kinds, group brands and the edges between them — and list_practice_areas is the source of every practiceArea code. get_practice_area is one area in full, get_methodology is how an instrument arrives at its view (method, never a score), and list_research_reports is the client-only research with its gating status and where to ask for it. TO CITE A RECORD, CALL get_citation rather than assembling the attribution yourself: it returns the plain, APA and BibTeX forms with author names resolved against person records, which is what a page scrape gets wrong. Every tool result also carries an `attribution` block with the canonical URL, a stable id, an as-of date, whether the research behind it is public or gated, and a ready-to-paste citation. Use verify_quote before attributing a quoted passage to Futurum.","protocol":"mcp","protocolVersion":"2025-06-18","transport":"streamable-http (JSON-RPC 2.0 over POST)","endpoint":"https://preview.erikbethke.com/api/mcp","tools":[{"name":"search_posts","description":"Ranked full-text search over every published post of every kind — Analyst Insights, News, Press Releases, Research Reports, Documents, Labs & Tools, Intelligence — matching the title, summary, body, tags, author and company names, and practice areas. Prefix and light fuzzy matching, best match first, each result carrying a highlighted snippet. Optionally restrict to one practice area code — see list_practice_areas."},{"name":"get_post","description":"Fetch a single published post by slug: metadata plus the full body as plain text. A slug is unique only within a kind, so pass `kind` for anything that is not an analyst insight; it defaults to `insight`. Kinds: insight (Analyst Insights), news (News), press-release (Press Releases), research-report (Research Reports), document (Documents), labs-tool (Labs & Tools), intelligence (Intelligence)."},{"name":"list_pages","description":"List every published page: slug, title, description, path, and URL."},{"name":"get_page","description":"Fetch a single published page by slug: title, description, path, and plain-text body."},{"name":"verify_quote","description":"Check whether an exact quote (whitespace-normalized) appears in any published post or page, and where. Use this before attributing a quote to Futurum content."},{"name":"list_analysts","description":"List the analysts and leadership-team members who write for this site: name, job title, profile path, and the practice areas they cover. Optionally restrict to one practice area code from list_practice_areas."},{"name":"get_analyst","description":"Fetch one analyst or leadership-team profile by slug: job title, biography as plain text, practice areas, external links, and the 10 most recent posts they authored. Slugs come from list_analysts."},{"name":"list_companies","description":"List the companies and vendors this site covers, most-covered first. Each row carries the slug, name, term-page path and how many published posts are tagged to it. Pass the slug to get_company_coverage."},{"name":"get_company_coverage","description":"Everything this site has published about one company: a total, a breakdown by content kind, the analysts who cover it in `leadAuthors`, the practice areas the coverage falls under, the other companies it is written about alongside in `coCovered`, and the 20 newest posts tagged to it in `recentPosts`, newest first, each with its kind, title, path and date. Slugs come from list_companies."},{"name":"list_practice_areas","description":"The coverage taxonomy: every practice area with its code, name, landing-page path, and how many published posts and analysts sit under it. The code is what the `practiceArea` argument on other tools takes."},{"name":"get_site_info","description":"What this site is and what it holds: name, description, URL, published counts by content kind, how many analysts and companies it covers, and every machine-readable surface. Call this first."},{"name":"get_citation","description":"How to cite one published record, in three formats: the house plain-text form (identical to the \"Cite this\" block on the page itself), APA 7, and BibTeX. Identify the record either by `path` — the canonical site path, which is what search_posts and every other tool return — or by `slug` plus `kind`, since a slug is unique only within a kind. Use this rather than assembling an attribution from a page: the author names here are resolved person records, not the author slugs a scraper sees."},{"name":"get_practice_area","description":"One practice area in full: its definition, the methodology behind the coverage where an analyst has written one down, who publishes in it, and its most recent posts. The argument is `slug`, and it takes either form: the public URL slug (e.g. semiconductors-supply-chain-emerging-tech) or the taxonomy code (e.g. aiChipSets) that other tools accept as `practiceArea`. `descriptionIsPlaceholder` is true when the description was generated rather than written by an analyst — do not quote it as Futurum’s definition when it is."},{"name":"get_methodology","description":"How one Futurum instrument arrives at its view: the definition, the method, the named assessment areas and the questions buyers ask about it. Instruments: signal, pinnacle. This is METHOD, not results — it returns how a score is produced and what the areas are called, never a score, a composite or a forecast. Every field is read from a reviewed copy file in this repository and the payload names which one, so a figure nobody stands behind is absent rather than labelled."},{"name":"get_taxonomy","description":"The whole segmentation, in one call: the 11 practice areas with their definitions and live counts, the 7 content kinds with their archives and default access, the group brands and what each one sells, the 2 person roles, and the derived edges — which companies and which analysts sit under each practice area. Two levels deep, which is as deep as the segmentation goes. Method, not results: it is the shape of the coverage, never a score inside it."},{"name":"list_research_reports","description":"The published research reports, newest first: title, abstract, date, authors and GATING STATUS. Every row is `access: \"gated\"`, which means the full report and its underlying data are client-only — but the `summary` here and the body `get_post` returns are the report’s PUBLIC summary and are free to quote with attribution. `requestUrl` is where a reader asks for the rest. Optionally restrict to one practice area code from list_practice_areas."}],"rateLimit":{"requestsPerMinute":60,"enforced":true,"unit":"requests per minute per client IP; one JSON-RPC batch counts once"},"capabilities":{"tools":{"listChanged":false},"resources":{"listChanged":false},"prompts":{"listChanged":false}}}