Nuclear News Network

MCP server · the nuclear buildout as a knowledge graph

Reference

Tools

15 read-only tools. Every tool is annotated readOnlyHint: true, destructiveHint: false, openWorldHint: false, and returns JSON as both structuredContent and a text block.

search_entitiesFree

Fuzzy search the NNN entity registry (organizations, sites, reactor units, reactor designs, programs, policies) by name, alias or id. Use this first to turn a name into a stable entity id.

ParameterTypeDescription
query*stringName, alias or id, e.g. "Westinghouse", "Hinkley", "BWRX-300".
type"org" | "site" | "unit" | "design" | "program" | "policy"Restrict to one entity type.
countrystringISO-3166 alpha-2 country code, e.g. US, GB, FR.
limitinteger (1–50)Maximum rows (1–50). Default 10.
tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search_entities",
    "arguments": {
      "query": "Sizewell",
      "type": "site"
    }
  }
}

dataset_statusFree

Which version of the NNN data this server is answering from: nnn-site git SHA, load time, row counts per table, and the license terms that apply.

No parameters.

tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "dataset_status",
    "arguments": {}
  }
}

get_entityFree

Full record for one entity: names and aliases, kind, country, identifiers (Wikidata, LEI, ticker, website), sources, verification date and confidence, plus its public structural links (parent, subsidiaries, operator, vendor, site, design, units) and counts of articles and incidents. Pro accounts also get its ledger relationships (shareholdings, contracts, offtake) inline.

ParameterTypeDescription
id*stringStable NNN entity id, "{type}:{slug}", e.g. "org:edf", "site:sizewell-c", "unit:vogtle-3". Find ids with search_entities.
tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_entity",
    "arguments": {
      "id": "org:nnb-genco"
    }
  }
}

posts_aboutFree

NNN articles whose subject is the entity (about) or that mention it, newest first, with title, summary, date and URL.

ParameterTypeDescription
id*stringStable NNN entity id, "{type}:{slug}", e.g. "org:edf", "site:sizewell-c", "unit:vogtle-3". Find ids with search_entities.
role"about" | "mentions" | "any" Default "any".
limitinteger (1–50)Maximum rows (1–50). Default 10.
tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "posts_about",
    "arguments": {
      "id": "org:terrapower",
      "role": "about"
    }
  }
}

list_unitsFree

Current state of reactor units: tracker projects (planned → commissioning) and registry units (operating and shut-down fleet NNN covers). Filter by status, country, vendor, design, site, reactor type or SMR flag.

ParameterTypeDescription
statusstringUnit status, e.g. "under_construction", "commissioning", "operating", "permanent_shutdown".
countrystringISO-3166 alpha-2 country code.
vendor_idstringVendor organization id, e.g. org:westinghouse.
design_idstringDesign id, e.g. design:ap1000.
site_idstringSite id, e.g. site:vogtle.
reactor_type"PWR" | "BWR" | "PHWR" | "HTGR" | "LFR" | "SFR" | "MSR" | "fusion" | "other"
is_smrbooleanOnly small modular reactors (true) or only large units (false).
record"tracker" | "registry" | "all"tracker = new-build projects; registry = operating/shut-down units. Default "all".
limitinteger (1–200)Maximum rows (1–200). Default 50.
tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_units",
    "arguments": {
      "status": "under_construction",
      "country": "CN"
    }
  }
}

list_incidentsFree

The NNN drone incident tracker for nuclear and energy infrastructure: date, facility, outcome, attribution, sources. Filter by site or unit id, country, or date.

ParameterTypeDescription
site_idstringStable NNN entity id, "{type}:{slug}", e.g. "org:edf", "site:sizewell-c", "unit:vogtle-3". Find ids with search_entities.
unit_idstringStable NNN entity id, "{type}:{slug}", e.g. "org:edf", "site:sizewell-c", "unit:vogtle-3". Find ids with search_entities.
countrystringCountry name as recorded, e.g. "Ukraine".
sincestringDate, YYYY-MM-DD.
limitinteger (1–100)Maximum rows (1–100). Default 25.
tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_incidents",
    "arguments": {
      "site_id": "site:zaporizhzhia"
    }
  }
}

industry_trackersFree

Current state of NNN's industry trackers: fusion energy companies and devices, uranium enrichment and HALEU facilities, nuclear plant restarts, and decommissioning projects. Each record has status, key figures, targets, linked entity ids, sources, confidence and its NNN page. Filter by tracker, status, country, entity id or text.

ParameterTypeDescription
vertical"fusion-energy-companies" | "uranium-enrichment-haleu" | "nuclear-plant-restarts" | "nuclear-decommissioning"Industry tracker: fusion-energy-companies, uranium-enrichment-haleu, nuclear-plant-restarts or nuclear-decommissioning.
statusstringRecord status within the tracker, e.g. "restarted", "construction", "operating".
countrystringISO-3166 alpha-2 country code.
entity_idstringOnly records linked to this entity, e.g. org:urenco or site:palisades.
querystringText match on name and summary.
limitinteger (1–200)Maximum rows (1–200). Default 50.
tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "industry_trackers",
    "arguments": {
      "vertical": "nuclear-plant-restarts",
      "country": "JP"
    }
  }
}

relationshipsPro

The NNN relationship ledger for an entity: shareholdings (with %), offtake agreements, EPC/supply/fuel contracts (with primary-sourced values), licences and memberships, as subject or object, including ended relationships and their dated event history.

ParameterTypeDescription
id*stringStable NNN entity id, "{type}:{slug}", e.g. "org:edf", "site:sizewell-c", "unit:vogtle-3". Find ids with search_entities.
predicate"shareholder_of" | "offtaker_of" | "contractor_for" | "licensee_of" | "applicant_for" | "member_of" | "regulator_of"
direction"outgoing" | "incoming" | "both"outgoing = the entity is the subject (e.g. its stakes); incoming = the object (e.g. its shareholders). Default "both".
include_endedbooleanInclude relationships with a valid_to date in the past. Default true.
tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "relationships",
    "arguments": {
      "id": "org:westinghouse",
      "direction": "incoming"
    }
  }
}

ownershipPro

Cap table for a company or project: current shareholders with percentages and their sum, former shareholders, stake-change events, and — in the other direction — the entity's own holdings.

ParameterTypeDescription
id*stringStable NNN entity id, "{type}:{slug}", e.g. "org:edf", "site:sizewell-c", "unit:vogtle-3". Find ids with search_entities.
tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "ownership",
    "arguments": {
      "id": "org:sizewell-c-ltd"
    }
  }
}

entity_graphPro

Multi-hop neighbourhood of an entity in the NNN knowledge graph (registry structure, tracker vendor/owner/EPC links, Prometheus participation and the relationship ledger). Returns nodes and typed edges up to the requested depth.

ParameterTypeDescription
id*stringStable NNN entity id, "{type}:{slug}", e.g. "org:edf", "site:sizewell-c", "unit:vogtle-3". Find ids with search_entities.
depthinteger (1–3) Default 2.
predicatesstring[]Only follow these edge predicates, e.g. ["shareholder_of", "subsidiary_of"].
include_endedboolean Default false.
max_nodesinteger (5–300) Default 100.
tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "entity_graph",
    "arguments": {
      "id": "org:cnnc",
      "depth": 2
    }
  }
}

unit_historyPro

Append-only history of a reactor unit: every dated tracker milestone (first concrete, fuel load, grid connection, delays) and registry status change (shutdown, restart), each with its source.

ParameterTypeDescription
id*stringStable NNN entity id, "{type}:{slug}", e.g. "org:edf", "site:sizewell-c", "unit:vogtle-3". Find ids with search_entities.
tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "unit_history",
    "arguments": {
      "id": "unit:akkuyu-1"
    }
  }
}

industry_tracker_historyPro

Append-only milestone history of one industry-tracker record (a fusion device, an enrichment facility, a plant restart or a decommissioning project): every dated event with its source.

ParameterTypeDescription
vertical*"fusion-energy-companies" | "uranium-enrichment-haleu" | "nuclear-plant-restarts" | "nuclear-decommissioning"Industry tracker: fusion-energy-companies, uranium-enrichment-haleu, nuclear-plant-restarts or nuclear-decommissioning.
slug*stringRecord slug from industry_trackers, e.g. "palisades".
tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "industry_tracker_history",
    "arguments": {
      "vertical": "nuclear-plant-restarts",
      "slug": "takahama-1"
    }
  }
}

changes_sincePro

Everything that changed in the NNN data on or after a date: unit milestones and status changes, relationship events, new relationships, policy-tracker events, Prometheus events, incidents, industry-tracker milestones and re-verified entities.

ParameterTypeDescription
since*stringDate, YYYY-MM-DD.
types"unit_milestones" | "relationships" | "policy" | "prometheus" | "incidents" | "industry_trackers" | "entities"[]Limit to these change types (default: all).
limitinteger (1–500)Maximum rows (1–500). Default 100.
tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "changes_since",
    "arguments": {
      "since": "2026-09-01"
    }
  }
}

fetchFree

Fetch one document returned by search ("entity:{id}" or "post:{slug}") as readable text with its URL and metadata. Implements the fetch tool contract ChatGPT uses for connectors and deep research.

ParameterTypeDescription
id*stringAn id from search, e.g. "entity:org:edf".
tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "fetch",
    "arguments": {
      "id": "entity:org:nnb-genco"
    }
  }
}

Errors

Tool failures come back as results with isError: true and a sentence saying what to do next: an unknown id (use search_entities), a Pro tool on a free account (upgrade link) or the hourly limit (reset time). See Limits, errors & license.