# PMC Open Access MCP

> PMC Open Access (PubMed Central) MCP Server gives your AI client direct access to millions of open-access biomedical articles. It lets you search article metadata, convert identifiers (PMCID, PMID, DOI), and locate downloadable PDF/XML files—all without leaving your agent's context.

## Overview
- **Category:** knowledge-management
- **Price:** Free
- **Tags:** biomedical-research, open-access, metadata-harvesting, literature-search, academic-data, nlm

## Description

You gotta connect your AI client directly to PubMed Central (PMC) using this MCP Server. This gives you structured access to millions of open-access biomedical articles, letting your agent pull data and metadata without ever leaving the conversation context. Forget navigating complex NCBI forms; your client just calls the specific tool it needs.

**Converting Article Identifiers**

The `convert_ids` tool maps article IDs between PMCID, PMID, DOI, and Manuscript ID into a structured JSON output. You can feed it one identifier and get all related versions back instantly. It's essential when you start your research with different kinds of reference numbers.

**Finding Full-Text Articles**

The `oa_discover` tool locates downloadable resources from the PMC Open Access Subset. If an article is open access, this tool pulls the actual files—be it a PDF, XML, or TGZ archive—for deep data extraction and reading. You'll get immediate access to the full content of articles you find.

**Harvesting Metadata Records via OAI-PMH**

The server gives you complete Open Archives Initiative (OAI) support for systematically pulling huge datasets. First, your client uses `oai_identify` to pinpoint the core OAI-PMH repository for PMC, which starts any harvesting process. After that, it's smart to check what data is available. You can run `oai_list_metadata_formats` to see every supported metadata format—like Dublin Core—so you know exactly what you're pulling. You gotta use `oai_list_identifiers` if you need to see which metadata prefixes, such as 'pmc' or 'oai_dc', are active in the system.

To start gathering data, your agent runs `oai_list_records`, which retrieves a comprehensive list of full OAI records based on specific criteria. When you know exactly what record ID you need, use `oai_get_record` to pull that single, specific OAI record using unique identifiers from PMC.

**Generating Citations and Outputs**

The `export_citation` tool takes any given PubMed or PMC record and generates formatted citations. You get the text ready for academic writing right away. When you're done pulling data, this ensures your reference list is clean and correct. This whole setup means you don't just find articles; you pull their metadata, convert their IDs, download the full files, and format their references—all in one go.

## Tools

### convert_ids
Converts article IDs between PMCIDs, PMIDs, DOIs, and Manuscript IDs in a structured JSON output.

### export_citation
Generates formatted citations suitable for PubMed or PMC records.

### oa_discover
Finds downloadable resources (PDF, XML, TGZ) from the PMC Open Access Subset for specified articles.

### oai_get_record
Retrieves a single, specific OAI record using unique identifiers from PMC.

### oai_identify
Identifies the core OAI-PMH repository for PMC to start any harvesting process.

### oai_list_identifiers
Lists available metadata prefixes (like 'pmc' or 'oai_dc') used in the PMC OAI system.

### oai_list_metadata_formats
Lists all supported metadata formats for PMC, allowing you to filter your data pull.

### oai_list_records
Retrieves a list of full OAI records from the PMC repository based on criteria.

## Prompt Examples

**Prompt:** 
```
Convert the following PMIDs to PMCIDs: 34567890, 34567891.
```

**Response:** 
```
I've converted those IDs for you. PMID 34567890 corresponds to PMCID PMC8451234 and DOI 10.1038/s41586-021-03850-x.
```

**Prompt:** 
```
Find the PDF download link for PMCID PMC5334499.
```

**Response:** 
```
I found the resources for PMC5334499. You can download the PDF directly from the PMC Open Access archive at the following URL: [URL].
```

**Prompt:** 
```
List the metadata formats supported by the PMC OAI-PMH repository.
```

**Response:** 
```
The PMC repository supports several metadata formats, including 'oai_dc' (Dublin Core), 'pmc' (Full-text XML), and 'pmc_fm' (Front matter only).
```

## Capabilities

### Convert IDs
The `convert_ids` tool maps identifiers between PMCIDs, PMIDs, DOIs, and Manuscript IDs.

### Harvest Metadata Records
Tools like `oai_get_record` and `oai_list_records` pull specific or full metadata records using OAI-PMH protocols.

### Discover Full Text Resources
The `oa_discover` tool locates downloadable PDFs, XML, and TGZ files for open-access articles.

### List Available Formats
Use `oai_list_metadata_formats` to check which types of metadata (like Dublin Core) are available from the PMC repository.

### Export Citations
The `export_citation` tool generates formatted citations for any given PubMed or PMC record.

## Use Cases

### Systematic Review Prep
A researcher needs 50 papers on cancer biomarkers. They start by using `convert_ids` to standardize a list of mixed PMIDs and DOIs into a single set of PMCIDs. Then, they run `oa_discover` for each ID, collecting all the necessary PDF files in one go.

### Knowledge Graph Builder
A data scientist needs metadata on every article from 2015-2020. They first confirm supported formats with `oai_list_metadata_formats`, then use `oai_list_records` to pull the full text, creating a structured dataset for NLP analysis.

### Literature Review Drafting
A medical student is writing a paper and has just found an article's PMID. They immediately run `convert_ids` to get the PMCID, then use `export_citation` with that ID to drop a perfect citation into their draft.

### API Documentation Check
A developer needs to know what metadata fields are available for PMC records. They run `oai_list_identifiers` and then check the full schema using `oai_get_record` on a known ID to ensure data integrity.

## Benefits

- Find full-text articles immediately. Instead of guessing, use `oa_discover` to get direct links to downloadable PDFs or XML files for open-access content.
- Stop ID headaches with `convert_ids`. You enter one identifier (a PMID), and the server returns all its equivalents (PMCID, DOI) instantly in JSON format.
- Streamline your writing workflow. Use `export_citation` to get correctly formatted citations for PubMed or PMC articles without having to look up style guides.
- Build complex pipelines with OAI tools. For large-scale data science, run `oai_list_records` after confirming the format using `oai_list_metadata_formats`.
- Manage identifiers programmatically. Start by running `oai_identify` to confirm repository status before attempting any bulk record retrieval.

## How It Works

The bottom line is, you feed it an API key once, and then your AI client can use specialized functions to pull structured biomedical data on demand.

1. Subscribe to the server and provide your NCBI API Key. This key authenticates your agent with the necessary data endpoints.
2. Tell your agent exactly what you need: 'Find all PDFs related to X' or 'Convert these PMIDs.'
3. Your agent calls a specific tool (e.g., `oa_discover`), which fetches the required structured data from PMC and gives it back to your workflow.

## Frequently Asked Questions

**How do I convert PMIDs to PMCIDs using `convert_ids`?**
The `convert_ids` tool handles this conversion directly. Just pass the list of PMID identifiers, and it returns the corresponding PMCID and DOI in a structured JSON object.

**What is the best way to find PDFs using `oa_discover`?**
`oa_discover` requires you to provide specific PMC article IDs. This tool searches the open-access subset and returns direct download links for PDF, XML, or TGZ files.

**Do I need `oai_identify` before running other OAI tools?**
Yes, it's best practice. Running `oai_identify` confirms you are talking to the correct PMC Open Archives Initiative (OAI) repository endpoint before attempting any data harvest.

**How do I get a full record using `oai_get_record`?**
You provide the unique OAI identifier, and `oai_get_record` pulls the complete metadata payload for that specific PMC article from the repository.

**How can I ensure proper academic citation formatting using `export_citation`?**
The `export_citation` tool handles various styles for you. Just specify the required format (e.g., APA or MLA) and it returns correctly formatted text, saving manual cleanup time in your research process.

**Before listing records, how do I check supported schemas with `oai_list_metadata_formats`?**
Running `oai_list_metadata_formats` shows all available metadata prefixes (like 'oai_dc' or 'pmc'). This confirms the precise data structure you need to query before attempting a full record retrieval.

**What types of metadata fields are available using `oai_list_identifiers`?**
The `oai_list_identifiers` tool lets you list every supported prefix for the repository. This is key to mapping out all specific data points—like journal volume or author names—you can extract from PMC articles.

**How do I list multiple full records efficiently using `oai_list_records`?**
Use `oai_list_records` to pull several complete OAI archives in a single call. This is ideal for bulk research, allowing your agent to process an entire batch of articles without making dozens of sequential requests.

**How can I find the DOI or PMID for a specific PMCID?**
Use the `convert_ids` tool. Simply provide the PMCID (e.g., PMC5334499) and it will return the corresponding PMID, DOI, and other associated identifiers.

**Can I get direct download links for research papers?**
Yes! The `oa_discover` tool allows you to find downloadable resources like PDFs or XML files for articles in the PMC Open Access Subset using their PMCID.

**How do I retrieve the full metadata for a specific article?**
Use the `oai_get_record` tool with the article's OAI identifier and a metadata prefix like 'pmc' or 'oai_dc' to fetch the complete record details.