CtrlK
BlogDocsLog inGet started
Tessl Logo

ncbi-blast-skill

Submit, poll, and summarize NCBI BLAST Common URL API jobs (Blast.cgi) for nucleotide or protein sequences. Use when a user wants RID status, BLAST results, or compact top-hit summaries; fetch raw Text/JSON2 only on request.

76

Quality

93%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Operating rules

  • Use scripts/ncbi_blast.py for all concrete BLAST work.
  • Honor NCBI limits: >=10s between requests and >=60s between polls for the same RID.
  • Always surface the RID in the response so the job can be resumed or refetched later.
  • If the conversation is long or multiple tool calls have occurred, refetch from the RID instead of trusting older context.
  • If a prior turn saved raw output to disk, do not read it back into context unless the user asks for a specific follow-up.

Execution behavior

  • Return compact BLAST summaries first.
  • Do not paste full JSON2 or long Text alignments into chat by default.
  • Default to max_hits=5 and max_queries=5.
  • If the user asks for raw output, write it to a file and report the path.
  • Only provide Python code when the user explicitly asks for code or execution is unavailable.
  • For normal user-facing answers, summarize the script JSON in markdown; if the user explicitly asks for machine-readable output, return the JSON verbatim.

Input

  • The script reads one JSON object from stdin.
  • action must be one of submit, status, fetch, or run.
  • submit and run require program, database, query_fasta, and email (or NCBI_EMAIL).
  • status and fetch require rid.
  • program must be one of blastn, blastp, blastx, tblastn, or tblastx.
  • result_format defaults to json2 for run and fetch.
  • tool defaults to NCBI_TOOL, then ncbi-blast-skill.
  • max_hits defaults to 5; max_queries defaults to 5.
  • hitlist_size defaults to 50; descriptions and alignments default to 5.
  • wait_timeout_sec defaults to 900.
  • save_raw defaults to false.
  • If save_raw=true and raw_output_path is omitted, the script writes to /tmp/ncbi-blast-<rid>.<json|txt>.
  • query_fasta may contain multi-FASTA input; compact summaries still cap per-query output with max_hits and max_queries.

Output

  • Common success fields: ok, source, action, warnings.
  • submit returns rid, rtoe_seconds, and status="SUBMITTED".
  • status returns rid, normalized status, and has_hits.
  • run and fetch with result_format=json2 return rid, status, has_hits, result_format, query_count_returned, query_count_available, query_summaries_truncated, query_summaries, and raw_output_path.
  • Each query_summary contains query_title, hit_count_returned, hit_count_available, truncated, and top_hits.
  • Each top_hit contains rank, accession, title, evalue, and bit_score.
  • fetch with result_format=text returns text_head capped at 800 characters unless save_raw=true; when save_raw=true, it returns only the artifact path.
  • Failures return ok=false, error.code, error.message, and warnings.

Execution

  • Run python scripts/ncbi_blast.py.
  • If requests is missing, install it once before first use with python -m pip install requests.
echo '{"action":"run","program":"blastp","database":"swissprot","query_fasta":">q1\nMTEYK...","email":"you@example.com"}' | python scripts/ncbi_blast.py

References

  • Load references/blast-common-url-api.txt only for parameter details or uncommon BLAST options.
  • Do not load references/intent-notes.txt during normal skill execution; it is not runtime guidance.
Repository
openai/plugins
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.