uniprot-link
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@uniprot-linkfind proteins related to BRCA1"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
uniprot-link
An MCP (Model Context Protocol) + REST server that grounds protein research in the
UniProt SPARQL endpoint (https://sparql.uniprot.org/sparql). It wraps a
~232-billion-triple, QLever-backed SPARQL 1.1 service behind intent-named,
token-economical tools — and ships a safe raw-SPARQL escape hatch plus UniProt's
126 curated example queries so an LLM can learn and write its own queries.
Part of the *-link family of biomedical MCP servers (gnomad-link, gtex-link,
pubtator-link, genereviews-link, …) and follows their stack and conventions.
Features
14 MCP tools across discovery, raw SPARQL, the curated example catalog, proteins (UniProtKB), and taxonomy.
Typed protein tools —
get_protein, sequence, features (with FALDO coordinates), natural variants, diseases, GO terms, cross-references, id mapping.run_sparql_query— execute any SPARQL 1.1 query (SELECT/ASK/CONSTRUCT/ DESCRIBE, withSERVICEfederation); auto-LIMIT on unbounded SELECTs; JSON/XML/ CSV/TSV/Turtle/RDF-XML/N-Triples output.Example catalog —
search_example_queries/get_example_queryexpose UniProt's 126 curated, executable queries (backed by thesparql-examplesgraph).Agentic affordances — every response carries
_meta.next_commands(ready-to-run{tool, arguments}steps), a structured error taxonomy, and auniprot://capabilitiesdiscovery resource.Three transports — unified (REST + MCP/HTTP), HTTP-only, and stdio.
Related MCP server: UniProt MCP Server
Quick start
make install # uv sync --group dev
make dev # unified server: REST on / and MCP on /mcp (port 8000)
make mcp-serve # stdio MCP server (for Claude Desktop)
make ci-local # format + lint + loc + typecheck + testsConnect Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"uniprot-link": {
"command": "uv",
"args": ["--project", "/path/to/uniprot-link", "run", "python", "mcp_server.py"]
}
}
}Tool catalog
Tool | Purpose |
| Tools, 21 named graphs, prefixes, formats, workflows, limits |
| Execute any SPARQL 1.1 query (the power tool / federation) |
| Search 126 curated example queries |
| Full text + metadata of one example |
| Search UniProtKB by gene / organism / keyword / EC / mnemonic |
| Core entry summary by accession |
| Canonical + isoform sequences |
| Sequence features with FALDO coordinates |
| Natural-variant annotations |
| Disease annotations |
| Cross-references grouped by database |
| GO annotations by aspect |
| Map an accession to external DB ids |
| Resolve a taxon by id or name |
Configuration
Environment variables (prefix UNIPROT_LINK_, nested with __):
Variable | Default | Meaning |
|
| Contact in the User-Agent (UniProt etiquette) |
|
| Per-request timeout (s) |
|
| Auto-LIMIT for unbounded SELECTs |
|
|
|
|
| Server port |
Development
See AGENTS.md for conventions (notably the SPARQL / QLever discipline that
keeps queries off the timeout cliff) and docs/ for architecture and usage.
research/verify_queries.py validates every query builder against the live
endpoint.
Disclaimer
Research use only; not for clinical decision support, diagnosis, treatment, or patient management. UniProt data is licensed CC BY 4.0.
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/berntpopp/uniprot-link'
If you have feedback or need assistance with the MCP directory API, please join our Discord server