Complete reference for the CLI commands, MCP tools, and MCP resources.
biofinder_client.py <command> [args]
| Command | Arguments | Description |
|---|---|---|
find <name> |
Tool name (string) | Look up a tool by name |
search <query> |
Query string | Search by function or description |
versions <name> |
Tool name (string) | List all container versions for a tool |
list [n] |
Optional integer (default 50) | Browse available tools |
interactive |
— | Start interactive REPL |
./biofinder_client.py find fastqc
./biofinder_client.py find "bwa-mem2"- Case-insensitive.
- Tries
id,name,biotools, andbiocontainersfields from metadata. - Falls back to substring matching if no exact match.
- Handles hyphen/underscore variants automatically.
./biofinder_client.py search "quality control"
./biofinder_client.py search variant calling # quotes optional for multi-word- Scores all metadata records against your query.
- Returns results ranked by relevance score (highest first).
./biofinder_client.py versions samtools- Returns all versions sorted newest-first.
- Each entry includes CVMFS path, size in MB, and last-modified date.
./biofinder_client.py list
./biofinder_client.py list 200- Alphabetical, columnar output.
- Draws from both the metadata catalog and the container index, so includes tools that have containers but no metadata.
./biofinder_client.py interactiveStarts a REPL. Available commands inside interactive mode:
find <tool_name>
search <description>
versions <tool_name>
list [limit]
help
quit / exit
The server implements the Model Context Protocol and can be used by any MCP-compatible client (LLMs, workflow tools, etc.).
{
"name": "find_tool",
"inputSchema": {
"type": "object",
"properties": {
"tool_name": { "type": "string" }
},
"required": ["tool_name"]
}
}Returns: Formatted text containing tool metadata, latest container path, copy-pastable usage examples, and a summary of other available versions.
{
"name": "search_by_function",
"inputSchema": {
"type": "object",
"properties": {
"description": { "type": "string" },
"limit": { "type": "integer", "default": 3 }
},
"required": ["description"]
}
}Returns: Formatted text with a ranked list of matching tools, each with description, operations, latest container tag, and a quick-start command.
{
"name": "get_container_versions",
"inputSchema": {
"type": "object",
"properties": {
"tool_name": { "type": "string" }
},
"required": ["tool_name"]
}
}Returns: Formatted text listing every container version for the tool, sorted newest-first. Each entry shows version tag, CVMFS path, size (MB), and last-modified date.
{
"name": "list_available_tools",
"inputSchema": {
"type": "object",
"properties": {
"limit": { "type": "integer", "default": 50 }
},
"required": []
}
}Returns: Formatted text with an alphabetical list of tool names.
Resources are read via read_resource(uri).
| URI | MIME type | Content |
|---|---|---|
biocontainer://cache-info |
application/json |
generated_at, cvmfs_root, entry_count |
biocontainer://tool-list |
text/plain |
Newline-separated list of tool names (up to 1000) |
Tags follow the Bioconda build convention:
<version>--<build_string>
Examples:
0.12.1--hdfd78af_0 # version 0.12.1, build hash hdfd78af, build number 0
1.17--h00cdaf9_0 # version 1.17
3.0.1--h503566f_0 # version 3.0.1
When multiple containers exist for the same version (different build strings),
BioFinder sorts by the full tag string as a tiebreaker, so the "latest" shown may
not always be the numerically last build. Use versions to inspect all options.
All container paths follow this pattern:
/cvmfs/singularity.galaxyproject.org/all/<tool_name>:<tag>
Paths are valid when the CVMFS filesystem is mounted at
/cvmfs/singularity.galaxyproject.org. On systems without CVMFS, the paths will
not resolve — BioFinder does not validate path existence at query time.