MaterialsCodeGraph

com.materialscodegraphPublished by materialscodegraph.comOfficial publisherv0.1.1Updated Oct 24, 2026

Materials simulations for AI agents over MCP: binding token quote before every run, record after it.

VerifiedStreamable HTTPWeb executableAI & ML

Overview

AI-generated overview

Lets an assistant quote and run materials simulations, binding a token quote before each run and recording results after.

What you can do
MaterialsCodeGraph is a remote MCP server for materials simulations. According to its registry description, it provides a binding token quote before every simulation run and records the run afterward. No tool list is published, so the exact operations are not documented here.
When to use it
Consider it when an assistant needs to run materials simulations and you want a quoted cost committed before execution and a record kept afterward. It is less useful if you need documented tool names or offline operation.
Requirements
A remote streamable HTTP endpoint at api.materialscodegraph.com. An Authorization header is required and carries a bearer API key minted on the provider's keys page. No packages or environment variables are declared.
Before you install
The Authorization header carries a secret API key; treat it as a credential and avoid exposing it. The description mentions a binding token quote before every run, which implies spending or metering, so confirm costs before running simulations. Simulation inputs are sent to a third-party remote service.

Installation

In SourceWeft

  1. Open MaterialsCodeGraph in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.materialscodegraph%2Fmcg/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "materialscodegraph": {
      "type": "http",
      "url": "https://api.materialscodegraph.com/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

This repository has no README.

Tools

12

mcg_catalog

Enabled simulation kinds (each with example mcg_quote arguments that price, or a note naming what must exist first; traced says whether the kind's default lineage has a single public OpenMaterials node pin, traced_note why or why not; research coordinators instead expose record_contract describing per-task completion requirements, not completed results), the costed lineage menu (runnability, physical conditions, indicative token costs and wall time per resource class, with its label and the offer SKU priced), the external-frontier graphs mcg_quote accepts, recipes (pass a recipe's quote object to mcg_quote unchanged), and codes (versions, licenses, pins; the only software a run may execute). Call before mcg_quote. A kind or code absent here cannot run.

Takes no parameters.

mcg_rates

The public rate card: token_usd, overheads, rate_card_version. FREE, no arguments; also a connectivity check.

Takes no parameters.

mcg_quote

Price a simulation. FREE: no hardware starts. Returns quote_id, quote_hash, tokens, rate_card_version, wall_s, expires_at, resource_class, resource_label and sku (the GPU class the quote is bound to, its name, and the offer SKU it priced; null when none was chosen), resource_options (one row per class the run can rent at this venue: resource_class, label, sku, tokens, wall_s, available; tokens and wall_s are what this quote would be on that class, null when it has no live offer now; re-quote with resource_class to pick one), the plan, and record: {traced: true, node, node_uid, map_version (the openmaterials graph version the node is pinned at; the commons map version is published at openmaterials.ai/data/version.json), material (the material the pinned conditions name: what the run computes)} when the completed run's OpenMaterials record is keyed on that public map node (measured instances cite the method that ran), else {traced: false, reason}, which only the graph arm and research coordinators return: a kind-arm spec no record can name is refused with the reason, and one naming several materials or interfaces carries detail.split: one {material, spec} per simulation, each ready to quote (pass the same study to group them). Research coordinators remain traced:false because they have no single public-node pin, but add record.record_contract: per-task omai completion requirements and the approved contract_sha256. Scientific tasks require simulation records; source-integrity QA requires node-less light_evidence, not scientific results. This is a required contract, not evidence that a run has completed; read it before you spend. The price is a binding ceiling: never more than this. mcg_run accepts only this quote_id with this quote_hash before expires_at and REJECTS a stale hash (quote_mismatch) or an expired quote (quote_expired). Arms, exactly one: kind from mcg_catalog (spec passed through verbatim, spec.params set the price, engine overrides the default only with a

Parameterskindnamerequiredspecstudyenginetargetdraft_idmaterialconditionsmax_tokensstructure_xyzresource_class+1 more

mcg_clusters

Connected clusters: id, name, preset (hive or auto), status (pending until the agent's first sync; connected; stale: the agent stopped syncing; revoked; scheduler_down: the agent syncs but cannot reach the scheduler, nothing is offered; agent_outdated: an auto cluster's agent sends no inventory; snapshot_rejected: its last snapshot was over the size cap; snapshot_stale: no fresh capacity snapshot, nothing is offered; nodes_unavailable: none of an auto cluster's nodes accept jobs (drained, down, in maintenance or not responding), nothing is offered), status_detail (why, when not connected), classes (resource classes offered per partition, with per-job GPU, CPU and memory maxima and the GRES type), unclassified_gpus (GPU types present but not offered: type, count, reason), untyped_gpus, last sync time. Pass target {cluster_id} to mcg_quote to run there at zero hardware cost; only a connected cluster quotes. Clusters are created with POST /api/clusters (on the machine host with a spend-scoped key).

Takes no parameters.

mcg_stage

Create a DRAFT simulation whose input files are uploaded before pricing. FREE. Takes the same kind, spec, study, material and conditions as mcg_quote plus inputs: one entry per file the run needs, each with a name and, for small text files, the text inline (staged immediately). Entries without text come back in uploads as presigned PUT URLs (valid 15 minutes, 4 GiB per file): upload each with a plain HTTP PUT of the file bytes, no key or header. Then call mcg_quote with draft_id to price; it REJECTS with inputs_missing until every declared input has arrived.

Parameterskindrequirednamerequiredspecrequiredstudyengineinputsrequiredmaterialconditions

mcg_run

Launch the quoted simulation. SPENDS TOKENS: provisions hardware and bills the account. Requires the quote_id and quote_hash from mcg_quote (a stale hash or an expired quote REJECTS: re-quote and retry) and a client-generated idempotency_key (replaying it returns the existing run instead of launching twice). Optional max_tokens is a hard ceiling: a quote above it REJECTS the launch, never clamps. Returns run_id.

Parametersquote_idrequiredmax_tokensquote_hashrequiredidempotency_keyrequired

mcg_list_runs

List runs, newest first: every run of this key's owner, or one quote's runs when quote_id is given. Each row carries state, spend_tokens, created_by_key_name (null when launched in the browser), study, headline (the AI brief's first line) and app_url. Returns runs.

Parametersquote_id

mcg_get_study

Fetch a study (the project a quote's `study` named) with its member simulations and their latest runs. Pass study_id or the exact name. Returns study, members (each with app_url) and app_url.

Parametersnamestudy_id

mcg_get_run

Fetch a run's state, event timeline and LLM spend. The payload leads with a derived summary (state, current_stage, billing {quoted_tokens, charged_tokens, hold, policy}, fault, refusal, next, last event) for cheap polling, then app_url (the run page, for the human), study and headline. events holds the newest events that fit about 12 KB plus the last complete or fail event; events_omitted counts the others. In a payload over 2 KB, each value over 256 chars becomes {omitted_bytes, see}, where see names the route that returns the full event. A report body_md over 6,000 chars becomes the same stub; a brief body_md is cut at 6,000 chars and ends in an ellipsis; llm_spend.calls holds the newest 10 calls, and calls_omitted counts the rest. A done, node-addressed run also carries record (its OpenMaterials SimulationRecord), openmaterials_url (the datasheet link) and openmaterials_label: null, or the commons' note when the record cites a model, configuration or code that is not in the public registry (record.unregistered lists each model and configuration), so its values cannot be checked against the commons.

Parametersrun_idrequired

mcg_cancel_run

Cancel a run from any non-terminal state before collecting (a collecting run's outputs are delivered and charged: 409). The cancel request is recorded immediately and returns run_id and cancel_requested true; the platform kills the machine and terminalizes the run as state killed on its next orchestration tick (about 60 s). Poll mcg_get_run to observe the terminal state.

Parametersrun_idrequired

mcg_fetch_artifacts

List a run's collected artifacts as a typed manifest: artifacts, a list of path, bytes, stage and sha256 per file, plus removed on a file the retention sweep deleted (its bytes are gone; do not fetch it) and attribution on a third-party model's file (its license notice; keep it with any copy); truncated; source. Never returns file contents; fetch one file with mcg_get_artifact.

Parametersrun_idrequired

mcg_get_artifact

Fetch one artifact file's TEXT content, up to max_bytes (default 65536), with an explicit truncation note. Binary content REJECTS with unsupported_content; fetch binaries from the run's public page. A third-party model's file returns its license notice first, as an [attribution] text item.

Parameterspathrequiredrun_idrequiredmax_bytes

Version history

2
  1. v0.1.1LatestSep 20, 2026
  2. v0.1.0Sep 19, 2026

Score

75% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • License10 pts

    Declare a license in the repository or the registry entry.