ncbi-blast-skill

Submit, poll, and summarize NCBI BLAST sequence search jobs via the Common URL API.

5.3k|765|Updated Mar 4, 2026
One-click install
npx skills add https://github.com/openai/plugins --skill ncbi-blast-skill
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ncbi-blast-skill
Source: https://github.com/openai/plugins/tree/main/plugins/life-science-research/skills/ncbi-blast-skill
Command: npx skills add https://github.com/openai/plugins --skill ncbi-blast-skill

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires requests, and includes scripts (resource) and references (resource) components.

What problem does it solve?

Running BLAST searches against NCBI servers requires managing asynchronous job submission, RID-based polling, rate limits, and parsing large JSON2 or Text result payloads. This Skill handles the full workflow and returns compact top-hit summaries instead of raw output.

Core Features & Use Cases

  • Job Submission and Polling: Submit nucleotide or protein queries with blastn, blastp, blastx, tblastn, or tblastx, then check RID status or run end-to-end with automatic polling that respects NCBI rate limits.
  • Compact Result Summaries: Parse JSON2 responses (including ZIP archives) into capped top-hit tables with accession, title, e-value, and bit score, keeping raw output on disk only when requested.
  • Use Case: A researcher pastes a protein FASTA sequence and asks for the top matches in Swiss-Prot; the Skill submits the job, polls until ready, and returns the five best hits with e-values while saving the full JSON2 to a file.

Quick Start

Ask the assistant to run a BLAST search, for example: run a blastp search of this protein sequence against the swissprot database and show me the top five hits.

Frequently Asked Questions about ncbi-blast-skill

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run a BLAST search against NCBI from the command line?

Pipe a JSON object with action run, program, database, query_fasta, and email into the ncbi_blast.py script via stdin. It submits the job, polls until ready, and prints a compact JSON summary of top hits.

How do I check the status of an NCBI BLAST job by RID?

Send a JSON payload with action set to status and the rid field to the script. It queries Blast.cgi with FORMAT_OBJECT=SearchInfo and returns a normalized status of WAITING, READY, FAILED, or UNKNOWN plus a has_hits flag.

What BLAST programs and databases does the NCBI Common URL API support?

The script supports blastn, blastp, blastx, tblastn, and tblastx against any NCBI database name such as core_nt or swissprot. Megablast can be enabled for blastn by setting megablast to true.

What are the NCBI BLAST API rate limits?

NCBI requires at least 10 seconds between requests and at least 60 seconds between polls for the same RID, with tool and email parameters identifying the client. The script enforces these intervals automatically with a built-in throttle.

Why does my BLAST fetch return FAILED or UNKNOWN status?

FAILED means the job errored on NCBI servers, while UNKNOWN means the RID expired or is invalid. In both cases the script returns ok=false with an error code, and you must resubmit the search to get a new RID.