OSTI MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OSTI MCP ServerSearch OSTI for DOE reports on carbon capture"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
OSTI MCP Server
An MCP server that exposes OSTI.gov's public search API as tools Claude can call directly — so Claude can search and retrieve DOE-sponsored scientific literature (technical reports, journal articles, theses/dissertations, patents, datasets) in the middle of a conversation.
What it does
Two tools:
search_osti— keyword/author/identifier search over OSTI records, with filters for research organization, sponsoring DOE office, publication date range, product type (journal article, technical report, thesis, patent, dataset), and full-text availability. Returns atotalcount of all matching records (not just the current page) alongside the page itself;rowsis capped at 100 per request.get_osti_record— fetch full metadata (abstract, subjects, identifiers, links to citation and full-text pages) for a single record by its OSTI ID.
No API key or authentication is required — this only uses OSTI's public read/search API, not the authenticated ELINK submission API.
Related MCP server: legal_scholarship_mcp
Install
Requires Python 3.10+. Dependencies are declared once in pyproject.toml,
so pick whichever environment manager you use:
pip / venv:
git clone https://github.com/jsevarts/mcp-osti.git
cd mcp-osti
python3 -m venv venv
source venv/bin/activate
pip install -e ".[dev]"conda:
git clone https://github.com/jsevarts/mcp-osti.git
cd mcp-osti
conda env create -f environment.yml
conda activate osti-mcpTry it out
Sanity-check the server directly:
python osti_mcp_server.pyOr open the MCP Inspector for interactive testing:
mcp dev osti_mcp_server.pyRegister with Claude Code / Claude Desktop / Claude Science
Point at the Python interpreter inside whichever environment you created
above — e.g. venv/bin/python3 for pip/venv, or the output of
conda run -n osti-mcp which python3 for conda.
Claude Code:
claude mcp add --transport stdio osti -- /full/path/to/python3 /full/path/to/osti_mcp_server.pyClaude Desktop / Claude Science (Settings → Developer → Edit Config, add
to mcpServers):
{
"mcpServers": {
"osti": {
"command": "/full/path/to/python3",
"args": ["/full/path/to/osti_mcp_server.py"]
}
}
}Restart the app afterward.
Example query
"Search OSTI for recent DOE-funded work on phase-field modeling of grain boundary migration, and pull the full abstract for the most relevant result."
API notes
Verified against the live API, not just the docs page:
GET /recordsreturns a bare JSON array at the top level (norecordswrapper). Pagination metadata (X-Total-Count,Link) comes back in response headers, not the JSON body.GET /records/{osti_id}also returns a JSON array (containing zero or one record), not a single object — easy to miss.publication_date_start/_endmust be sent asMM/DD/YYYY. Sending ISO dates causes an HTTP 500 rather than a clean error. This server accepts ISOYYYY-MM-DDdates from the caller and converts them internally, so Claude can pass normal ISO dates without knowing about this quirk.OSTI doesn't publish a documented hard rate limit. It does send an
X-Rate-Limit-Remainingheader, but it read0on every request observed during testing even as requests kept succeeding — it doesn't appear to be reliably actionable, so this server doesn't throttle on it. Keeprowsmodest and avoid tight request loops.
Testing
pip install -e ".[dev]" # or: conda env create -f environment.yml && conda activate osti-mcp
python -m pytest tests/Tests mock requests.get, so they run offline.
License
MIT — see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Search arXiv/Semantic Scholar/OpenAlex + medical evidence (PubMed/Europe PMC) + LaTeX/PDF tools.
Open scientific and engineering knowledge for AI agents: search, evidence, document publishing.
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
Live SEO workflow tools for Claude Code, Codex, and AI agents.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables Claude to search and retrieve patent data from EPO OPS and Google Patents via natural language, supporting patent search, details, claims, and family information with OAuth authentication.MIT
- AlicenseNot gradedqualityCmaintenanceEnables searching scholarly literature via the OpenAlex database, with tools for full-text search, work details, citation lookup, and author queries.MIT
- AlicenseAqualityBmaintenanceEnables searching for scientific papers across OpenAlex, CrossRef, and Unpaywall, and downloading open-access PDFs directly through Claude Desktop.51MIT
- AlicenseAqualityCmaintenanceEnables scholarly metadata lookups from the Crossref REST API, including works, members, journals, funders, types, licenses, and prefixes, as tools for LLM clients.18MIT