mcpField
S
string-database

string-database

github.com/google-deepmindData & databases3.4k2.2k installsUpdated 5d ago
Repository

About string-database

string-database is a skill with a Python CLI wrapper for querying the STRING database. It supports protein identifier mapping, interaction and network queries, functional enrichment, and rank-based analysis.

Key features

  1. 01Maps common protein names to STRING IDs
  2. 02Finds protein interactions and network properties
  3. 03Queries homology and network images
  4. 04Runs pathway and functional enrichment
  5. 05Supports rank-based enrichment of datasets

Use cases

  1. 01Mapping gene names before querying STRING
  2. 02Exploring a protein interaction network
  3. 03Testing a dataset for pathway enrichment

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/google-deepmind/science-skills --skill string-database

After installing, type/string-databasein Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
citation.bib
enrichment.md
interactions.md
mapping.md
valuesranks.md
scripts/
string_cli.py

Details

From the project README

STRING Database Skill

This skill allows you to query the STRING database programmatically using a bundled Python CLI wrapper.

Prerequisites

  1. uv: Read the uv skill and follow its Setup instructions to ensure uv is installed and on PATH.
  2. User Notification: If .licenses/string_database_LICENSE.txt does not already exist in the workspace root directory then (1) prominently notify the user to check the terms at https://string-db.org/cgi/access, then (2) create the file recording the notification text and timestamp.

Core Rules

  1. MANDATORY: Ask for Species First: The STRING API requires NCBI Taxon IDs. You MUST NOT guess or assume a species. If the user does not explicitly state a species or Taxon ID, you MUST stop and ask: "Which species are you interested in? I need the NCBI Taxon ID to proceed." Even for well-known proteins like TP53, BRCA1, or MDM2 that are commonly associated with human studies, you MUST still ask — do not default to Human.
  2. Never print output to stdout: The --output <file.tsv> is required. Never read large outputs into context. Instead use jq, python or file operations (grep, head) to process large output.
  3. Map Identifiers first: If you only have common gene names (e.g., 'TP53'), map them to STRING IDs first as this guarantees much faster server responses. Use the map command for this.
  4. Notification: If this skill is used, ensure this is mentioned in the output.

Tool Execution

The CLI is at scripts/string_cli.py and should be run using uv run:

uv run scripts/string_cli.py <command> [options] --output /tmp/out.tsv

Feature Domains (Progressive Disclosure)

Read the following reference files based on the user's request:

  • Mapping Identifiers - Map common protein names to STRING IDs.
  • Interactions & Network - Find interacting proteins, network topologies, mediators, homology, and visual network images.
  • Enrichment & Functional Annotations - Analyze pathway enrichment (GO, KEGG, Pfam), PPI significance, or find all proteins associated with a specific term (e.g. Melanoma).
  • Values/Ranks Enrichment - Submit full experimental datasets (e.g., logFC, p-values) for rank-based enrichment analysis using the async background API.

To begin, read the reference file most appropriate to the current task to discover the correct CLI command.

Comments

Markdown supported