A side-by-side look at the Clinicaltrialsgov MCP Server and Uniprot MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Clinicaltrialsgov MCP Server for biology, medicine and bioinformatics work as a local process; choose Uniprot MCP for biology, medicine and bioinformatics as a local process. You can also run both side by side in one mcpServers block.
clinicaltrials_search_studies, clinicaltrials_get_study_record, clinicaltrials_get_study_count.UNIPROT_MCP_CACHE_DIR.uniprot_get_entry, uniprot_search, uniprot_get_sequence.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Biology, Medicine and Bioinformatics | Biology, Medicine and Bioinformatics |
| Quality signal | 61/100 · Good | 61/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | No auth required |
| Pricing | Not declared | Free |
| Required env vars | None listed | UNIPROT_MCP_CACHE_DIR |
| Verified owner | Community listing | Community listing |
| GitHub stars | 99 | 3 |
| Directory activity | 1 views 0 installs 0 upvotes | 4 views 0 installs 0 upvotes |
| Tools | 7 | 41 |
| Full listing | View Clinicaltrialsgov MCP Server | View Uniprot MCP |
clinicaltrials_search_studiesSearch studies with full-text and field-specific queries, status/phase/geographic filters, pagination, sorting, and field selectionclinicaltrials_get_study_recordFetch a single study by NCT ID — full protocol record with optional location/outcome/reference capsclinicaltrials_get_study_countFast total study count for a query, without fetching dataclinicaltrials_get_field_valuesDiscover valid values for API fields, with per-value study countsclinicaltrials_get_field_definitionsResolve valid field names — keyword search, path drill-down, or top-level overviewclinicaltrials_get_study_resultsFetch posted results — outcomes, adverse events, participant flow, baseline — for completed studiesclinicaltrials_find_eligibleMatch patient demographics and conditions to candidate recruiting trials, without checking inclusion/exclusion criteriauniprot_get_entryFetch a UniProt protein entry by accession (e.g. P04637 for p53, P38398 for BRCA1).
Returns function, gene, organism, disease associations, cross-references.uniprot_searchThe general-purpose entry point for finding UniProtKB proteins by any
combination of gene, organism, keyword, or free text. Use this first when
you don't already have an accession; use ``uniprot_get_entry`` once you
do. Examples: '(gene:TP53) AND (organism_id:9606)', 'kinase AND reviewed:true'.
``reviewed_only`` and ``organism`` are convenience shortcuts equivalent to
adding the corresponding clause to ``query`` yourself.uniprot_get_sequenceFetch the canonical protein sequence in FASTA format. Use this when
you need the raw residue string itself (e.g. for local sequence
analysis); for pre-computed chemistry derived from this same sequence
(molecular weight, pI, hydrophobicity) call ``uniprot_compute_properties``
instead, which fetches the FASTA internally so you don't have to parse
it yourself. Always returns markdown/plain-text FASTA — there is no
``response_format`` parameter because FASTA is already the interchange
format.uniprot_get_featuresReturn the full, unfiltered feature array for an entry: domains,
binding sites, PTMs, signal peptides, and every other annotated region,
optionally narrowed by ``feature_types``. For a residue-specific view
('what's at position 175?') use ``uniprot_features_at_position``
instead; for the curated subsets (active/binding sites, processing,
PTMs alone) the dedicated ``uniprot_get_active_sites`` /
``uniprot_get_processing_features`` / ``uniprot_get_ptms`` tools apply
the same filter server-side.uniprot_get_go_termsGet GO annotations grouped by aspect.uniprot_get_cross_refsList every external-database cross-reference UniProt has curated for
an entry (PDB, Pfam, Ensembl, Reactome, KEGG, STRING, and dozens more),
optionally narrowed to one ``database``. For the common single-database
cases there are dedicated, richer tools that resolve structured details
beyond a bare ID: ``uniprot_resolve_pdb`` (structures with
method/resolution), ``uniprot_resolve_alphafold``, ``uniprot_resolve_interpro``,
and ``uniprot_resolve_chembl``. Use this tool for any other database or
to see the full cross-reference set at once.uniprot_get_variantsList every literature-described natural variant UniProt has curated
for an entry, including disease-associated mutations. Use this to see
the full variant catalogue for a protein; to check one specific
HGVS-shorthand change (e.g. 'R175H') use ``uniprot_lookup_variant``
instead, which does the position/residue matching for you. UniProt's
natural-variant annotations only cover literature-described variants —
for population-scale clinical significance data use
``uniprot_resolve_clinvar``.uniprot_id_mappingMap identifiers between UniProt and external databases (or between
two external databases) via UniProt's ID mapping service. Submits an
async job and polls it to completion server-side, so the call may take
a few seconds for large batches.uniprot_batch_entriesFetch multiple entries in a single call. Use this instead of repeated
``uniprot_get_entry`` calls when you already have a list of accessions —
one network round-trip instead of N, with invalid accessions reported
rather than aborting the batch.uniprot_taxonomy_searchResolve an organism name to its NCBI taxonomy ID(s) — the numeric ID
other UniProt tools expect (e.g. the ``organism`` parameter of
``uniprot_search``, or ``organism_id:`` in a query string). Returns
each match's taxonomy ID, scientific name, common name, and rank
(species / genus / etc.); a name can resolve to multiple IDs when
it's ambiguous (e.g. a genus with several species), so inspect the
rank and full scientific name before picking one. Use this before
filtering any other search by organism if you only know the name,
not the numeric ID.uniprot_get_keywordFetch a UniProt keyword by ID (e.g. KW-0007 for Acetylation, KW-0539 for Nucleus).
Returns name, definition, category, synonyms, GO cross-refs, and parent/child hierarchy.uniprot_search_keywordsSearch UniProt's controlled keyword vocabulary (the ``KW-####`` terms)
by name or definition. Use this to discover a keyword ID from a concept;
once you have the ``KW-####`` ID, call ``uniprot_get_keyword`` for its full
record (definition, category, hierarchy, GO cross-references). Returns up
to ``size`` matches, or an empty list if nothing matches.
Examples: 'acetylation', 'nucleus', 'kinase activity'.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"clinicaltrialsgov-mcp-server": {
"command": "bunx",
"args": [
"clinicaltrialsgov-mcp-server@latest"
]
}
}
}
{
"mcpServers": {
"smaniches-uniprot-mcp": {
"command": "uvx",
"args": [
"uniprot-mcp-server"
],
"env": {
"UNIPROT_MCP_CACHE_DIR": "YOUR_UNIPROT_MCP_CACHE_DIR_HERE"
}
}
}
}