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
- 01Search literature by question or paper
- 02Retrieve element research intensity
- 03Look up subject metrics and history
- 04Find papers for elements and subjects
- 05Filter and rank papers with lab tools
Use cases
- 01Explore papers on a chemistry question
- 02Check research intensity for an element
- 03Review a subject's metric history
- 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.
Tools
9Saved tool list · updated 1w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | No | The research question, in plain words. |
| page | integer | No | Result page number for paged paper results. |
| paper | string | No | Alternative to q: a DOI or title to start from. |
| lenses | array | No | Default: all four. |
| page_size | integer | No | Papers per lens. |
Details
From the project READMEelemindex
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,nowandnewest— controlled withlenses, pluspageandpage_sizefor 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 asFe, a name such asIron, or an atomic number also work.search_subjects— resolve a free-text query (a compound, material or research topic) to thesubject_type/subject_idpair 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(keywordorsector) andsubject_id; resolve both withsearch_subjectsfirst.get_subject_history— the full RIS/HRI history for one subject, atyearlyresolution by default ormonthlywhen asked. Required:subject_typeandsubject_id.get_subject_papers— the top papers for one subject: title, DOI, venue, year and citations. Required:subject_typeandsubject_id. Optional:limit(default 20, capped at 100) andsort(impact,newestorfoundational).get_element_papers— the top papers for one element, optionally narrowed withkeywordto one of that element's materials or applications. Required:symbol. Optional:limitandsort, as above.lab_quote— scope a multi-term question with a boolean filter (query, ormarkdowncarrying the filter in a fenced block). Returns match counts and aquote_id; read itswarningsbefore trusting the filter, since unsupported terms are dropped. No argument is required by the schema.lab_run— turn alab_quoteresult into its ranked papers. Required:quote_id. Optional:depth(papers_20by default, orpapers_100).
Configuration
ELEMENTS_LIVE_MCP_URL(optional) — override the upstream endpoint. Defaults tohttps://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 asAuthorization: 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
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.