# OSTI (DOE Scientific Research) MCP

> OSTI (DOE Scientific Research) MCP Server connects your AI client directly to the Department of Energy’s scientific research infrastructure. Use it to query millions of records from OSTI.GOV and DOE Data Explorer, search for specific datasets using filters like sponsoring organization or date range, retrieve full metadata by unique ID, and manage digital identifiers (DOIs). It handles everything from preliminary searching to final record submission.

## Overview
- **Category:** knowledge-management
- **Price:** Free
- **Tags:** doe-research, scientific-publications, metadata-management, doi-registration, technical-reports, open-data

## Description

You're connecting your AI agent straight into the Department of Energy’s scientific research infrastructure with this MCP Server for OSTI. It lets you query millions of records pulled from OSTI.GOV and DOE Data Explorer, handling everything from preliminary searches to final record submission.

Finding what you need starts by searching. If you're looking through general publications—think reports, conference papers, or technical documents—you use `search_osti_records`. This tool performs keyword-based searches across all the content listed on OSTI.GOV, giving you a list of potential records to check out.

When you’re dealing specifically with raw scientific data sets in the DOE Data Explorer, you start with `search_data_explorer_records`. You can narrow down those results using keywords or filters like date ranges or sponsoring organizations to find exactly what you're looking for. These searches give you a list of potential datasets.

Once you have an ID or a record from one of those search lists, you need the full details. To pull complete bibliographic data for any single publication, whether it’s OSTI content or Data Explorer material, use `get_osti_record` if it's an OSTI article, or run `get_data_explorer_record` if it's a specific dataset record within the DOE Data Explorer. These functions fetch all the structured metadata you need to see exactly what's contained in that single record.

Managing DOIs and submitting records is where this server really shines. If your funded research needs a unique digital identifier before publication, you kick off that process by running `reserve_doi`. This submits minimal required metadata through the E-Link API just to reserve the Digital Object Identifier (DOI) for future use.

When it's time to finalize or update an entry in the system—whether that’s writing a brand new record or tweaking existing information—you manage that process with `submit_record`. This tool allows you to submit or update entire scientific records and, crucially, registers the corresponding DOI using the E-Link API. The workflow moves from discovery to validation to final submission, all within your agent's command.

Basically, you use `search_osti_records` for broad publication searches on OSTI.GOV; then you might run `get_osti_record` if you find a promising ID and need every bit of bibliographic detail attached to it. If the data set itself is your target, you start with `search_data_explorer_records`, followed by running `get_data_explorer_record` using that specific dataset's ID to pull its full metadata structure. For formal record management, remember this sequence: use `reserve_doi` to secure the DOI first; then, when all the data is locked down and ready for the permanent archive, you send everything through `submit_record`. You’re not just searching; you're managing the entire lifecycle of scientific documentation, from initial keyword search right through to final DOI registration. It handles every step.

## Tools

### get_data_explorer_record
Retrieves the full metadata for one specific dataset record within the DOE Data Explorer by its ID.

### get_osti_record
Fetches all bibliographic details for a single publication record from OSTI.GOV using its unique identifier.

### reserve_doi
Initiates the process to reserve a Digital Object Identifier (DOI) with minimal required metadata via the E-Link API.

### search_data_explorer_records
Searches and lists multiple scientific datasets available in the DOE Data Explorer based on keywords or filters.

### search_osti_records
Performs keyword-based searches across all publications listed on OSTI.GOV, returning a list of potential records.

### submit_record
Submits or updates an entire scientific record and registers the corresponding DOI using the E-Link API.

## Prompt Examples

**Prompt:** 
```
Search for research papers about 'quantum computing' published in 2023.
```

**Response:** 
```
I've found several records for 'quantum computing' from 2023. Notable entries include 'Quantum Error Correction in Scalable Architectures' (OSTI ID: 1982341) and 'Advances in Superconducting Qubits'. Would you like the full details for any of these?
```

**Prompt:** 
```
Find scientific datasets related to 'solar irradiance' in the DOE Data Explorer.
```

**Response:** 
```
Searching the Data Explorer... I've identified 3 datasets. The most relevant is 'High-Resolution Solar Irradiance Data for the Southwestern US' (OSTI ID: 150432). It includes hourly measurements from 2018-2022.
```

**Prompt:** 
```
Get the complete metadata for OSTI record ID 1015678.
```

**Response:** 
```
Retrieving record 1015678... This is a technical report titled 'Atmospheric Radiation Measurement (ARM) User Facility'. It was authored by the Pacific Northwest National Laboratory and sponsored by the Office of Science.
```

## Capabilities

### Search scientific publications
Find DOE research reports, conference papers, and technical documents by title, author, or keywords across OSTI.GOV.

### Discover data sets
Query the DOE Data Explorer to identify specific datasets and pull their associated metadata records for analysis.

### Validate record existence
Fetch complete, structured bibliographic data for any given OSTI or Data Explorer record ID.

### Reserve DOIs
Submit minimal metadata to the E-Link API to reserve a unique Digital Object Identifier (DOI) for funded research before formal publication.

### Update and submit records
Write or update entire record entries in the system, finalizing the process by registering the DOI via the E-Link API.

## Use Cases

### Verifying a paper's origin and status
A researcher needs details on 'Quantum Error Correction'. Instead of searching OSTI.GOV manually, they prompt: 'Find all papers on Quantum Error Correction from 2023.' The agent runs `search_osti_records`, identifies the top three IDs, then uses `get_osti_record` to retrieve full author and sponsor details for verification.

### Building a dataset index
A data scientist needs all solar irradiance datasets. They run `search_data_explorer_records` with 'solar irradiance.' The agent gets a list of 3 IDs, then loops through them using `get_data_explorer_record` to collect the required metadata fields (like measurement interval and date range) into a structured output.

### Completing project documentation
A grant administrator has finalized a report. They use `reserve_doi` with basic metadata. Once approved, they run `submit_record`, which finalizes the entry and ties the reserved DOI to the official record in one step.

### Filtering for specific funding sources
A librarian needs reports sponsored by a specific organization (e.g., Lawrence Berkeley National Lab). They use `search_osti_records`, filtering directly on the sponsoring organization field, immediately reducing millions of records down to only relevant institutional output.

## Benefits

- You stop sifting through manual web portals. By using `search_osti_records`, your AI client immediately filters millions of OSTI records by precise criteria like author or date range, giving you a list of candidates in seconds.
- Data discovery becomes immediate. Instead of navigating the DOE Data Explorer manually, run `search_data_explorer_records`. You get back structured metadata for datasets—not just links—ready to feed into your analysis pipeline.
- DOI compliance is handled end-to-end. Use `reserve_doi` early in the lifecycle. This ensures you secure the unique digital identifier *before* publication, preventing delays when submitting records via `submit_record`.
- Record inspection is precise. If you have an ID, use either `get_osti_record` or `get_data_explorer_record`. You get all the necessary bibliographic details—full text availability, authors, sponsors—in one API call.
- The workflow runs autonomously. Your agent handles the sequence: search -> inspect/filter -> reserve DOI -> submit record. This eliminates the need for you to jump between six different web tabs.

## How It Works

The bottom line is that you treat the entire DOE research pipeline—from search query to final DOI registration—as a single conversational workflow with your AI client.

1. First, your agent executes a search command (e.g., `search_osti_records`) to narrow down the research output using defined parameters like date or author.
2. Next, you specify which records need deep inspection—either retrieving metadata for a specific ID (`get_osti_record`) or finding accompanying data sets (`search_data_explorer_records`).
3. Finally, if the record is new or needs updating, your agent uses `reserve_doi` and `submit_record` to formally register and validate the publication using the E-Link API.

## Frequently Asked Questions

**How do I find datasets using OSTI (DOE Scientific Research) MCP Server?**
You use the `search_data_explorer_records` tool. This searches the dedicated DOE Data Explorer, giving you metadata on raw data sets, which is separate from the published reports found via `search_osti_records`.

**Do I need to use reserve_doi first? (OSTI DOE Scientific Research)**
Yes. You should run `reserve_doi` early in your workflow. This secures the unique identifier for your research before you try to finalize and submit it using the `submit_record` tool.

**What is the difference between get_osti_record and get_data_explorer_record? (OSTI DOE Scientific Research)**
The difference is the source. `get_osti_record` pulls metadata for a *published report* from OSTI.GOV; `get_data_explorer_record` pulls metadata for an actual, usable *dataset* from the Data Explorer.

**Can I search by date range using search_osti_records? (OSTI DOE Scientific Research)**
Yes. You can narrow your results by defining specific publication date ranges when you call `search_osti_records`. This is a core filtering capability.

**What credentials are required when I use `reserve_doi`?**
You must provide your OSTI E-Link Token. This token authenticates your request with the DOE's API, ensuring you have the necessary permissions to reserve a Digital Object Identifier (DOI). Without this token, the server cannot process the DOI reservation.

**Does `submit_record` handle both updating and registering data?**
Yes, it combines both actions into one call. When you use `submit_record`, the tool first updates the bibliographic information for the record and then submits or registers the associated DOI using the E-Link API. This keeps your workflow clean.

**What happens if I run `get_osti_record` with an invalid ID?**
The tool returns a standardized error response indicating that no record was found for that specific OSTI ID. Your AI client can then check the API response status code to gracefully handle the missing data, rather than failing completely.

**What key fields does `search_data_explorer_records` return?**
The search returns core metadata including the dataset title, source organization, relevant date ranges, and a direct link to the record. These structured data points allow your agent to immediately assess if the dataset fits your analysis needs.

**How can I search for research papers by a specific author?**
You can use the `search_osti_records` tool and provide the author's name in the `author` parameter. The agent will return a list of matching records from the OSTI.GOV repository.

**What is the difference between searching OSTI records and Data Explorer records?**
Use `search_osti_records` for general research information like publications and reports. Use `search_data_explorer_records` specifically when you are looking for scientific datasets.

**Can I reserve a DOI for my research before it is public?**
Yes, if you have an E-Link token, you can use the `reserve_doi` action. You'll need to provide the title, product type, and your site ownership code.