Biomart MCP について
Biomart MCPはpybiomartを介してBiomartに接続し、生物学データを扱う研究者向けにデータ探索、取得、識別子変換を提供します。
主な機能
- 01Martとデータセットの探索
- 02属性とフィルターの確認
- 03生物学データの取得
- 04生物識別子の変換
活用シーン
- 01利用可能なBiomartデータセットの閲覧
- 02属性とフィルターを指定したデータ取得
- 03生物識別子間の変換
MCP 対応
MCPサーバーとして、Biomartの探索、クエリ、識別子変換機能をツールとしてMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Biomart MCP
Biomart と連携する MCP サーバー
Model Context Protocol(MCP)は、Anthropic が開発した LLM にアプリケーションがコンテキストを提供する方法を標準化するオープンプロトコルです。ここでは、MCP python-sdk を使用して、pybiomart パッケージを介して Biomart と連携する MCP サーバーを作成します。

MCP サーバーが Claude Desktop で動作する様子を紹介する短いデモ動画があります。
インストール
Smithery 経由でインストールする
Smithery 経由で Claude Desktop に Biomart MCP を自動的にインストールするには:
npx -y @smithery/cli install @jzinno/biomart-mcp --client claude
リポジトリをクローンする
git clone https://github.com/jzinno/biomart-mcp.git
cd biomart-mcp
Claude Desktop
uv run --with mcp[cli] mcp install --with pybiomart biomart-mcp.py
Cursor
Cursor のエージェントモードを使用すると、OpenAI や DeepSeek のモデルなど、ほかのモデルも MCP サーバーを活用できます。Cursor の設定歯車をクリックし、MCP に移動して、MCP サーバーをグローバル設定に追加するか、プロジェクトに .cursor/mcp.json を追加してプロジェクトの範囲に追加します。
.cursor/mcp.json の例:
{
"mcpServers": {
"Biomart": {
"command": "uv",
"args": [
"run",
"--with",
"mcp[cli]",
"--with",
"pybiomart",
"mcp",
"run",
"/your/path/to/biomart-mcp.py"
]
}
}
}
Glama
開発
# Create a virtual environment
uv venv
# MacOS/Linux
source .venv/bin/activate
# Windows
.venv\Scripts\activate
uv sync #or uv add mcp[cli] pybiomart
# Run the server in dev mode
mcp dev biomart-mcp.py
機能
Biomart-MCP は、Biomart データベースとやり取りするための複数のツールを提供します。
- マートとデータセットの検出:利用可能なマートとデータセットを一覧表示して、Biomart データベースの構造を確認します
- 属性とフィルターの探索:特定のデータセットでよく使われる、または利用可能なすべての属性とフィルターを表示します
- データの取得:指定した属性とフィルターを使用して Biomart にクエリーを実行し、生物学的データを取得します
- ID の変換:異なる生物学的識別子間(遺伝子記号から Ensembl ID への変換など)で変換します
貢献
プルリクエストを歓迎します!開発に関する簡単な注意事項をいくつか紹介します。
- ここでは設計上、
@mcp.tool()のみを使用しています。これは、ドキュメントに記載されているように、MCP をサポートするクライアントとの互換性を最大限に高めるためです。 - 計算コストが高い関数や外部 API を呼び出す関数の結果をキャッシュするために、
@lru_cacheを使用しています。 - モデルのコンテキストウィンドウを超えないように注意する必要があります。たとえば、さまざまな箇所で
df.to_csv(index=False).replace("\r", "")を使用しています。この CSV 形式の戻り値は、大部分のトークンが空白文字となるdf.to_string()のような形式よりも、トークン効率がはるかに優れています。また、染色体上のすべての遺伝子を取得するような大規模なリクエストも、コンテキストウィンドウに収まらないことに注意してください。
今後追加される可能性のある機能
もちろん追加できる機能はほかにもたくさんあり、なかには biomart-mcp という名前の範囲を超えるものもあるかもしれません。いくつか案を紹介します。
bs4を使ってリソースサイトのウェブスクレイピングを追加する。たとえば、NOTCH1 の Ensembl 遺伝子 ID を取得した後、場合によってはUCSC のページにあるComments and Description Text from UniProtKBセクションをまとめて取得できるかもしれません。- $...$
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。