MCP.science: Open Source MCP Servers for Scientific Research 🔍📚 について
MCP.science は、科学研究向けのオープンソース MCP サーバーをまとめたモノレポです。各サーバーは uvx コマンドひとつで起動でき、AI アシスタントから科学データやツールを利用できます。
主な機能
- 011 つのモノレポにまとめられたオープンソース MCP サーバー
- 02uvx mcp-science でサーバーを起動
- 03Web 取得、コード実行、DFT 計算などのサーバー
- 04Claude Desktop、VSCode、Goose での設定に対応
- 05クライアント連携を管理するオプションの MCPM
活用シーン
- 01アシスタントによる Web や PDF 資料の取得と要約
- 02GPAW による密度汎関数計算や Materials Project データの照会
- 03実行中の Jupyter カーネルでのノートブックセル実行
MCP 対応
本プロジェクトは、科学向けのツールを MCP クライアントに公開する MCP サーバー群です。クライアントは stdio 経由の子プロセスとして起動します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
クイックスタート
このリポジトリ内のサーバーは、どれもコマンドひとつで簡単に実行できます。たとえば、web-fetch サーバーを起動するには、次のようにします。
uvx mcp-science web-fetch
このコマンドですべての処理が行われるため、インストールから実行までを簡単に行えます。設定やほかのサーバーの探し方について詳しくは、以下の「AI クライアントアプリ向け MCP サーバーの設定方法」セクションをご覧ください。
目次
概要
このリポジトリには、科学研究用途向けに特化して設計されたオープンソースのMCPサーバーが集められています。これらのサーバーにより、AI モデル(Claude など)は標準化されたプロトコルを介して、科学データ、ツール、リソースを利用できます。
MCP とは?
MCP は、アプリケーションが LLM にコンテキストを提供する方法を標準化するオープンプロトコルです。MCP は、AI アプリケーション向けの USB-C ポートのようなものだと考えてください。USB-C がデバイスをさまざまな周辺機器やアクセサリに接続する標準的な方法を提供するように、MCP は AI モデルをさまざまなデータソースやツールに接続する標準的な方法を提供します。
MCP を使うと、LLM を基盤とするエージェントや複雑なワークフローを構築できます。LLM はデータやツールとの連携を必要とすることが多く、MCP は次のものを提供します。
- LLM が直接接続できる、拡充され続ける事前構築済みインテグレーションの一覧
- LLM プロバイダーやベンダーを柔軟に切り替えられる仕組み
- インフラストラクチャ内でデータを保護するためのベストプラクティス
このリポジトリで利用できるサーバー
以下は、このモノレポに含まれる MCP サーバーの完全な一覧です。各項目から、サーバーのソースコードと README を含むサブディレクトリに移動できるため、ドキュメントや使用方法をすぐに確認できます。
サンプルサーバー
サーバーの実装に必要な最小限の要素を示す、サンプルの MCP サーバーです。
Materials Project
Materials Project データベースの材料科学データを AI アシスタントが検索、可視化、操作できるようにする、専門的な MCP サーバーです。Materials Project の API キーが必要です。
Python コード実行
標準ライブラリへのアクセスを制限した、安全なサンドボックス環境で Python のコードスニペットを実行します。これにより、システムに危険を及ぼすことなく、アシスタントが分析や計算を行えます。
SSH 実行
設定可能な認証方式とコマンドの許可リストを使用して、アシスタントが SSH 経由でリモートマシン上の事前検証済みコマンドを実行できるようにします。
Web 取得
Web 上の HTML、PDF、プレーンテキストのコンテンツを取得して処理し、アシスタントが引用や要約を行えるようにします。
TXYZ 検索
TXYZ API を介して、Web、学術、「ベストエフォート」検索を実行します。TXYZ API キーが必要です。
タイマー
MCP 通知のデモ用に進捗状況をストリーミングする、シンプルなカウントダウンタイマーです。
GPAW 計算
GPAW パッケージを通じて、密度汎関数理論(DFT)計算を提供します。
Jupyter-Act
実行中の Jupyter カーネルとアシスタントがやり取りし、ノートブックの セルをプログラムから実行できるようにします。
Mathematica-Check
ヘッドレスの Mathematica インスタンスを通じて、Wolfram Language コードの 小さなスニペットを評価します。
NEMAD
NEMAD のデータセットを調べるツールを提供する、神経科学モデル分析ダッシュボードサーバーです。
TinyDB
TinyDB をバックエンドとする軽量な JSON データベースへの CRUD アクセスを提供し、 アシスタントが少量の構造化データを保存・取得できるようにします。
AI クライアントアプリ向け MCP サーバーの設定方法
これらについてよくご存じない場合は、こちらの手順ガイドをご覧ください:AI クライアントアプリ向け MCP サーバーの設定手順
前提条件
-
uv — pip + virtualenv の代わりに使える、非常に高速な(Rust 製の) ツールです。次のコマンドでインストールします。
curl -sSf https://astral.sh/uv/install.sh | bash -
次のような、MCP 対応のクライアントアプリケーション: Claude Desktop、 VSCode、 Goose、 5ire。
簡単な方法 — uvx を使う
このリポジトリ内のサーバーは、どれも単一のシェルコマンドで起動できます。形式は次のとおりです。
uvx mcp-science <server-name>
たとえば、web-fetch stdio サーバーをローカルで起動するには、クライアントで次のコマンドを設定します。
uvx mcp-science web-fetch
これは、claude desktop の JSON 設定では次のようになります。
{
"mcpServers": {
"web-fetch": {
"command": "uvx",
"args": [
"mcp-science",
"web-fetch"
]
}
}
}
このコマンドは PyPI から mcp-science パッケージをダウンロードし、指定されたエントリーポイントを実行します。
その他のサーバーを探す
利用可能なサーバーの一覧をご覧ください。 表内のすべての項目で、上記の形式を使用できます。
任意:MCPM を使った連携の管理
MCPM は、対応クライアントへのサーバー接続を自動化できる便利なコマンドラインツールです。 必須ではありませんが、クライアントを頻繁に切り替えたり、多数のサーバーを管理したりする場合に役立ちます。
基本的なワークフローは次のとおりです。
# Install mcpm first – it is a separate project
uv pip install mcpm
mcpm client ls # discover supported clients
mcpm client set <name> # pick the one you are using
# Add a server (automatically installing it if needed)
mcpm add web-fetch
コマンドの実行が完了したら、クライアントを再起動してツール設定を再読み込みします。MCPM レジストリで、コミュニティが管理するその他のサーバーを確認できます。
独自の MCP サーバーの構築方法
詳しくは、独自の MCP サーバーを構築する手順をご覧ください。
貢献
MCP.science へのご貢献を心より歓迎します!既存のサーバーの改善、新しいサーバーの追加など、このプロジェクトをより良くするためのことなら何でもご協力いただけます。
GitHub の使い方やオープンソースリポジトリへの貢献方法をご存じない場合、少し難しく感じるかもしれませんが、簡単に取り組めます。まずは以下をお読みいただくことをおすすめします。
簡単にまとめると、以下の手順で進められます。
-
リポジトリを自分の GitHub アカウントにフォークします
-
フォークしたリポジトリをローカルマシンにクローンします
-
フィーチャーブランチを作成します(
git checkout -b feature/amazing-feature) -
変更を加えてコミットします(
git commit -m 'Add amazing feature')👈 クリックしてディレクトリと命名規則について確認する
新しいサーバーは
serversフォルダーに作成してください。 リポジトリのフォルダー内に新しいサーバーフォルダーを作成するには、次を実行します(your-new-serverをサーバー名に置き換えてください)。uv init --package --no-workspace servers/your-new-server uv add --directory servers/your-new-server mcpこれにより、必要なファイルを含む新しいサーバーフォルダーが作成されます。
servers/your-new-server/ ├── README.md ├── pyproject.toml └── src └── your_new_server └── __init__.py設定ファイルには、関連する名前が 2 種類あることにお気づきかもしれません。
- プロジェクト名(ハイフン区切り):
pyproject.toml内のフォルダー名、プロジェクト名、スクリプト名などです。例:your-new-server。 - Python パッケージ名(スネークケース):
src/内のフォルダー名です。例:your_new_server。
- プロジェクト名(ハイフン区切り):
-
ブランチにプッシュします(
git push origin feature/amazing-feature) -
プルリクエストを作成します
PR では、以下を必ず満たしてください。
- 分かりやすいコミットメッセージ
- 適切なドキュメントの更新
- 新機能のテストカバレッジ
サブリポジトリでの貢献者の表彰
特定のサーバー/サブリポジトリ(例:servers/gpaw-computation/)の貢献者を表彰したい場合は、そのサブディレクトリで All Contributors CLI を使用できます。
手順:
- サブリポジトリ(例:
servers/gpaw-computation/)に.all-contributorsrcファイルを作成します(例を参照してください)。 - CLI を使って貢献者を追加します。
npx all-contributors add <github-username> <contribution-type> - サブリポジトリの
README.mdにある貢献者セクションを生成または更新します。npx all-contributors generate - サブリポジトリの
README.mdと.all-contributorsrcへの変更をコミットします。
詳しくは、All Contributors CLI のインストールガイドをご覧ください。
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細については、LICENSE ファイルをご覧ください。
謝辞
すべての貢献者に感謝します!
引用
一般的な用途については、ルートにある CITATION.cff の記載に従って、このリポジトリを引用してください。
特定のサーバー/サブプロジェクトを使用する場合は、適切な引用方法について、servers/ 内の該当サブプロジェクトのフォルダーにある CITATION.cff ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。