deploy_tool when it runs against Modal, where you deploy
tools yourself. They are grouped below by what the agent is doing: checking the workspace,
discovering a tool, inspecting its contract, running it, and deploying one that is not available
yet.
Large outputs such as predicted structures and embeddings are written to disk and returned as
file paths rather than inline, so a result never floods the agent’s context.
MCP calls these functions tools, and a client such as Claude Code lists them under that name.
This page calls them functions so they stay distinct from the bioinformatics tools they operate
on, which is the sense
tool_key and list_tools already use.tool_key that matches nothing is returned as a result rather than an error, carrying
did_you_mean suggestions and a reminder that keys take the form <model>-<action>, so an agent
can correct itself without the call failing.
Workspace
The backend the server resolved, and how it is configured.workspace_info() Source
Reports which backend the server resolved. On Modal it also reports the workspace and environment
calls go to, how many apps are deployed, and whether Modal credentials are present.Takes no parameters.
Discover
Finding a tool in the catalog.list_tools() Source
Lists the available tools. On Modal this defaults to the tools deployed in the workspace; on
local every registered tool is available.boolean
default:"true"
Restrict to tools actually deployed in this workspace. Pass
false to see the full catalog,
including tools that would have to be deployed first.search_tools() Source
Inspect
A tool’s typed contract: its schemas, an example input, and its citation.get_tool_schema() Source
Returns the input, config, and output schemas for a tool. Arguments are validated strictly against
them, and unknown fields are rejected.
string
required
The tool to describe.
get_tool_example() Source
Returns a known-good example input for a tool, or null when the tool declares none. Bulky values
such as structure coordinates are elided, so the result shows the shape rather than a runnable
payload.
string
required
The tool to fetch an example for.
get_tool_citation() Source
Returns the BibTeX citation and DOI for the method a tool implements.
string
required
The tool to fetch a citation for.
Run
Executing a tool and returning its result.run_tool() Source
Runs a tool and blocks until it finishes. Most tools return in seconds once warm; the first call
after a few minutes idle pays a container start and a model load, and some tools, such as binder
design and diffusion, run for many minutes.
string
required
The tool to run.
object
The tool’s input model. Validated strictly against its schema.
object
The tool’s config model.
string
default:"./proto_tools_outputs"
Directory large output fields are written into.
boolean
default:"false"
Run the tool’s canonical example input without supplying it.
string
Override the server’s backend for this call alone —
"local", "modal", or "proto".
Omit it to use the backend the server was started with.Deploy
Provisioning a tool on Modal. Not registered on the local backend, which has nothing to deploy.deploy_tool() Source
Deploys the Modal app serving a tool. The deployment builds a container image and then executes
the tool once, on a GPU where the tool requires one. Both are billed to your own Modal account,
and both occur before any result is returned. The operation may take several minutes, and progress
is reported as the build advances through its phases.
string
required
The tool to deploy.
string
required
The target Modal environment. Required rather than inherited, so an accidental deployment to
production is not possible.
Next Steps
Installation
Install the extra, register the server, and select a backend.
Modal Integration
How the server uses Modal, and the confirmation step behind
deploy_tool.Tools
The catalog these tools operate over, with per-tool reference pages.
Quickstart
The same Input plus Config to Output contract, from Python.