mcp nih reporter
A Model Context Protocol server that enables conversational searching of NIH-funded research projects and publications through the NIH RePORTER database.
A Model Context Protocol server that enables conversational searching of NIH-funded research projects and publications through the NIH RePORTER database.
A Model Context Protocol (MCP) server for chatting with NIH RePORTER. Search for NIH-funded research projects and publications in a conversational manner. Accompanying blog post here.
Clone the repository:
git clone <repository-url>
cd mcp-nih-reporter
Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate # On Windows, use `.venvScriptsactivate`
Install dependencies using UV:
uv pip install -e .
This MCP server provides access to the NIH RePORTER API through several tools:
search_projects
: Search for NIH-funded research projectssearch_publications
: Search for publications associated with NIH projectssearch_combined
: Combined search for both projects and publicationstest_connection
: Test the API connectionYou can use this MCP with any MCP-compatible client, such as: - Claude Desktop - Cursor - Other MCP-enabled tools
{
"mcpServers": {
"nih-reporter": {
"command": "<fully qualified path to>/uv",
"args": [
"run",
"--with",
"mcp[cli]",
"mcp",
"run",
"<fully qualified path to>/mcp-nih-reporter/mcp-nih-reporter.py"
]
}
}
}
The search results will be returned in a structured format containing project details including: - Project title and abstract - Principal Investigator information - Organization details - Funding information - Project dates and status
A log file will be created in the root folder when the MCP attempts to run in a client (e.g. Claude Desktop). Check there if you're having trouble.
The project uses:
- httpx
for async HTTP requests
- mcp
for the Mission Control Protocol implementation
- python-dotenv
for environment variable management
- uv
for dependency management
Logs are written to mcp-nih-reporter.log
in the project root directory. The logging level is set to INFO by default.
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
git checkout -b feature/amazing-feature
)git commit -m 'Add some amazing feature'
)git push origin feature/amazing-feature
)Please make sure to update tests as appropriate and follow the existing code style.
This project is licensed under the MIT License - see the LICENSE file for details.