Koskamo

Space Mushroom MCP

A read-only MCP server providing access to an open engineering materials database. It allows AI agents to find materials, resolve designations, list and prove claims, identify missing data, search sources, compare materials, and retrieve detailed material profiles including JSON and CSV data files.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Space Mushroom MCP logo, by Space MushroomVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-02Operated by Space Mushroom
MCP endpoint (Streamable HTTP)
https://spacemushroom.com/mcp
Vendor documentation

What you can do with it

  • Find materials by name or properties
  • Resolve material designations
  • Compare material properties side-by-side
  • Retrieve source-cited engineering data

Source and maintenance

Vendor evidenceRegistry 0.1.0
Maintenance checked

Protocol and capabilities

Server
space-mushroom 0.1.0
MCP protocol
2025-06-18
Tools
11 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Space Mushroom is an open materials platform where every number carries its source, conditions and method. Use find_materials to go from requirements to candidates (pass, fail or unknown, with evidence), list_claims and prove_claim to see and verify values, what_is_missing for coverage, and search_materials, get_material and compare for browsing. Use resolve_designation when you have a code (UNS, EN, DIN, JIS, AISI, ASTM) and need the grade. Always quote the source with a value. A value marked review "ai_checked" was re-read by an AI assistant, not a person. Absence of data means "not covered yet", not "not known to be safe". Data licensed CC BY 4.0. Cite the source shown with each value and "Space Mushroom (spacemushroom.com)".

Tools

11 advertised

search_materials — Search materials
Advertised by the server during the last successful anonymous check.

Find materials by name, abbreviation or formula. Optionally filter by category slug (for example polymers, metals, energy). Returns ids to use with get_material.

search_materials input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 50,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Name, abbreviation or formula, for example \"PEEK\" or \"LiFePO4\""
    },
    "category": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
get_material — Get a material
Advertised by the server during the last successful anonymous check.

The sourced record of one material: sourced numbers with conditions, method and source location, plus uses, hazards, failure modes, corrosion and supply facts. Optionally narrow to one property or fact topic.

get_material input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The id from search_materials, for example \"lithium-iron-phosphate\""
    },
    "topic": {
      "enum": [
        "use",
        "hazard",
        "failure",
        "corrosion",
        "side_effect",
        "handling",
        "mitigation",
        "supply",
        "regulation",
        "history"
      ],
      "type": "string"
    },
    "property": {
      "type": "string",
      "description": "Only claims for this property, for example thermal_runaway_onset"
    },
    "include_facts": {
      "type": "boolean",
      "default": true
    }
  },
  "additionalProperties": false
}
compare — Compare materials on one property
Advertised by the server during the last successful anonymous check.

Line several materials up on one property, with each value, its conditions and its source. Values are also given in the property's canonical unit (value_canonical), so they can be ranked directly. Values measured under different conditions are listed separately and are not averaged.

compare input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "property",
    "materials"
  ],
  "properties": {
    "property": {
      "type": "string",
      "description": "For example thermal_runaway_onset or atomic_oxygen_erosion_yield"
    },
    "materials": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 12,
      "minItems": 2,
      "description": "Ids from search_materials"
    }
  },
  "additionalProperties": false
}
list_properties — List properties
Advertised by the server during the last successful anonymous check.

The property names in use, with their canonical unit and whether higher or lower is better. Use these names with get_material and compare.

list_properties input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "query": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
get_term — Look up a term
Advertised by the server during the last successful anonymous check.

A plain-language definition of a technical term or abbreviation used on material pages, for example ARC, SoC or adiabatic.

get_term input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "term"
  ],
  "properties": {
    "term": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
find_materials — Find materials that meet requirements
Advertised by the server during the last successful anonymous check.

Requirements in, candidates out. Each material gets a verdict: pass (every constraint met by a sourced value), fail, or unknown (no data on a constraint, so it cannot be ruled in or out). Every constraint reports pass, fail or no_data and the strongest evidence level behind it (flown, measured, derived, inferred, estimated, predicted). By default only passes and unknowns are returned, passes first. Context narrows which values count: at_temperature (degrees C; values measured at another temperature do not count), flown_only (only values measured in the real space environment), environment, include_failed, limit. Materials with no data on any constraint are not listed: use what_is_missing to see coverage for one material.

find_materials input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "constraints"
  ],
  "properties": {
    "context": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "maximum": 500,
          "minimum": 1
        },
        "flown_only": {
          "type": "boolean"
        },
        "environment": {
          "type": "string",
          "description": "For example low-earth-orbit"
        },
        "at_temperature": {
          "type": "number"
        },
        "include_failed": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "constraints": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "property",
          "op",
          "value"
        ],
        "properties": {
          "op": {
            "enum": [
              ">=",
              "<=",
              "=",
              "between"
            ],
            "type": "string"
          },
          "unit": {
            "type": "string",
            "description": "Unit of value, for example \"kg/m3\" or \"ksi\"; converted to the property's unit. Omit when value is already in the property's unit."
          },
          "value": {
            "type": "number"
          },
          "value2": {
            "type": "number",
            "description": "Upper end, for between"
          },
          "property": {
            "type": "string",
            "description": "A registered property, for example density, yield_strength, max_service_temp (see list_properties)"
          }
        },
        "additionalProperties": false
      },
      "maxItems": 12,
      "minItems": 1
    }
  },
  "additionalProperties": false
}
list_claims — List the sourced values of a material
Advertised by the server during the last successful anonymous check.

Every current sourced value for one material (optionally one property) in canonical units, with evidence level and a claim_id. Use the claim_id with prove_claim to see the exact source and passage.

list_claims input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "material"
  ],
  "properties": {
    "material": {
      "type": "string"
    },
    "property": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
prove_claim — Prove a value
Advertised by the server during the last successful anonymous check.

Everything behind one value: as printed in the source, converted, the evidence level and what it means, the conditions, and each source with the place in it (and the passage where we have it).

prove_claim input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "claim_id"
  ],
  "properties": {
    "claim_id": {
      "type": "integer"
    }
  },
  "additionalProperties": false
}
what_is_missing — What data is missing
Advertised by the server during the last successful anonymous check.

For one material and a list of properties: which have sourced data (and the strongest evidence) and which have none. "no_data" means not covered yet, not known to be safe.

what_is_missing input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "material",
    "properties"
  ],
  "properties": {
    "material": {
      "type": "string"
    },
    "properties": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 40,
      "minItems": 1
    }
  },
  "additionalProperties": false
}
resolve_designation — Resolve a designation
Advertised by the server during the last successful anonymous check.

Which material a code names: a UNS number, EN number or name, DIN, JIS, AISI or SAE number, ASTM or AMS specification, or trade name (for example S31600, 1.4401, SUS316, A240). Case, spaces and hyphens do not matter, and a short code also lists the codes that start with it. Each row gives the system, the code, a note (product form or a caveat) and whether the match is exact. A specification such as ASTM A240 covers many grades and returns every material that cites it. A note of "nearest equivalent" means the source itself hedges: do not treat the two as the same grade.

resolve_designation input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "code"
  ],
  "properties": {
    "code": {
      "type": "string",
      "maxLength": 60,
      "minLength": 2
    }
  },
  "additionalProperties": false
}
search_sources — Search source passages
Advertised by the server during the last successful anonymous check.

Full-text search over short passages quoted from our sources. Returns the passage, the source and the place in it. Passages are still being added, so an empty answer means none indexed yet.

search_sources input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 5,
      "maximum": 20,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "minLength": 2
    }
  },
  "additionalProperties": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1399 ms
95th percentile latency
1399 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1399 ms · metadata changed · 11 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http space-mushroom-mcp https://spacemushroom.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add space-mushroom-mcp --url https://spacemushroom.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable space-mushroom-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "space-mushroom-mcp": {
      "url": "https://spacemushroom.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "space-mushroom-mcp": {
      "type": "streamableHttp",
      "url": "https://spacemushroom.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start space-mushroom-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "space-mushroom-mcp": {
      "type": "http",
      "url": "https://spacemushroom.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http space-mushroom-mcp https://spacemushroom.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "space-mushroom-mcp": {
      "url": "https://spacemushroom.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "space-mushroom-mcp": {
      "serverUrl": "https://spacemushroom.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Space Mushroom MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Space Mushroom MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing