# io.github.newspacemarket-com/mrd (remote · newspacemarket.com)

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

- Trust score: 74/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-25

## Components

- remote · `newspacemarket.com`: 74/100 (this document), [markdown](https://verifymcp.io/servers/newspacemarket-com-mrd/mrd-connect-mcp.md), [page](https://verifymcp.io/servers/newspacemarket-com-mrd/mrd-connect-mcp)
- npm · `@newspacemarket/mrd-mcp`: 39/100, [markdown](https://verifymcp.io/servers/newspacemarket-com-mrd/newspacemarket-mrd-mcp.md), [page](https://verifymcp.io/servers/newspacemarket-com-mrd/newspacemarket-mrd-mcp)

## Channel facts

- Endpoint: `https://newspacemarket.com/mrd-connect/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.2.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-09-25.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 1 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - 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**: 60/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3986 tokens (~306/item across 13 items; 13 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 87/100
  - Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 98/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 93% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 13 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 14 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the io.github.newspacemarket-com/mrd MCP server?

io.github.newspacemarket-com/mrd is a hosted endpoint at https://newspacemarket.com/mrd-connect/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

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

### Cursor

```json
{
  "mcpServers": {
    "newspacemarket-com-mrd": {
      "url": "https://newspacemarket.com/mrd-connect/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "newspacemarket-com-mrd": {
      "type": "http",
      "url": "https://newspacemarket.com/mrd-connect/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.newspacemarket-com-mrd]
url = "https://newspacemarket.com/mrd-connect/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "newspacemarket-com-mrd": {
      "type": "remote",
      "url": "https://newspacemarket.com/mrd-connect/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add newspacemarket-com-mrd --url 'https://newspacemarket.com/mrd-connect/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  newspacemarket-com-mrd:
    url: "https://newspacemarket.com/mrd-connect/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "newspacemarket-com-mrd": {
      "Transport": "http",
      "Url": "https://newspacemarket.com/mrd-connect/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add newspacemarket-com-mrd -t streamable-http -u 'https://newspacemarket.com/mrd-connect/mcp'
```

### Other

```json
{
  "mcpServers": {
    "newspacemarket-com-mrd": {
      "type": "http",
      "url": "https://newspacemarket.com/mrd-connect/mcp"
    }
  }
}
```

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-09-25 (score 74, +1)

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

### 2026-09-24 (score 73, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [cosmetic] “match_components” added an optional parameter “buspower_min_w”
- [cosmetic] “match_components” added an optional parameter “dv_min_ms”
- [cosmetic] “match_components” added an optional parameter “life_min_y”
- [cosmetic] “match_components” added an optional parameter “paypower_min_w”
- [cosmetic] “match_components” added an optional parameter “payvol_min_l”
- [cosmetic] “match_components” added an optional parameter “payvol_min_u”
- [cosmetic] “match_components” added an optional parameter “pointacc_max_deg”
- [cosmetic] “match_components” added an optional parameter “battery_min_wh”
- [cosmetic] “match_components” reworded the description of “form_u”
- [cosmetic] “match_components” reworded the description of “paymass_min_g”

### 2026-09-23 (score 73, 0)

- [functional] New tool “ask_console”
- [cosmetic] “match_components” added an optional parameter “fov_min_deg”
- [cosmetic] “match_components” added an optional parameter “mass_min”
- [cosmetic] “match_components” added an optional parameter “thrust_max_mn”
- [cosmetic] “match_components” added an optional parameter “capacity_max_wh”

### 2026-09-22 (score 73, +1)

- [cosmetic] “get_component_specs” reworded the description of “category”
- [cosmetic] “match_components” reworded the description of “category”

### 2026-09-20 (score 72, +1)

- [security] Tool “check_fit” rewrote its description, which is the text the model reads

### 2026-09-18 (score 71, −6)

- [security regression] Authorization: partial → unverified
- [security] The server rewrote its instructions, which are the text every model session reads
- [functional] New tool “explain_properties”

### 2026-09-17 (score 77, +1)

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

### 2026-09-15 (score 76, +1)

- [functional] New tool “check_fit”

## MCP tools (13)

### `explain_properties` (~104 tokens)

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.

Input parameters:

- `category` (string, required): category slug, e.g. reaction-wheels, deployers, thermal
- `subtype` (string): optional subtype slug, e.g. cmg, heatpipe, sequencer

### `match_components` (~1874 tokens)

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

Input parameters:

- `accuracy_max` (number): star trackers: worst acceptable cross-boresight accuracy, arcsec
- `acq_max` (number): star trackers: max lost-in-space acquisition time, s
- `arw_max` (number): IMU: worst angle random walk, deg per sqrt hour
- `band` (string): radio: frequency band UHF|VHF|S|X|L|C|Ku|Ka
- `bands_min` (number): camera: min spectral bands
- `battery_min_wh` (number): platforms: min battery capacity, Wh
- `beam_max_deg` (number): antenna: max beamwidth, deg
- `bias_max_degh` (number): IMU: worst bias instability, deg/h
- `bus_v` (number): your power bus voltage, V — the unit must accept it
- `buspower_min_w` (number): platforms: min orbit-average power generation, W
- `capacity_max_wh` (number): batteries: max capacity, Wh
- `capacity_min_u` (number): deployer: min capacity, U (your satellite size)
- `capacity_min_wh` (number): battery: min capacity, Wh
- `category` (string): which component class to search — ONE per call; for several classes call once per class (default reaction-wheels)
- `channels_min` (number): GNSS: min channels
- `clock_min` (number): OBC: min CPU clock, MHz
- `conductance_min_wk` (number): thermal strap: min conductance, W/K
- `constellation` (string): GNSS: required constellation GPS|Galileo|GLONASS|BeiDou
- `cycles_min` (number): battery: min cycle life
- `data_if` (string): required data interface: CAN, RS-422, RS-485, SpaceWire, I2C, SPI, UART, MIL-STD-1553
- `dipole_min_am2` (number): magnetorquer: min dipole moment, A*m2
- `dish_min_m` (number): ground station: min antenna diameter, m
- `dv_min_ms` (number): platforms / propulsion: min delta-v, m/s
- `eirp_min_dbw` (number): ground station: min EIRP, dBW
- `export` (string): required export status: ITAR-free | EAR99 | ITAR
- `flight_proven` (boolean): any category: true = only products with stated flight heritage (missions flown, heritage text or TRL 9)
- `form_u` (number): structures / platforms: CubeSat size, U (exact match)
- `fov_min_deg` (number): sun sensors / star trackers / cameras: min field of view, deg
- `gain_min_dbi` (number): antenna: min gain, dBi
- `group` (string): page through one group only — use with offset from paging.next
- `gsd_max_m` (number): camera: worst ground sample distance, m
- `gt_min_dbk` (number): ground station: min G/T, dB/K
- `gyro_range_min_dps` (number): IMU: min gyro range, deg/s
- `impulse_min_ns` (number): propulsion: min total impulse, N*s
- `isp_min_s` (number): propulsion: min specific impulse, s
- `lead_max` (number): max lead time, months
- `life_min_y` (number): any category: min design life in orbit, years
- `limit` (integer): items of groups B and C to return (default 10, max 50); group A comes in full up to 25
- `link_band` (string): platforms: radio band of the bus — UHF | VHF | L | S | X | Ku | Ka | optical
- `mag_res_max` (number): magnetometer: worst resolution, nT
- `mass_max` (number): max unit mass, grams
- `mass_min` (number): min unit mass, grams (rare: "heavier than")
- `material` (string): structure: alloy, e.g. Al 7075
- `media` (string): tank/valve: propellant/media, e.g. xenon, hydrazine
- `meop_min_bar` (number): tank/valve: min operating pressure, bar
- `momentum_min` (number): wheels: min angular momentum storage, N*m*s
- `mpx_min` (number): camera: min sensor resolution, Mpx
- `offset` (integer): start position inside the group (paging.next.offset of the previous answer)
- `orbit` (string): platforms: orbit the bus is designed for — LEO | SSO | VLEO | MEO | GEO | HEO | lunar | deep space (LEO, SSO and VLEO pass each other)
- `outpow_min_w` (number): EPS: min total output power, W
- `panel_power_min_w` (number): solar panel: min BOL output, W
- `paymass_min_g` (number): platforms / deployers / separation systems: payload or satellite mass that must fit, grams
- `paypower_min_w` (number): platforms: min orbit-average power available to the payload, W
- `payvol_min_l` (number): platforms: min volume for the payload, litres
- `payvol_min_u` (number): platforms: min volume for the payload, U
- `pointacc_max_deg` (number): platforms / pointing mechanisms / ground stations: worst acceptable pointing accuracy, deg (30 arcsec = 0.0083)
- `polarization` (string): antenna: RHCP|LHCP|linear|circular
- `pos_acc_max` (number): GNSS: worst position accuracy, m
- `power_max` (number): max steady-state power, W (peak/regenerative not counted)
- `preload_min_kn` (number): separation: min preload/holding force, kN
- `price_max_eur` (number): max indicative price, EUR (few vendors publish it — expect group C)
- `prop_type` (string): propulsion: electric | chemical | cold-gas | water; platforms: electric | chemical | any (the bus carries propulsion)
- `ptrans_min_w` (number): SADM: min power transfer, W
- `ram_min` (number): OBC: min RAM, MB
- `range_min_deg` (number): pointing: min travel range, deg
- `range_min_ut` (number): magnetometer: min field range, uT
- `rate_min_kbps` (number): radio: min data rate, kbps
- `reltime_max_ms` (number): separation: max release time, ms
- `res_max_deg` (number): pointing: max angular resolution, deg
- `shock_max_g` (number): separation: max release shock, g
- `slip_min_ch` (number): SADM: min slip-ring channels
- `storage_min` (number): OBC: min storage, GB
- `sun_excl_max` (number): star trackers: max acceptable sun exclusion angle, deg
- `sunacc_max` (number): sun sensor: worst acceptable accuracy, deg
- `swath_min_km` (number): camera: min swath width, km
- `thrust_max_mn` (number): propulsion: max thrust, mN
- `thrust_min_mn` (number): propulsion: min thrust, mN
- `tid_min` (number): any category: min radiation tolerance TID, krad
- `torque_min` (number): wheels: min torque, mN*m
- `ttff_max` (number): GNSS: worst cold TTFF, s
- `txpow_min_w` (number): radio: min TX RF power, W
- `update_min` (number): star trackers: min update rate, Hz
- `volume_min_l` (number): tank/valve: min volume, L

### `selection_guide` (~109 tokens)

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.

Input parameters:

- `category` (string, required): component class (reaction-wheels, star-trackers, platforms, antennas…) or "cubesat"

### `find_suppliers` (~334 tokens)

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.

Input parameters:

- `accuracy_max` (number): star trackers: cross-boresight accuracy, arcsec
- `bus_v` (number): bus voltage the unit must accept, V
- `category` (string, required): component class, e.g. platforms, star-trackers, reaction-wheels (see match_components)
- `country` (string): English country or region (China, Germany, Europe)
- `data_if` (string): data interface: CAN, RS-422, SpaceWire…
- `export` (string): ITAR-free | EAR99 | ITAR
- `flight_proven` (boolean): only flight-proven products
- `mass_max` (number): max unit mass, g
- `momentum_min` (number): reaction wheels: momentum, N·m·s
- `orbit` (string): platforms: LEO | SSO | MEO | GEO | lunar
- `paymass_min_g` (number): platforms: payload mass that must fit, g
- `paypower_min_w` (number): platforms: orbit-average power for the payload, W
- `prop_type` (string): platforms: electric | chemical | any; propulsion: electric | chemical | cold-gas | water

### `build_budget` (~124 tokens)

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.

Input parameters:

- `bus_v` (number): power bus voltage, V — each item is checked against its supply range
- `items` (array, required): components of the stack

### `get_component_specs` (~210 tokens)

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.

Input parameters:

- `category` (string): component class — ONE per call; for several classes call once per class (default reaction-wheels)
- `confidence` (string): pass L1 to get only human-verified rows
- `ids` (array): only these product ids (from match_components)
- `keys` (array): only these properties (prop_key values from properties), e.g. ["mass_g","momentum_nms"]
- `limit` (integer): products per call (default 10, max 60)
- `offset` (integer): continue from paging.next_offset

### `get_datasheet_digest` (~139 tokens)

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.

Input parameters:

- `product_id` (integer)
- `q` (string): product name if no id

### `search_datasheet_facts` (~120 tokens)

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

Input parameters:

- `category` (string, required)
- `contains` (string): keep only values containing this text
- `key` (string, required)

### `ask_datasheet` (~112 tokens)

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.

Input parameters:

- `category` (string)
- `product_id` (integer)
- `q` (string): question to one datasheet
- `term` (string): exact word/phrase for the category scan, e.g. SpaceWire, ITAR

### `design_stack` (~169 tokens)

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

Input parameters:

- `fixed` (array): product ids to keep (locked parts)
- `q` (string, required): the task, e.g. "6U CubeSat bus on 12 V with S-band radio and GNSS, star tracker better than 10 arcsec"

### `find_data_gaps` (~122 tokens)

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.

Input parameters:

- `category` (string)
- `company_id` (integer)
- `product_id` (integer)
- `status` (string)

### `ask_console` (~127 tokens)

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.

Input parameters:

- `q` (string, required): the question in English or Russian, e.g. "star tracker better than 10 arcsec under 1 kg", "who makes batteries in Germany", "what is TRL"

### `check_fit` (~226 tokens)

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.

Input parameters:

- `items` (array, required): products of the spacecraft, deployer or ground segment (ids from match_components)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/newspacemarket-com-mrd/mrd-connect-mcp#diagnostics

## Score history

- 2026-09-25: 74
- 2026-09-24: 73
- 2026-09-23: 73
- 2026-09-22: 73
- 2026-09-21: 72
- 2026-09-20: 72
- 2026-09-19: 71
- 2026-09-18: 71
- 2026-09-17: 77
- 2026-09-16: 76
- 2026-09-15: 76
- 2026-09-14: 75
- 2026-09-13: 75
- 2026-09-12: 74
- 2026-09-11: 74
- 2026-09-10: 73
- 2026-09-09: 73
- 2026-09-08: 72
- 2026-09-07: 72
- 2026-09-06: 71
- 2026-09-05: 71
- 2026-09-04: 70
- 2026-09-03: 70
- 2026-09-02: 69
- 2026-09-01: 69
- 2026-08-31: 68
- 2026-08-30: 68

## Common questions

### What is the io.github.newspacemarket-com/mrd MCP server?

io.github.newspacemarket-com/mrd is an MCP server listed in the public MCP registry as io.github.newspacemarket-com/mrd. Spacecraft component specs from vendor datasheets: search, digests, facts, gaps, budgets, bus design. This page covers its hosted endpoint (https://newspacemarket.com/mrd-connect/mcp).

### Is the io.github.newspacemarket-com/mrd MCP server safe to use?

io.github.newspacemarket-com/mrd scores 74 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the io.github.newspacemarket-com/mrd MCP server expose?

io.github.newspacemarket-com/mrd exposes 13 tools: explain_properties, match_components, selection_guide, find_suppliers, build_budget, and 8 more. Their descriptions and schemas cost roughly 3,770 tokens of context every time the server is loaded.

### Does the io.github.newspacemarket-com/mrd MCP server require authentication?

No. We connected to io.github.newspacemarket-com/mrd without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the io.github.newspacemarket-com/mrd MCP server still maintained?

io.github.newspacemarket-com/mrd is still listed as active in the MCP registry. We last reached this channel on 25 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://newspacemarket.com/mrd-connect/mcp
- Repository: https://github.com/newspacemarket-com/mrd
- Website: https://newspacemarket.com/mrd-connect/
- Changelog RSS feed: https://verifymcp.io/servers/newspacemarket-com-mrd/mrd-connect-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/newspacemarket-com-mrd/mrd-connect-mcp.json
- HTML version of this page: https://verifymcp.io/servers/newspacemarket-com-mrd/mrd-connect-mcp
