mcpField
E
elemindex

elemindex

Local
github.com/CloudCorpRecordsScience & Education0Updated 1w ago

About elemindex

elemindex is a local bridge to the hosted Elements Live MCP server for chemistry, materials, physics, and literature research. It forwards research and metric queries without storing data or computing results itself.

Key features

  1. 01Search literature by question or paper
  2. 02Retrieve element research intensity
  3. 03Look up subject metrics and history
  4. 04Find papers for elements and subjects
  5. 05Filter and rank papers with lab tools

Use cases

  1. 01Explore papers on a chemistry question
  2. 02Check research intensity for an element
  3. 03Review a subject's metric history
  4. 04Find ranked papers using boolean filters

MCP support

Acts as a local MCP server that forwards tool calls to the Elements Live hosted MCP server and returns its results. It can optionally forward an API key.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"cloudcorprecords-elemindex": {
"command": "npx",
"args": [
"-y",
"@reneturcios/elemindex"
]
}
}
}
Run commandnpx -y @reneturcios/elemindex

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@reneturcios/elemindex0.1.0
ocighcr.io/cloudcorprecords/elemindex:0.1.0

Tools

9

Saved tool list · updated 1w ago

ParameterTypeRequiredDescription
qstringNoThe research question, in plain words.
pageintegerNoResult page number for paged paper results.
paperstringNoAlternative to q: a DOI or title to start from.
lensesarrayNoDefault: all four.
page_sizeintegerNoPapers per lens.

Details

From the project README

elemindex

elemindex is a thin local bridge to the Elements Live hosted MCP server, a research index that tracks how much attention each of the 118 chemical elements — and a wider set of research subjects such as compounds, materials and topics — is getting in the literature, and which papers sit behind those numbers.

The bridge holds no data and computes nothing. It serves the upstream server's tool list locally — exactly as captured from the live endpoint — and forwards each tool call upstream, returning the result untouched. A few upstream tools are free, while others are described upstream as requiring a paid account tier; that gating is the upstream's own, stated in the tool descriptions themselves. This client adds no gating and no payment machinery: it optionally forwards one credential, described under Configuration, and otherwise sends no credential of its own.

Tools

  • research — the literature entry point. Ask a broad or specific chemistry, materials or physics question in plain words (q), or start from a known paper (paper: a DOI or title). Reading lists come back in four lenses — relevant, foundational, now and newest — controlled with lenses, plus page and page_size for paging. No argument is required by the schema.
  • get_element_ri — the current Research Intensity (RIS) for one element, with a citation URL. Required: symbol — a symbol such as Fe, a name such as Iron, or an atomic number also work.
  • search_subjects — resolve a free-text query (a compound, material or research topic) to the subject_type / subject_id pair the subject tools need. Required: query.
  • get_subject_ri — RI, RIS, HRI and paper count for one research topic, keyword or sector. Required: subject_type (keyword or sector) and subject_id; resolve both with search_subjects first.
  • get_subject_history — the full RIS/HRI history for one subject, at yearly resolution by default or monthly when asked. Required: subject_type and subject_id.
  • get_subject_papers — the top papers for one subject: title, DOI, venue, year and citations. Required: subject_type and subject_id. Optional: limit (default 20, capped at 100) and sort (impact, newest or foundational).
  • get_element_papers — the top papers for one element, optionally narrowed with keyword to one of that element's materials or applications. Required: symbol. Optional: limit and sort, as above.
  • lab_quote — scope a multi-term question with a boolean filter (query, or markdown carrying the filter in a fenced block). Returns match counts and a quote_id; read its warnings before trusting the filter, since unsupported terms are dropped. No argument is required by the schema.
  • lab_run — turn a lab_quote result into its ranked papers. Required: quote_id. Optional: depth (papers_20 by default, or papers_100).

Configuration

  • ELEMENTS_LIVE_MCP_URL (optional) — override the upstream endpoint. Defaults to https://www.elements-live.com/mcp. (The override hook is this rebuild's own labelled reconstruction.)
  • ELEMENTS_LIVE_API_KEY (optional) — when set, its value is sent as Authorization: Bearer <key> on every upstream request. When it is not set, no authorization header is sent at all. (This forwarding is this rebuild's own labelled reconstruction; the original capture was taken keyless.)
Forwarding mechanics

On the first tool call the client opens a streamable HTTP session with the upstream: a JSON-RPC initialize request (protocolVersion 2025-03-26, clientInfo name elemindex), then a notifications/initialized notification, then the tools/call request carrying the caller's arguments unchanged. When the upstream answers initialize with an Mcp-Session-Id header, that value rides on every later request of the session, which is reused for the life of the process. Replies may arrive as plain JSON or as server-sent events; both are read.

Successful upstream results pass through verbatim, including any isError flag the upstream sets. Failures — a JSON-RPC error, a non-2xx status, an unreadable response, or a request that cannot be completed — come back as an isError result whose text starts with elemindex error: (this rendering is this rebuild's own labelled reconstruction).

CLI

Each tool is also a subcommand taking one JSON argument string (omit it for tools that take none):

npx @reneturcios/elemindex get_element_ri '{"symbol":"Fe"}'
npx @reneturcios/elemindex search_subjects '{"query":"solid electrolyte"}'
npx @reneturcios/elemindex research
npx @reneturcios/elemindex --version

Exit codes: 0 on success, 1 on an isError result, 2 on a usage error.

MCP server

npx -y @reneturcios/elemindex mcp

MCP client config:

{
  "mcpServers": {
    "elemindex": {
      "command": "npx",
      "args": ["-y", "@reneturcios/elemindex", "mcp"]
    }
  }
}

Docker

docker run -i ghcr.io/cloudcorprecords/elemindex
docker run --rm ghcr.io/cloudcorprecords/elemindex --version

The container's default command is mcp, so the first form is a stdio MCP server; any other arguments reach the CLI normally.

Development

npm install
npm run build
npm test
npm run dev

The test suite runs entirely against a stubbed JSON-RPC upstream — no live network calls.

License

MIT — see LICENSE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.