Skip to content

io.github.newspacemarket-com/mrd

by newspacemarket-com · remote · local (npm) · no sign-in to list tools · v1.2.0 · published by GitHub user newspacemarket-com

Spacecraft component specs from vendor datasheets: search, digests, facts, gaps, budgets, bus design

Changes · 7

14 tools: 7 change things and 7 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http mrd https://newspacemarket.com/mrd-connect/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

14 tools

Changes things 7Claude Code: ask
  • ask_consolePlain-language engineering question over the whole platform, answered by platform rules without any external model: selection by requirements, values of a property across a class, …No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Plain-language engineering question over the whole platform, answered by platform rules without any external model: selection by requirements, values of a property across a class, companies by capability and country, launch windows, term definitions. Returns a short answer plus data blocks (candidates A/B/C, values, companies, launches). Use when the question does not map cleanly onto one structured tool.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • ask_datasheetAsk a product datasheet a question and get the closest excerpts with page numbers (pre-indexed text), or scan ALL datasheets of a category for an exact term (term + category) and g…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Ask a product datasheet a question and get the closest excerpts with page numbers (pre-indexed text), or scan ALL datasheets of a category for an exact term (term + category) and get the exact list of products mentioning it with an excerpt each.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • build_budgetEngineering budget for a component stack: pass product ids (from the other tools) and your bus voltage, get total mass, total steady-state power, per-item data interfaces, voltage-…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Engineering budget for a component stack: pass product ids (from the other tools) and your bus voltage, get total mass, total steady-state power, per-item data interfaces, voltage-compatibility verdicts and an honest list of what could NOT be counted because the vendor does not publish it. Use it to assemble and sanity-check a subsystem, e.g. 3-4 reaction wheels for an ADCS.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • check_fitCheck whether a set of products docks together, by the interface template of each product type: deployer and CubeSat structure form factor and satellite mass, separation system and…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Check whether a set of products docks together, by the interface template of each product type: deployer and CubeSat structure form factor and satellite mass, separation system and spacecraft mass, solar panel size and EPS solar input (Voc/Vmp, power), battery and EPS, EPS output rails or the unregulated bus against each unit supply range, EPS charge current against the battery limit, satellite envelope against the deployer envelope for its form factor, on-board computer against unit data interfaces, board stack format, free volume, radio against antenna and ground station (frequency, band, connector, protocol and modulation), antenna against ground station polarization, GNSS receiver signals against the GNSS antenna band, magnetorquer coil current against the driver channel, PPU output power against the electric thruster, array drive against panel power, propulsion propellant against tank media, steady power budget. Verdicts fits / conflict / check / unknown, plus ask_vendor: exactly which values are missing to decide.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • design_stackAssemble a whole spacecraft bus from a plain-language task: the service plans the subsystems, matches every item deterministically against the stated requirements, computes the mas…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Assemble a whole spacecraft bus from a plain-language task: the service plans the subsystems, matches every item deterministically against the stated requirements, computes the mass/power budget and writes an evidence-bound rationale. Pass fixed = product ids you have already chosen (from match_components or get_datasheet_digest): they stay in their subsystems, are checked against the requirements (selected.fixed, fixed_verdict, fixed_fails) and the rest is assembled around them. LLM-backed and rate-limited (6/min, 30/h anonymous).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • match_componentsReverse search over a typed spec layer: pass a category and engineering requirements, get every catalogued item grouped as A (meets all stated requirements), B (fails a named requi…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Reverse search over a typed spec layer: pass a category and engineering requirements, get every catalogued item grouped as A (meets all stated requirements), B (fails a named requirement, both figures quoted) or C (could fit, data missing). Verdicts cite the datasheet page. Omit parameters you do not care about. Categories: reaction-wheels, star-trackers, obc-computers, batteries, radios, solar-panels, propulsion, sun-sensors, magnetometers, magnetorquers, imus-gyros, gnss-receivers, eps, deployers, thermal, antennas, sdr-modems, cameras, structures, platforms, ground-stations, sadm, tanks-valves, separation-systems, pointing-mechanisms, test-facilities (environmental test labs — items are companies: test, shaker_min_kn, tvac_min_m, specimen_min_kg, emc_min_m). The answer is compact: group A in full (up to 25), groups B and C — the first 10 with the reason, plus counts and the fields most often unpublished in C; page with group and offset.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • selection_guideHow to choose a product of one category, from the catalogue data only: the decisive parameters with real ranges (middle half and full range), which side is better, how many product…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    How to choose a product of one category, from the catalogue data only: the decisive parameters with real ranges (middle half and full range), which side is better, how many products publish each, what to ask the vendor, and ready match queries. category = "cubesat" gives the list of subsystems a CubeSat is built from with catalogue counts.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 7Claude Code: allow
  • explain_propertiesWhat every property of a product category means: definition, how it is measured and what goes into the measurement condition, how to use it when selecting, what it is commonly conf…No findings

    Why it is in this group

    • The name "explain_properties" says "explain": a word for reading.
    Description, as the server wrote it
    What every property of a product category means: definition, how it is measured and what goes into the measurement condition, how to use it when selecting, what it is commonly confused with, typical range and related properties. Call this before interpreting specs of an unfamiliar category.
  • find_alternativesAlternatives / second sources / replacements for ONE product: requirements are derived from its own published values (key fields of its class — higher-is-better at least 80 %, lowe…No findings

    Why it is in this group

    • The name "find_alternatives" says "find": a word for reading.
    Description, as the server wrote it
    Alternatives / second sources / replacements for ONE product: requirements are derived from its own published values (key fields of its class — higher-is-better at least 80 %, lower-is-better at most 120 %, same interface, band or type) and its class is searched without it. Returns the derived requirements, fields not compared, and groups A (meets all), B (fails one), C (data missing). Use when a part has a long lead time, is discontinued or export-restricted. Equal figures do not make a drop-in replacement — interfaces must be confirmed with the manufacturer.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • find_data_gapsWhat is missing for a product, a company or a category and where to get it: in_digest (already read from the datasheet — value, page), in_datasheet_text (the datasheet mentions it …No findings

    Why it is in this group

    • The name "find_data_gaps" says "find": a word for reading.
    Description, as the server wrote it
    What is missing for a product, a company or a category and where to get it: in_digest (already read from the datasheet — value, page), in_datasheet_text (the datasheet mentions it — page, excerpt), not_in_datasheet (ask the vendor), no_datasheet (ask the vendor for a datasheet). For vendors: what to publish; for buyers: what to ask.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • find_suppliersCompanies whose PRODUCTS meet engineering requirements in one category — "who makes platforms for GEO", "Chinese companies making star trackers better than 10 arcsec", "suppliers o…No findings

    Why it is in this group

    • The name "find_suppliers" says "find": a word for reading.
    Description, as the server wrote it
    Companies whose PRODUCTS meet engineering requirements in one category — "who makes platforms for GEO", "Chinese companies making star trackers better than 10 arcsec", "suppliers of flight-proven reaction wheels". Pass category, optional country and any requirement parameter of match_components (same names and units). Returns companies with their matching products, and how many more companies may fit because the decisive value is not published.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_component_specsThe typed layer of a category, 10 products per call (page with offset, narrow with ids and keys) — every item with every value (number, canonical unit, bound, measurement condition…No findings

    Why it is in this group

    • The name "get_component_specs" says "get": a word for reading.
    Description, as the server wrote it
    The typed layer of a category, 10 products per call (page with offset, narrow with ids and keys) — every item with every value (number, canonical unit, bound, measurement condition, datasheet source page, confidence L0/L1) plus the property dictionary grouped by interface port (perf/power/data/mech/thermal/env/supply) — for arbitrary comparison, budgeting or trade studies on your side.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_datasheet_digestFacts machine-read from a product datasheet, by section (identity, performance, electrical, interfaces, mechanical, thermal, environmental, qualification, lifetime, options, compli…No findings

    Why it is in this group

    • The name "get_datasheet_digest" says "get": a word for reading.
    Description, as the server wrote it
    Facts machine-read from a product datasheet, by section (identity, performance, electrical, interfaces, mechanical, thermal, environmental, qualification, lifetime, options, compliance, commercial). Each fact carries unit, condition, the page and a verbatim quote it was verified against (confidence L0) plus a link into the PDF. Use it for what the typed layer does not hold: connectors, protocols, survival temperature, vibration, radiation, heritage, options, export control, lead time. Pass product_id from match_components or a product name.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_datasheet_factsOne fact key across a whole category: which products state it in their datasheets and what value — e.g.No findings

    Why it is in this group

    • The name "search_datasheet_facts" says "search": a word for reading.
    Description, as the server wrote it
    One fact key across a whole category: which products state it in their datasheets and what value — e.g. connector, data_interface, protocol, survival_temperature, tid_tolerance, flight_heritage, trl, export_control, lead_time, price, design_life. One row per product with page and quote. Reports coverage (how many products of the category have a digested datasheet).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.2.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http mrd https://newspacemarket.com/mrd-connect/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__mrd__explain_properties",
      "mcp__mrd__find_alternatives",
      "mcp__mrd__find_suppliers",
      "mcp__mrd__get_component_specs",
      "mcp__mrd__get_datasheet_digest",
      "mcp__mrd__search_datasheet_facts",
      "mcp__mrd__find_data_gaps"
    ],
    "ask": [
      "mcp__mrd__match_components",
      "mcp__mrd__selection_guide",
      "mcp__mrd__build_budget",
      "mcp__mrd__ask_datasheet",
      "mcp__mrd__design_stack",
      "mcp__mrd__ask_console",
      "mcp__mrd__check_fit"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as mrd. Review it before you use it.