mcp.science
Open Source MCP Servers for Scientific Research
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.0%) to scientific vocabulary
Repository
Open Source MCP Servers for Scientific Research
Basic Info
- Host: GitHub
- Owner: pathintegral-institute
- License: mit
- Language: Python
- Default Branch: main
- Homepage: https://mcp.science/
- Size: 2.21 MB
Statistics
- Stars: 67
- Watchers: 4
- Forks: 19
- Open Issues: 3
- Releases: 1
Metadata Files
README.md
Quick Start
Running any server in this repository is as simple as a single command. For example, to start the web-fetch server:
bash
uvx mcp-science web-fetch
This command handles everything from installation to execution. For more details on configuration and finding other servers, see the "How to configure MCP servers for AI client apps" section below.
Table of Contents
- About
- What is MCP?
- Available servers in this repo
- How to integrate MCP servers into LLM
- How to build your own MCP server
- Contributing
- License
- Acknowledgments
- Citation
About
This repository contains a collection of open source MCP servers specifically designed for scientific research applications. These servers enable Al models (like Claude) to interact with scientific data, tools, and resources through a standardized protocol.
What is MCP?
MCP is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect your devices to various peripherals and accessories, MCP provides a standardized way to connect AI models to different data sources and tools.
MCP helps you build agents and complex workflows on top of LLMs. LLMs frequently need to integrate with data and tools, and MCP provides:
- A growing list of pre-built integrations that your LLM can directly plug into
- The flexibility to switch between LLM providers and vendors
- Best practices for securing your data within your infrastructure
Available servers in this repo
Below is a complete list of the MCP servers that live in this monorepo. Every entry links to the sub-directory that contains the server’s source code and README so that you can find documentation and usage instructions quickly.
Example Server
An example MCP server that demonstrates the minimal pieces required for a server implementation.
Materials Project
A specialised MCP server that enables AI assistants to search, visualise and manipulate materials-science data from the Materials Project database. A Materials Project API key is required.
Python Code Execution
Runs Python code snippets in a secure, sandboxed environment with restricted standard-library access so that assistants can carry out analysis and computation without risking your system.
SSH Exec
Allows an assistant to run pre-validated commands on remote machines over SSH with configurable authentication and command whitelists.
Web Fetch
Fetches and processes HTML, PDF and plain-text content from the Web so that the assistant can quote or summarise it.
TXYZ Search
Performs Web, academic and “best effort” searches via the TXYZ API. A TXYZ API key is required.
Timer
A minimal countdown timer that streams progress updates to demonstrate MCP notifications.
GPAW Computation
Provides density-functional-theory (DFT) calculations through the GPAW package.
Jupyter-Act
Lets an assistant interact with a running Jupyter kernel, executing notebook cells programmatically.
Mathematica-Check
Evaluates small snippets of Wolfram Language code through a headless Mathematica instance.
NEMAD
Neuroscience Model Analysis Dashboard server that exposes tools for inspecting NEMAD data-sets.
TinyDB
Provides CRUD access to a lightweight JSON database backed by TinyDB so that an assistant can store and retrieve small pieces of structured data.
How to configure MCP servers for AI client apps
If you're not familiar with these stuff, here is a step-by-step guide for you: Step-by-step guide to configure MCP servers for AI client apps
Prerequisites
- uv — a super-fast (Rust-powered) drop-in replacement for pip + virtualenv. Install it with:
bash
curl -sSf https://astral.sh/uv/install.sh | bash
- An MCP-enabled client application such as Claude Desktop, VSCode, Goose, 5ire.
The short version – use uvx
Any server in this repository can be launched with a single shell command. The pattern is:
bash
uvx mcp-science <server-name>
For example, to start the web-fetch stdio server locally, configure the following command in your client:
bash
uvx mcp-science web-fetch
Which corresponds to this in claude desktop's json configuration:
json
{
"mcpServers": {
"web-fetch": {
"command": "uvx",
"args": [
"mcp-science",
"web-fetch"
]
}
}
}
The command will download the mcp-science package from PyPI and run the requested entry-point.
Find other servers
Have a look at the Available servers list — every entry in the table works with the pattern shown above.
Optional: managing integrations with MCPM
MCPM is a convenience command-line tool that can automate the process of wiring servers into supported clients. It is not required but can be useful if you frequently switch between clients or maintain a large number of servers.
The basic workflow is:
```bash
Install mcpm first – it is a separate project
uv pip install mcpm
mcpm client ls # discover supported clients
mcpm client set
Add a server (automatically installing it if needed)
mcpm add web-fetch ```
After the command finishes, restart your client so that it reloads its tool configuration. You can browse the MCPM Registry for additional community-maintained servers.
How to build your own MCP server
Please check How to build your own MCP server step by step for more details.
Contributing
We enthusiastically welcome contributions to MCP.science! You can help with improving the existing servers, adding new servers, or anything that you think will make this project better.
If you are not familiar with GitHub and how to contribute to a open source repository, then it might be a bit of challenging, but it's still easy for you. We would recommend you to read these first:
In short, you can follow these steps:
- Fork the repository to your own GitHub account
- Clone the forked repository to your local machine
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes and commit them (
git commit -m 'Add amazing feature')👈 Click to see more conventions about directory and naming
Please create your new server in the servers folder.
For creating a new server folder under repository folder, you can simply run (replace your-new-server with your server name)
sh
uv init --package --no-workspace servers/your-new-server
uv add --directory servers/your-new-server mcp
This will create a new server folder with the necessary files:
bash
servers/your-new-server/
├── README.md
├── pyproject.toml
└── src
└── your_new_server
└── __init__.py
You may find there are 2 related names you might see in the config files:
- Project name (hyphenated): The folder, project name and script name in
pyproject.toml, e.g.your-new-server. - Python package name (snakecase): The folder inside
src/, e.g. `yournew_server`.
- Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please make sure your PR adheres to:
- Clear commit messages
- Proper documentation updates
- Test coverage for new features
Contributor Recognition in Subrepos
If you want to recognize contributors for a specific server/subrepo (e.g. servers/gpaw-computation/), you can use the All Contributors CLI in that subdirectory.
Steps:
- In your subrepo (e.g.
servers/gpaw-computation/), create a.all-contributorsrcfile (see example). - Add contributors using the CLI:
bash npx all-contributors add <github-username> <contribution-type> - Generate or update the contributors section in the subrepo's
README.md:bash npx all-contributors generate - Commit the changes to the subrepo's
README.mdand.all-contributorsrc.
For more details, see the All Contributors CLI installation guide.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
Thanks to all contributors!
Citation
For general use, please cite this repository as described in the root CITATION.cff.
If you use a specific server/subproject, please see the corresponding CITATION.cff file in that subproject's folder under servers/ for the appropriate citation.
Owner
- Name: pathintegral.institute
- Login: pathintegral-institute
- Kind: organization
- Repositories: 1
- Profile: https://github.com/pathintegral-institute
Citation (CITATION.cff)
cff-version: 1.2.0
message: >
This repository contains multiple subprojects under `servers/`, each with their own maintainers and citation needs.
Please cite the specific service if applicable (see the CITATION.cff in the relevant subproject directory).
For general use, cite this repository as below.
authors:
- name: "Path Integral Institute"
website: https://www.pathintegral.xyz/
title: MCP.Science
version: 0.1.0
date-released: 2025-05-21
url: https://github.com/pathintegral-institute/mcp.science
GitHub Events
Total
- Create event: 39
- Release event: 1
- Watch event: 45
- Delete event: 29
- Member event: 2
- Issue comment event: 61
- Push event: 113
- Pull request review comment event: 32
- Pull request review event: 65
- Pull request event: 68
- Fork event: 9
Last Year
- Create event: 39
- Release event: 1
- Watch event: 45
- Delete event: 29
- Member event: 2
- Issue comment event: 61
- Push event: 113
- Pull request review comment event: 32
- Pull request review event: 65
- Pull request event: 68
- Fork event: 9
Issues and Pull Requests
Last synced: 7 months ago
All Time
- Total issues: 0
- Total pull requests: 46
- Average time to close issues: N/A
- Average time to close pull requests: 1 day
- Total issue authors: 0
- Total pull request authors: 13
- Average comments per issue: 0
- Average comments per pull request: 0.7
- Merged pull requests: 28
- Bot issues: 0
- Bot pull requests: 4
Past Year
- Issues: 0
- Pull requests: 46
- Average time to close issues: N/A
- Average time to close pull requests: 1 day
- Issue authors: 0
- Pull request authors: 13
- Average comments per issue: 0
- Average comments per pull request: 0.7
- Merged pull requests: 28
- Bot issues: 0
- Bot pull requests: 4
Top Authors
Issue Authors
Pull Request Authors
- GabrielDrapor (14)
- j-z10 (6)
- pyq (4)
- rong-xyz (4)
- calmini (3)
- XiaoliangQi (3)
- allcontributors[bot] (2)
- Yibo-Zhang (2)
- pathintegral-institute-codex[bot] (2)
- niechen (1)
- LionSR (1)
- bluebarryz (1)
- WandaHou (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v4 composite
- docker/build-push-action f2a1d5e99d037542a71f64918e516c093c6f3fc4 composite
- docker/login-action 65b78e6e13532edd9afa3aa52ac7964289d1a9c1 composite
- ghcr.io/astral-sh/uv python3.12-bookworm-slim build
- python 3.12-slim-bookworm build
- httpx >=0.28.1
- mcp [cli]>=1.5.0
- pydantic >=2.10.6
- annotated-types 0.7.0
- anyio 4.9.0
- certifi 2025.1.31
- click 8.1.8
- colorama 0.4.6
- exceptiongroup 1.2.2
- h11 0.14.0
- httpcore 1.0.7
- httpx 0.28.1
- httpx-sse 0.4.0
- idna 3.10
- markdown-it-py 3.0.0
- mcp 1.5.0
- mcp-txyz-search 0.1.0
- mdurl 0.1.2
- nodeenv 1.9.1
- pydantic 2.10.6
- pydantic-core 2.27.2
- pydantic-settings 2.8.1
- pygments 2.19.1
- pyright 1.1.397
- python-dotenv 1.0.1
- rich 13.9.4
- ruff 0.11.2
- shellingham 1.5.4
- sniffio 1.3.1
- sse-starlette 2.2.1
- starlette 0.46.1
- typer 0.15.2
- typing-extensions 4.12.2
- uvicorn 0.34.0
- actions/checkout v4 composite
- actions/configure-pages v4 composite
- actions/deploy-pages v4 composite
- actions/upload-pages-artifact v3 composite
- ghcr.io/astral-sh/uv python3.12-bookworm-slim build
- python 3.12-slim-bookworm build
- mcp >=1.6.0
- annotated-types 0.7.0
- anyio 4.9.0
- certifi 2025.1.31
- click 8.1.8
- colorama 0.4.6
- example-server 0.1.0
- h11 0.14.0
- httpcore 1.0.8
- httpx 0.28.1
- httpx-sse 0.4.0
- idna 3.10
- mcp 1.6.0
- pydantic 2.11.3
- pydantic-core 2.33.1
- pydantic-settings 2.8.1
- python-dotenv 1.1.0
- sniffio 1.3.1
- sse-starlette 2.2.1
- starlette 0.46.2
- typing-extensions 4.13.2
- typing-inspection 0.4.0
- uvicorn 0.34.1
- ase >=3.24.0
- crystal-toolkit ==2025.1.24rc0
- kaleido ==0.2.1
- loguru >=0.7.3
- mcp [cli]>=1.6.0
- mp-api >=0.45.3
- pymatgen >=2025.3.10
- 199 dependencies
- kaleido ==0.2.1
- matplotlib >=3.8.0
- mcp >=1.6.0
- numpy >=2.2.4
- pandas >=2.2.3
- plotly ==5.24.1
- psutil >=7.0.0
- requests >=2.32.3
- scipy >=1.12.0
- annotated-types 0.7.0
- anyio 4.9.0
- certifi 2025.1.31
- charset-normalizer 3.4.1
- click 8.1.8
- colorama 0.4.6
- contourpy 1.3.1
- cycler 0.12.1
- fonttools 4.57.0
- h11 0.14.0
- httpcore 1.0.7
- httpx 0.28.1
- httpx-sse 0.4.0
- idna 3.10
- kaleido 0.2.1
- kiwisolver 1.4.8
- matplotlib 3.10.1
- mcp 1.6.0
- numpy 2.2.4
- packaging 24.2
- pandas 2.2.3
- pillow 11.1.0
- plotly 5.24.1
- psutil 7.0.0
- pydantic 2.11.2
- pydantic-core 2.33.1
- pydantic-settings 2.8.1
- pyparsing 3.2.3
- python-code-execution 0.1.0
- python-dateutil 2.9.0.post0
- python-dotenv 1.1.0
- pytz 2025.2
- requests 2.32.3
- scipy 1.15.2
- six 1.17.0
- sniffio 1.3.1
- sse-starlette 2.2.1
- starlette 0.46.1
- tenacity 9.1.2
- typing-extensions 4.13.1
- typing-inspection 0.4.0
- tzdata 2025.2
- urllib3 2.3.0
- uvicorn 0.34.0
- fastapi >=0.104.0
- mcp [cli]>=1.5.0
- paramiko >=3.4.0
- pydantic >=2.5.0
- python-dotenv >=1.0.0
- ruff >=0.11.2
- uvicorn >=0.23.0
- annotated-types 0.7.0
- anyio 4.9.0
- bcrypt 4.3.0
- black 25.1.0
- certifi 2025.1.31
- cffi 1.17.1
- click 8.1.8
- colorama 0.4.6
- cryptography 44.0.2
- exceptiongroup 1.2.2
- fastapi 0.115.12
- h11 0.14.0
- httpcore 1.0.7
- httpx 0.28.1
- httpx-sse 0.4.0
- idna 3.10
- isort 6.0.1
- markdown-it-py 3.0.0
- mcp 1.6.0
- mcp-ssh-exec 0.1.0
- mdurl 0.1.2
- mypy-extensions 1.0.0
- nodeenv 1.9.1
- packaging 24.2
- paramiko 3.5.1
- pathspec 0.12.1
- platformdirs 4.3.7
- pycparser 2.22
- pydantic 2.11.1
- pydantic-core 2.33.0
- pydantic-settings 2.8.1
- pygments 2.19.1
- pynacl 1.5.0
- pyright 1.1.398
- python-dotenv 1.1.0
- rich 13.9.4
- ruff 0.11.2
- shellingham 1.5.4
- sniffio 1.3.1
- sse-starlette 2.2.1
- starlette 0.46.1
- tomli 2.2.1
- typer 0.15.2
- typing-extensions 4.13.0
- typing-inspection 0.4.0
- uvicorn 0.34.0
- httpx >=0.28.1
- markdownify >=1.1.0
- mcp [cli]>=1.5.0
- pymupdf >=1.25.4
- pypdf2 >=3.0.1
- readabilipy >=0.3.0
- annotated-types 0.7.0
- anyio 4.9.0
- beautifulsoup4 4.13.3
- certifi 2025.1.31
- click 8.1.8
- colorama 0.4.6
- h11 0.14.0
- html5lib 1.1
- httpcore 1.0.7
- httpx 0.28.1
- httpx-sse 0.4.0
- idna 3.10
- lxml 5.3.1
- markdown-it-py 3.0.0
- markdownify 1.1.0
- mcp 1.5.0
- mdurl 0.1.2
- nodeenv 1.9.1
- pydantic 2.10.6
- pydantic-core 2.27.2
- pydantic-settings 2.8.1
- pygments 2.19.1
- pymupdf 1.25.4
- pypdf2 3.0.1
- pyright 1.1.397
- python-dotenv 1.1.0
- readabilipy 0.3.0
- regex 2024.11.6
- rich 13.9.4
- ruff 0.11.2
- shellingham 1.5.4
- six 1.17.0
- sniffio 1.3.1
- soupsieve 2.6
- sse-starlette 2.2.1
- starlette 0.46.1
- typer 0.15.2
- typing-extensions 4.12.2
- uvicorn 0.34.0
- web-fetch 0.1.0
- webencodings 0.5.1
- mcp-servers 0.1.0
- dynaconf >=3.2.10
- ipython >=9.1.0
- kaleido ==0.2.1
- loguru >=0.7.3
- mcp [cli]>=1.6.0
- mp-api >=0.45.3
- pymatgen >=2025.3.10
- ase >=3.24.0
- gpaw >=1.1.0
- loguru >=0.7.3
- mcp >=1.6.0
- mp-api >=0.45.3
- psutil >=7.0.0
- pymatgen >=2025.3.10
- 116 dependencies
- mcp [cli]>=1.0.0
- mcp *
- annotated-types 0.7.0
- anyio 4.9.0
- certifi 2025.1.31
- click 8.1.8
- colorama 0.4.6
- h11 0.14.0
- httpcore 1.0.8
- httpx 0.28.1
- httpx-sse 0.4.0
- idna 3.10
- markdown-it-py 3.0.0
- mathematica-check 0.1.0
- mcp 1.6.0
- mdurl 0.1.2
- pydantic 2.11.3
- pydantic-core 2.33.1
- pydantic-settings 2.9.1
- pygments 2.19.1
- python-dotenv 1.1.0
- rich 14.0.0
- shellingham 1.5.4
- sniffio 1.3.1
- sse-starlette 2.2.1
- starlette 0.46.2
- typer 0.15.2
- typing-extensions 4.13.2
- typing-inspection 0.4.0
- uvicorn 0.34.2
- actions/checkout v4 composite
- actions/create-github-app-token v2 composite
- openai/codex/.github/actions/codex main composite
- actions/checkout v4 composite
- astral-sh/setup-uv v5 composite
- pypa/gh-action-pypi-publish release/v1 composite
- jupyter-client >=8.6.3
- jupyter-server >=2.16.0
- mcp [cli]>=1.9.0
- requests >=2.32.3
- 103 dependencies
- mcp [cli]>=1.6.0
- pydantic >=2.0.0
- requests >=2.32.3
- ruff >=0.11.13
- annotated-types 0.7.0
- anyio 4.9.0
- certifi 2025.4.26
- charset-normalizer 3.4.2
- click 8.2.1
- colorama 0.4.6
- h11 0.16.0
- httpcore 1.0.9
- httpx 0.28.1
- httpx-sse 0.4.0
- idna 3.10
- markdown-it-py 3.0.0
- mcp 1.9.1
- mdurl 0.1.2
- nemad 0.1.0
- pydantic 2.11.5
- pydantic-core 2.33.2
- pydantic-settings 2.9.1
- pygments 2.19.1
- python-dotenv 1.1.0
- python-multipart 0.0.20
- requests 2.32.3
- rich 14.0.0
- ruff 0.11.13
- shellingham 1.5.4
- sniffio 1.3.1
- sse-starlette 2.3.5
- starlette 0.46.2
- typer 0.16.0
- typing-extensions 4.13.2
- typing-inspection 0.4.1
- urllib3 2.4.0
- uvicorn 0.34.2
- mcp [cli]>=1.6.0
- tinydb >=4.0.0
- annotated-types 0.7.0
- anyio 4.9.0
- certifi 2025.1.31
- click 8.1.8
- colorama 0.4.6
- exceptiongroup 1.3.0
- h11 0.14.0
- httpcore 1.0.8
- httpx 0.28.1
- httpx-sse 0.4.0
- idna 3.10
- iniconfig 2.1.0
- markdown-it-py 3.0.0
- mcp 1.6.0
- mdurl 0.1.2
- packaging 25.0
- pluggy 1.6.0
- pydantic 2.11.3
- pydantic-core 2.33.1
- pydantic-settings 2.8.1
- pygments 2.19.1
- pytest 8.4.0
- python-dotenv 1.1.0
- rich 14.0.0
- shellingham 1.5.4
- sniffio 1.3.1
- sse-starlette 2.2.1
- starlette 0.46.2
- tinydb 4.8.2
- tinydb-server 0.1.0
- tomli 2.2.1
- typer 0.15.3
- typing-extensions 4.13.2
- typing-inspection 0.4.0
- uvicorn 0.34.1
- fastmcp >=0.1.0
- matplotlib >=3.5.0
- mcp [cli]>=1.6.0
- netket >=3.17.1
- numpy >=1.21.0
- pathlib-ng >=1.0.0
- pydantic >=2.0.0
- scipy >=1.7.0
- uuid-utils >=0.6.0
- mcp [cli]
- pydantic *
- annotated-types 0.7.0
- anyio 4.9.0
- certifi 2025.6.15
- click 8.2.1
- colorama 0.4.6
- exceptiongroup 1.3.0
- h11 0.16.0
- httpcore 1.0.9
- httpx 0.28.1
- httpx-sse 0.4.0
- idna 3.10
- markdown-it-py 3.0.0
- mcp 1.9.4
- mcp-timer 0.0.1
- mdurl 0.1.2
- pydantic 2.11.7
- pydantic-core 2.33.2
- pydantic-settings 2.10.0
- pygments 2.19.2
- python-dotenv 1.1.0
- python-multipart 0.0.20
- rich 14.0.0
- shellingham 1.5.4
- sniffio 1.3.1
- sse-starlette 2.3.6
- starlette 0.47.1
- typer 0.16.0
- typing-extensions 4.14.0
- typing-inspection 0.4.1
- uvicorn 0.34.3