UniProt Protein Search (Find UniProtKB Entries by Gene, Name or Organism)
uniprotrest/search-proteins
Searches the UniProt Knowledgebase (UniProtKB) with a UniProt query, for example gene_exact:BRCA1 AND organism_id:9606 AND reviewed:true, and returns up to 25 matching protein entries limited to the fields you choose: accession, entry id, gene names, protein name, organism and sequence length by default. Each entry keeps UniProt's nested structure. A query that matches nothing returns an empty list. First page only. UniProt data (CC BY 4.0), passed through unmodified and served by Eden Engine; not an official UniProt product.
Price
$0.0026 per call
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.
Data source
Data from UniProt (UniProt Consortium), licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Served by Eden Engine; not an official UniProt product.
Use it
Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.
Connect once and your AI can find and run this tool, and any other it needs.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "uniprotrest/search-proteins" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "uniprotrest/search-proteins" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "uniprotrest/search-proteins", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "uniprotrest/search-proteins", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.0026 |
- Updated
- Oct 20, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"query"
],
"properties": {
"size": {
"type": "integer",
"default": 10,
"maximum": 25,
"minimum": 1,
"description": "How many entries to return, 1 to 25. Defaults to 10."
},
"query": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "UniProt search query, Lucene-like, with AND, OR, NOT and field:value terms, for example gene_exact:BRCA1 AND organism_id:9606 AND reviewed:true. organism_id takes an NCBI taxon id (9606 is human); reviewed:true keeps curated Swiss-Prot entries only."
},
"fields": {
"type": "string",
"default": "accession,id,gene_names,protein_name,organism_name,length",
"pattern": "^[a-z0-9_]+(,[a-z0-9_]+){0,19}$",
"description": "Comma-separated UniProt return fields, no spaces, for example accession,id,gene_names,protein_name,organism_name,length,cc_function. Keep the list short: a full entry is large."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"genes": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"description": "Each has geneName.value and optional synonyms."
},
"organism": {
"type": "object",
"description": "scientificName, commonName, taxonId and lineage.",
"additionalProperties": true
},
"sequence": {
"type": "object",
"description": "`length` is the sequence length in amino acids.",
"additionalProperties": true
},
"entryType": {
"type": "string",
"description": "For example 'UniProtKB reviewed (Swiss-Prot)'."
},
"uniProtkbId": {
"type": "string",
"description": "The entry name, for example BRCA1_HUMAN."
},
"extraAttributes": {
"type": "object",
"additionalProperties": true
},
"primaryAccession": {
"type": "string",
"description": "The UniProtKB accession, for example P38398."
},
"proteinDescription": {
"type": "object",
"description": "recommendedName and alternativeNames, each with a fullName.value.",
"additionalProperties": true
}
},
"additionalProperties": true
},
"description": "Matching entries, each limited to the requested fields but keeping UniProt's nested structure."
}
},
"description": "The matching UniProtKB entries. `results` is empty when the query matches nothing.",
"additionalProperties": true
}