Remote MCP server exposing the wafergraph.com semiconductor supply-chain dataset (companies, segments, supply-chain graph, M&A deals) as read-only tools for AI agents.
Strong tool set with clear naming (verb_noun pattern), comprehensive descriptions (avg 180 chars), and well-structured schemas using Zod. All 30 tools have descriptions and input schemas. Parameters are typed and described. However, output schemas are not explicitly documented in the source code, responses are inferred from implementation. Error handling includes recovery hints (suggestCompanies, edge_coverage caveats) but lacks structured error classification. No tool annotations (readOnlyHint, destructiveHint) despite all tools being read-only. Composition is excellent: tools chain well (e.g., get_segments → search_companies), accept natural identifiers (names, tickers, ids), and include pagination/limits.
Given a list of stock tickers (or company names/ids), find their shared upstream dependencies — suppliers that feed multiple portfolio companies. Useful for portfolio risk analysis: 'if this supplier goes down, how many of my holdings are affected?'
Side-by-side comparison of 2-6 companies: market cap, position, segments, country, key products, and what they share (common suppliers, common customers, common segments). Useful for competitive analysis and supply-chain overlap.
Side-by-side comparison of 2-6 countries: company counts, segment mix, total market cap, and what they share (common segments, overlapping companies). Useful for geographic competitive analysis.
Structured screen of companies by segment, country, market position, and market cap band, with optional sorting. Returns a paginated list (default 10 per page) with total match count. Useful for systematic company discovery and filtering.
Companies in a segment that are heavily relied upon by others (high in-degree in the supply graph). Identifies critical nodes whose disruption would ripple widely. Sorted by customer count (how many distinct companies buy from them).
Output schemas not explicitly documented in source code. Response structures are inferred from implementation (jsonResult/errorResult helpers) rather than declared in tool registration. LLMs cannot see what fields to expect without reading implementation.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being read-only. Adding readOnlyHint=true to all tools would signal to agents that these are safe to call without confirmation.
Error responses use custom errorResult() helper that returns unstructured text. No error classification (retryable vs user-fixable vs fatal). Errors like 'No company found' include recovery hints but lack machine-readable error codes.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | <=2025-11-25 | v2 |
Shared upstream dependencies across a set of 2-6 companies: suppliers that feed multiple companies in the list. Useful for identifying common supply-chain risks and consolidation opportunities.
Segments and countries with the most M&A activity (by deal count). Identifies where consolidation is happening and supply-chain reshuffling is most active.
All M&A deals involving a company (as acquirer or target), sorted by announcement date (newest first). Useful for tracking a company's M&A history and strategy.
Every documented supply path between two companies, following supplier->customer edges (e.g. 'how does NVIDIA actually depend on Shin-Etsu'). Searches up to max_depth hops in one or both directions and returns each path as an ordered list of companies, shortest first. Capped for combinatorial safety; absence of a path means undocumented, not disproven — see edge_coverage.
Structural neighbors to a company: others with similar supplier/customer patterns and segment mix. Useful for competitive benchmarking and finding analogues in different geographies.
Buyers in a segment with exactly one documented supplier (single-source risk). Returns the buyer, their sole supplier, and what they buy. Useful for identifying critical supply-chain vulnerabilities.
Full allowed profile for one company (by id or exact name) plus its supplier/customer supply-chain edges. Includes key_products (short list of named products/lines). Fields are deliberately limited to established/trust-checked data (see README field-discipline note).
All companies in a given segment, grouped by country and sorted by market cap. Answers 'who makes X, and from where?' — useful for geographic supply-chain risk and concentration analysis.
Full profile of a country: all companies headquartered there (sorted by market cap), segment breakdown, and aggregate stats (total market cap, company count by position). Useful for geographic supply-chain analysis.
Metadata about the dataset: company count, segment/subsegment counts, deal count, data freshness (whether live-fetched data is current or stale), edge coverage (what % of companies have documented suppliers/customers), and a note on what this data cannot answer. Useful for understanding data quality and limitations.
Full detail on one M&A deal: acquirer, target, announcement date, deal value (if public), deal status, and a one-liner summary.
The full M&A corpus (74 deals): acquirer, target, announcement date, deal value (if public), and a one-liner summary. Sorted newest first. Use find_deals_by_company or get_deal for detail.
High-level M&A activity summary: total deal count, total value (if available), count by status (announced/completed/failed), and top acquirers/targets by deal count. Useful for understanding consolidation trends.
Top 10 companies in a segment by market cap, plus a geographic breakdown (where the segment's leadership is concentrated). Answers 'who dominates this layer, and from where?'
The wafergraph taxonomy: 12 top-level supply-chain segments (materials through ai_datacenter) and their subsegments, each with a live company count, plus the market_position enum. Use this to discover valid `segment` values for search_companies/get_deals. Segment definitions are a versioned snapshot (see data.taxonomy_snapshot_date) while company counts are computed live.
Full detail on a subsegment: definition, all companies in it (sorted by market cap), and live counts. Useful for deep dives into a specific supply-chain layer.
Walk the supplier/customer graph up to 2 tiers from a focal company, following documented key_suppliers/key_customers edges. Returns a tier-by-tier breakdown (suppliers upstream, customers downstream) with company summaries and the edge list. Absence of an edge means undocumented, not disproven — see edge_coverage.
One company's supplier mix: all documented suppliers grouped by segment, with an HHI (Herfindahl-Hirschman Index) concentration score. HHI > 2500 signals high concentration risk (few suppliers dominate). Useful for supply-chain resilience analysis.
All countries represented in the dataset, with live company counts. Use this to discover valid country names for other tools.
All subsegments within a given segment, with live company counts. Use this to discover valid subsegment ids for get_subsegment.
Companies ranked by how central they are in the supply graph: either by customer count (how many buy from them) or supplier count (how many they depend on). Identifies hubs and critical nodes.
Largest companies in a segment, sorted by market cap (descending). Always includes cap coverage (how many of the top N have a known market cap). Useful for identifying market leaders and cap-weighted exposure.
Batch-resolve stock tickers, company names, or ids to canonical companies. Useful for normalizing user input or portfolio lists into machine-readable ids.
Search wafergraph's semiconductor & AI supply-chain company dataset by name/one_liner substring and/or segment and/or country. Returns a compact list capped at 25 with a total match count. Use get_segments first if you don't know valid segment ids.
Blast radius if a company, country, or segment goes offline: which other companies lose documented suppliers, and how many. Useful for supply-chain risk assessment and resilience planning.
Parameter descriptions sometimes reference external discovery tools (e.g., 'Use get_segments first') but do not state this as a dependency in the schema. LLMs may not recognize the prerequisite.
Some parameter descriptions include example values (e.g., 'e.g. foundry, equipment_front_end') which LLMs may reuse literally. Should use enum constraints instead.