Elemindex

io.github.CloudCorpRecordsPublished by GitHub account CloudCorpRecordsv0.1.0Updated Nov 7, 2026

Research-intensity trends, papers and metrics for the 118 chemical elements and topics.

VerifiedSTDIODesktop onlyKnowledge & MemoryData & Analytics

Overview

AI-generated overview

Local bridge to the Elements Live research index, letting an assistant query research intensity and top papers for the 118 chemical elements and related topics.

What you can do
  • Ask literature questions in plain words or from a known paper, with reading lists in several lenses
  • Get current research intensity for an element, plus intensity, history and paper counts for topics
  • Resolve free-text queries to subject identifiers, then pull yearly or monthly trend history
  • List top papers for a subject or element, sorted by impact, recency or foundational status
  • Scope multi-term questions with a boolean filter and turn the result into ranked papers
When to use it
Useful when you want an assistant to answer chemistry, materials or physics literature questions, gauge how active a research area is, or find what to read on an element or topic.
Requirements
Runs locally via npx or Docker and needs network access to the upstream Elements Live endpoint. Optional environment variables ELEMENTS_LIVE_MCP_URL (endpoint override) and ELEMENTS_LIVE_API_KEY (sent as a bearer token). Some tools need a paid account tier upstream; without a key, some calls are paid per call in USDC via x402.
Before you install
The bridge holds no data and forwards calls upstream, so questions and arguments go to a third-party service. Some tools require a paid account tier, and without a key certain calls cost $0.01 or $0.10 in USDC on Base or Solana per call. If ELEMENTS_LIVE_API_KEY is set, it is sent as a bearer token on every upstream request.

Installation

In SourceWeft

  1. Open Elemindex in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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

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

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

MCP server

bash
npx -y @reneturcios/elemindex mcp

MCP client config:

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

Docker

bash
docker run -i ghcr.io/cloudcorprecords/elemindexdocker 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

bash
npm installnpm run buildnpm testnpm run dev

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

License

MIT — see LICENSE.

Source: README.md at commit f87c546

Tools

9

research

Research reading lists

CALL THIS FIRST for a literature question about chemistry, materials or physics research -- a broad one ('what matters in X') or a specific process or parameter one (a deposition condition, a property value, a defect mechanism). Send the question in plain words (q), or a paper you already know (paper: DOI or title). Returns reading lists in four lenses: relevant (the papers whose TITLE AND ABSTRACT best match the question, across the whole corpus, BM25 -- start here for a specific question), foundational (the classics the question's own papers cite most), now (highest impact, young papers' citations projected) and newest (last two years); plus the research communities and element sub-communities the question is about, with why each matched and whether it is rising. Put the question's key terms in q: filler words are ignored. unmatched_terms lists words that matched nothing; rephrase those. Each paper carries its DOI, a one-line reason and its abstract where one is on file. Our corpus is curated, not complete: the relevant lens also brings up to 3 of every 10 results from OpenAlex, marked source='openalex' and labelled not yet curated. One page = up to 10 papers per lens; ask for page 2+ only if needed. Requires a Personal+ account. Without a key, pay per call: $0.05 in USDC on Base or Solana via x402 (send the payment in _meta["x402/payment"]).

Parametersqpagepaperlensespage_size

get_element_ri

Element research intensity

Get current Research Intensity (RIS) for one of the 118 chemical elements, with a citation URL. No API key needed. Historical RI (HRI) is included with a Personal+ key.

Parameterssymbolrequired

search_subjects

Search research subjects

Resolve a free-text query (a compound, material, or research topic) to its subject_type/subject_id for use with get_subject_ri. Free with any API key. Without a key, pay per call: $0.01 in USDC on Base or Solana via x402 (send the payment in _meta["x402/payment"]).

Parametersqueryrequired

get_subject_ri

Subject research intensity

Get RI, RIS, HRI and paper count for one research topic/keyword/sector. Requires a Personal+ account -- call search_subjects first to resolve subject_type/subject_id. Without a key, pay per call: $0.01 in USDC on Base or Solana via x402 (send the payment in _meta["x402/payment"]).

Parameterssubject_idrequiredsubject_typerequired

get_subject_history

Subject research history

Full yearly (or monthly) RIS/HRI history for one topic/keyword/sector. Requires a Personal+ account. Without a key, pay per call: $0.10 in USDC on Base or Solana via x402 (send the payment in _meta["x402/payment"]).

Parametersresolutionsubject_idrequiredsubject_typerequired

get_subject_papers

Top papers for a subject

The top papers for one research topic (resolve it with search_subjects first) -- title, DOI, venue, year, citations. Use it when asked what to READ about a specific topic, rather than how active it is. sort=impact (default) favours recent, well-cited work; sort=foundational gives the most-cited classics; sort=newest the latest. Each paper carries its abstract where one is on file (about 6 in 10). Requires a Personal+ account. Capped at 100 papers with no pagination. Without a key, pay per call: $0.02 for up to 20 papers, $0.10 for up to 100, in USDC on Base or Solana via x402 (send the payment in _meta["x402/payment"]).

Parameterssortlimitsubject_idrequiredsubject_typerequired

get_element_papers

Top papers for an element

The top papers for one element, narrowed with keyword to one of its materials or applications (e.g. symbol='Al', keyword='aluminum nitride'; the keyword must name one of the element's topics exactly, case aside -- search_subjects finds topic names). Returns title, DOI, venue, year, citations. sort=impact (default) favours recent, well-cited work; sort=foundational gives the most-cited classics; sort=newest the latest. Each paper carries its abstract where one is on file (about 6 in 10). Requires a Personal+ account. Capped at 100 papers with no pagination. Without a key, pay per call: $0.02 for up to 20 papers, $0.10 for up to 100, in USDC on Base or Solana via x402 (send the payment in _meta["x402/payment"]).

Parameterssortlimitsymbolrequiredkeyword

lab_quote

Lab: scope a filtered query

Scope a multi-term question with a boolean filter: +must -exclude "exact topic" (a OR b) wild* year:2015..2026, over element symbols or names and EXACT topic names (e.g. +Li +Co "solid electrolyte" -sulfide). Words that are neither are DROPPED, and wildcards can expand into unrelated fields: read `warnings` first -- it lists every dropped term with the nearest topics, every abbreviation read as a topic, and every wildcard expansion. Returns how many papers match, by year and by research community, the nearest broader query when nothing matches, and a quote_id that lab_run turns into the ranked papers. Narrow filters (two elements + one topic) work best. Requires a Professional+ account. Without a key, pay per call: $0.01 in USDC on Base or Solana via x402 (send the payment in _meta["x402/payment"]).

Parametersquerymarkdown

lab_run

Lab: papers for a quote

Get the papers for a lab_quote: pass its quote_id and a depth (papers_20 or papers_100) to get the top papers matching the quoted filter, ranked by impact, with the curation behind each rank. Each paper carries its abstract where one is on file (about 6 in 10). A stale or expired quote is refused. Requires a Professional+ account. Without a key, pay per call: the quoted price of the depth, less the $0.01 quote credit in USDC on Base or Solana via x402 (send the payment in _meta["x402/payment"]).

Parametersdepthquote_idrequired

Version history

1
  1. v0.1.0LatestNov 5, 2026

Score

90% 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 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts