blast_sequence
Performs BLAST sequence-similarity searches against NCBI databases, submitting queries and polling for results to return top hits.
Instructions
Run a BLAST sequence-similarity search against NCBI BLAST URLAPI. Async Put/Get under the hood — submits the query, polls the RID (honoring NCBI's per-RID 60s floor), and returns the parsed top hits + raw text report excerpt. Programs: blastn / blastp / blastx / tblastn / tblastx. Database defaults to swissprot for protein programs, core_nt for nucleotide. Emits notifications/progress on each poll. Long searches (>10 min) raise [NotFoundError] with the RID preserved so the client can re-poll. Set PLANT_GENOMICS_MCP_NCBI_EMAIL to identify the request per NCBI etiquette.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sequence | Yes | Raw or FASTA-formatted query sequence. | |
| program | No | BLAST program — default blastp. | blastp |
| database | No | NCBI BLAST database slug (e.g. swissprot, core_nt, refseq_protein). Defaults to swissprot for protein programs and core_nt for nucleotide programs. | |
| hitlist_size | No | Max hits to return (default 10). | |
| expect | No | E-value threshold (default 10). | |
| megablast | No | Enable megablast (blastn only). Default false. | |
| poll_interval | No | Seconds between polls. Clamped up to NCBI's per-RID 60s floor. | |
| max_wait | No | Max seconds to wait for the search to finish before raising NotFoundError with the RID preserved (default 600). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| rid | Yes | NCBI BLAST request ID — re-usable via fetch_result() | |
| program | Yes | blastn | blastp | blastx | tblastn | tblastx | |
| database | Yes | NCBI BLAST database, e.g. swissprot, core_nt | |
| status | Yes | Always "READY" when this object is returned | |
| hitCount | Yes | Number of rows parsed from the alignment summary | |
| hits | Yes | Top alignments, sorted by BLAST default order | |
| raw_report_excerpt | Yes | First 50 KB of the FORMAT_TYPE=Text report | |
| raw_report_truncated | Yes | True if the upstream report exceeded the cap | |
| elapsed_seconds | Yes | Wall-clock from submit to READY |