Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Uniprot Unipressed

БесплатноНе проверен

An MCP server that provides tools for searching and fetching protein data from the UniProt database using the unipressed library.

GitHubEmbed

Описание

An MCP server that provides tools for searching and fetching protein data from the UniProt database using the unipressed library.

README

An MCP (Model Context Protocol) server that provides tools for querying the UniProt protein database using the unipressed Python library.

Features

  • Search proteins using standard the UniProt query syntax across UniProtKB, UniParc, or UniRef databases
  • Fetch specific entries by accession ID
  • Pagination for large result sets
  • Field selection to control returned data
  • JSON format responses by default - responses are returned in JSON format, with TOON format available as an option

Installation

Using uv (recommended)

uv sync

This will create a virtual environment and install all dependencies.

Development installation

uv sync --extra dev

This installs the package with development dependencies (pytest, etc.).

Usage

Running the server

With uvx (recommended)

uvx uniprot-unipressed-mcp

Or from a git repository:

uvx --from git+https://github.com/pansapiens/uniprot-unipressed-mcp uniprot-mcp

Alternative example: with the FastMCP CLI and HTTP transport

fastmcp run src/uniprot_mcp/server.py:mcp --transport http --port 8007

Configuring with MCP clients

Claude Code

Add the server using the Claude Code CLI:

claude mcp add uniprot-unipressed-mcp -- uvx git+https://github.com/pansapiens/uniprot-unipressed-mcp

Other MCP clients

Or manually add to your MCP configuration (Claude Code, Cursor, etc.):

{
  "mcpServers": {
    "uniprot-unipressed-mcp": {
      "command": "uvx",
      "args": ["git+https://github.com/pansapiens/uniprot-unipressed-mcp"]
    }
  }
}

Response Format

Tool responses are returned in JSON format by default. To receive TOON format responses instead, use the response_format parameter with value "toon":

# JSON format (default)
result = uniprot_search(query="gene:BRCA1")

# TOON format
result = uniprot_search(query="gene:BRCA1", response_format="toon")

Tools

uniprot_search

Search the UniProt protein database using query syntax.

Parameters:

Parameter Type Required Default Description
query string Yes - UniProt query string
database string No "uniprotkb" Database to search: uniprotkb, uniparc, uniref
limit integer No 10 Results per page (1-100)
fields list[string] No None Return fields to include
cursor string No None Pagination cursor from previous result
response_format string No "json" Response format: "json" (default) or "toon"

Example queries:

gene:BRCA1                              # Search by gene name
organism_id:9606                        # Human proteins (NCBI taxonomy ID)
(gene:BRCA*) AND (organism_id:10090)    # Mouse BRCA genes with wildcard
length:[500 TO 700]                     # Proteins of specific length range
keyword:kinase                          # By UniProt keyword
family:serpin                           # By protein family
ec:3.2.1.23                             # By enzyme classification
reviewed:true                           # Only Swiss-Prot reviewed entries

Response:

By default, responses are returned in JSON format. When response_format="toon" is specified, responses are returned in TOON format (a compact string):

JSON format (default):

{
  "results": [...],
  "total": 1234,
  "nextCursor": "eyJvZmZzZXQiOiAxMH0="
}

TOON format:

results[10]:
  - entryType: UniProtKB reviewed (Swiss-Prot)
    primaryAccession: P38398
    secondaryAccessions[7]: E9PFZ0,O15129,Q1RMC1,Q3LRJ0,Q3LRJ6,Q6IN79,Q7KYU9
    uniProtkbId: BRCA1_HUMAN
    ...etc...

uniprot_fetch

Fetch specific protein entries by their UniProt accession IDs.

Parameters:

Parameter Type Required Default Description
ids list[string] Yes - UniProt accession IDs to fetch
database string No "uniprotkb" Database to fetch from
fields list[string] No None Return fields to include
response_format string No "json" Response format: "json" (default) or "toon"

Example:

uniprot_fetch(ids=["P62988", "A0A0C5B5G6"])

Response:

By default, responses are returned in JSON format. When response_format="toon" is specified, responses are returned in TOON format (a compact string):

JSON format (default):

{
  "results": [...],
  "found": 2,
  "requested": 2
}

TOON format:

results[10]:
  - entryType: UniProtKB reviewed (Swiss-Prot)
    primaryAccession: P38398
    secondaryAccessions[7]: E9PFZ0,O15129,Q1RMC1,Q3LRJ0,Q3LRJ6,Q6IN79,Q7KYU9
    uniProtkbId: BRCA1_HUMAN
    ...etc...

Pagination

The server uses cursor-based pagination for search results. When more results are available, the response includes a nextCursor field. Pass this cursor in subsequent requests to retrieve the next page:

# First request
result1 = uniprot_search(query="organism_id:9606", limit=10)

# Get next page using cursor
if "nextCursor" in result1:
    result2 = uniprot_search(
        query="organism_id:9606",
        limit=10,
        cursor=result1["nextCursor"]
    )

Databases

Database Description
uniprotkb UniProt Knowledgebase - curated protein sequences and annotations
uniparc UniProt Archive - comprehensive protein sequence archive
uniref UniProt Reference Clusters - clustered protein sequences

Return Fields

Common return fields include:

  • accession - UniProt accession number
  • id - Entry name
  • gene_names - Gene names
  • protein_name - Protein names
  • organism_name - Source organism
  • organism_id - NCBI taxonomy ID
  • length - Sequence length
  • mass - Molecular mass
  • sequence - Amino acid sequence
  • cc_function - Function annotation
  • cc_subcellular_location - Subcellular location

See the UniProt return fields documentation for the complete list.

Development

Using a local copy of the repository

{
  "mcpServers": {
    "uniprot-unipressed-mcp": {
      "command": "uv",
      "args": ["--directory", "/path/to/uniprot-unipressed-mcp", "run", "-m", "uniprot_mcp.server"]
    }
  }
}

Testing using the MCP Inspector

npx @modelcontextprotocol/inspector uv --directory $(pwd) run -m uniprot_mcp.server

Running tests

uv run pytest

This runs all unit tests. Integration tests (which require network access to the UniProt API) are skipped by default.

Running integration tests

Integration tests can be enabled using an environment variable:

RUN_INTEGRATION_TESTS=1 uv run pytest

Or run only integration tests:

RUN_INTEGRATION_TESTS=1 uv run pytest -m integration

Running tests with coverage

uv run pytest --cov=uniprot_mcp

To include integration tests in coverage:

RUN_INTEGRATION_TESTS=1 uv run pytest --cov=uniprot_mcp

Resources

Licence

MIT

from github.com/pansapiens/uniprot-unipressed-mcp

Установить Uniprot Unipressed в Claude Desktop, Claude Code, Cursor

Рекомендуется · одна команда, все IDE
unyly install uniprot-unipressed-mcp

Ставит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.

Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh

Или настроить вручную

Выполни в терминале:

claude mcp add uniprot-unipressed-mcp -- uvx uniprot-mcp

FAQ

Uniprot Unipressed MCP бесплатный?

Да, Uniprot Unipressed MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Uniprot Unipressed?

Нет, Uniprot Unipressed работает без API-ключей и переменных окружения.

Uniprot Unipressed — hosted или self-hosted?

Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.

Как установить Uniprot Unipressed в Claude Desktop, Claude Code или Cursor?

Открой Uniprot Unipressed на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Uniprot Unipressed with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории data