A side-by-side look at the Moxie Docs MCP 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 Moxie Docs MCP for knowledge & memory 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.
moxie.get_ai_context, moxie.get_doc_impact, moxie.get_api_context.UNIPROT_MCP_CACHE_DIR.uniprot_get_entry, uniprot_search, uniprot_get_sequence.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Knowledge & Memory | Biology, Medicine and Bioinformatics |
| Quality signal | 80/100 · Excellent | 61/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | API key required | No auth required |
| Pricing | Freemium | Free |
| Required env vars | None listed | UNIPROT_MCP_CACHE_DIR |
| Verified owner | Verified | Community listing |
| GitHub stars | 2 | 3 |
| Directory activity | 36 views 25 installs 4 upvotes | 4 views 0 installs 0 upvotes |
| Tools | 12 | 41 |
| Full listing | View Moxie Docs MCP | View Uniprot MCP |
moxie.get_ai_contextCompact pre-edit briefing: repo status, verified commands, top conventions, open gaps, team notes. Read this first.moxie.get_doc_impactGiven the paths you're about to change (and any you're deleting), returns the conventions, gaps, and existing docs whose evidence overlaps them - and flags net-new/undocumented surfaces.moxie.get_api_contextGiven paths you're about to touch, returns structured context for any API endpoints they map to: method, path, schema, and known consumers/features.moxie.review_changeSelf-review a change before opening the PR; returns a severity-ranked verdict (clean / warnings / must-fix) covering convention breaches, stale docs, undocumented surface, and broken references.moxie.get_conventionsDiscovered coding conventions, grouped by category, with confidence scores, agent guidance, and source-file citations.moxie.search_docsSemantic + keyword search over generated docs, conventions, gaps, and AI context.moxie.get_doc_gapsUnresolved documentation gaps with severity and the paths they concern.moxie.get_documentation_opportunitiesRecommended doc work: missing docs, drift repairs, and PR templates.moxie.get_documentation_patternsHow the repository organizes and maintains its docs (where new docs belong).moxie.list_docsPaginated, section-grouped table of contents of every generated doc.moxie.propose_doc_updateAdd or update a doc as part of your current change; returns the target path + Markdown to write into your branch.moxie.propose_doc_removalRemove a Moxie-tracked doc your change makes obsolete; returns the path to delete in your branch.uniprot_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.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": {
"moxie-docs-mcp": {
"command": "npx",
"args": [
"-y",
"moxie-docs"
]
}
}
}
{
"mcpServers": {
"smaniches-uniprot-mcp": {
"command": "uvx",
"args": [
"uniprot-mcp-server"
],
"env": {
"UNIPROT_MCP_CACHE_DIR": "YOUR_UNIPROT_MCP_CACHE_DIR_HERE"
}
}
}
}
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'.