UniProt MCP Server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

UniProt MCP サーバー

UniProtタンパク質情報へのアクセスを提供するモデルコンテキストプロトコル(MCP)サーバー。このサーバーにより、AIアシスタントはUniProtからタンパク質の機能と配列情報を直接取得できます。

特徴

  • UniProtアクセッション番号でタンパク質情報を取得する
  • 複数のタンパク質のバッチ検索
  • パフォーマンス向上のためのキャッシュ(24時間TTL)
  • エラー処理とログ記録
  • 情報には以下が含まれます:
    • タンパク質名
    • 機能の説明
    • フルシーケンス
    • シーケンスの長さ
    • 生物

クイックスタート

  1. Python 3.10以降がインストールされていることを確認してください
  2. このリポジトリをクローンします:
    git clone https://github.com/TakumiY235/uniprot-mcp-server.git cd uniprot-mcp-server
  3. 依存関係をインストールします:
    # Using uv (recommended) uv pip install -r requirements.txt # Or using pip pip install -r requirements.txt

構成

Claude Desktop 構成ファイルに以下を追加します:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
{ "mcpServers": { "uniprot": { "command": "uv", "args": ["--directory", "path/to/uniprot-mcp-server", "run", "uniprot-mcp-server"] } } }

使用例

Claude Desktop でサーバーを構成した後、次のような質問をすることができます。

Can you get the protein information for UniProt accession number P98160?

バッチクエリの場合:

Can you get and compare the protein information for both P04637 and P02747?

APIリファレンス

ツール

  1. get_protein_info
    • 単一のタンパク質の情報を取得する
    • 必須パラメータ: accession (UniProt アクセッション番号)
    • 応答例:
      { "accession": "P12345", "protein_name": "Example protein", "function": ["Description of protein function"], "sequence": "MLTVX...", "length": 123, "organism": "Homo sapiens" }
  2. get_batch_protein_info
    • 複数のタンパク質の情報を取得する
    • 必須パラメータ: accessions (UniProt アクセッション番号の配列)
    • タンパク質情報オブジェクトの配列を返します

発達

開発環境の設定

  1. リポジトリをクローンする
  2. 仮想環境を作成します。
    python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
  3. 開発依存関係をインストールします。
    pip install -e ".[dev]"

テストの実行

pytest

コードスタイル

このプロジェクトでは以下を使用します:

  • コードフォーマット用の黒
  • インポートソート用のisort
  • 糸くず除去用flake8
  • 型チェックのためのmypy
  • セキュリティチェックの盗賊
  • 依存関係の脆弱性チェックの安全性

すべてのチェックを実行します:

black . isort . flake8 . mypy . bandit -r src/ safety check

技術的な詳細

  • MCP Python SDKを使用して構築
  • 非同期HTTPリクエストにhttpxを使用する
  • OrderedDictベースのキャッシュを使用して24時間TTLのキャッシュを実装します
  • レート制限と再試行を処理する
  • 詳細なエラーメッセージを提供する

エラー処理

サーバーはさまざまなエラー シナリオを処理します。

  • 無効なアクセス番号(404 応答)
  • API接続の問題(ネットワークエラー)
  • レート制限(429件の回答)
  • 不正な応答(JSON 解析エラー)
  • キャッシュ管理(TTLとサイズ制限)

貢献

貢献を歓迎します!お気軽にプルリクエストを送信してください。貢献方法は以下の通りです。

  1. リポジトリをフォークする
  2. 機能ブランチを作成します( git checkout -b feature/amazing-feature
  3. 変更をコミットします ( git commit -m 'Add some amazing feature' )
  4. ブランチにプッシュする ( git push origin feature/amazing-feature )
  5. プルリクエストを開く

必要に応じてテストを更新し、既存のコーディング スタイルに準拠するようにしてください。

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。

謝辞

  • タンパク質データAPIを提供するUniProt
  • モデルコンテキストプロトコル仕様のAnthropic
  • このプロジェクトの改善に協力してくれた貢献者

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

AI アシスタントが UniProt から直接タンパク質情報にアクセスできるようにし、アクセス番号でタンパク質名、機能、配列、生物データを取得できるようにします。

  1. Features
    1. Quick Start
      1. Configuration
        1. Usage Examples
          1. API Reference
            1. Tools
          2. Development
            1. Setting up development environment
            2. Running tests
            3. Code style
          3. Technical Details
            1. Error Handling
          4. Contributing
            1. License
              1. Acknowledgments
                ID: ttjbai3lpx