The Latch Bio MCP connector routes your AI agent's tool calls to Latch Bio's own MCP server through Scalekit. Each user signs in to Latch Bio once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 9 tools.
- Tools
- 9
- What they doRead · write · destructive
- 8 · 1 · 08 read1 write0 destructive
- Users sign in with
- OAuth
- OAuth app
- Scalekit's or your own
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Latch Bio MCP connection
In AgentKit > Connections, create a Latch Bio MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Latch Bio MCP server, so you don't need to register an OAuth app.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'latchbiomcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Latch Bio MCP:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'latchbiomcp_list_executions',toolInput: { rationale: 'YOUR_RATIONALE' },})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "latchbiomcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Latch Bio MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={"rationale":"YOUR_RATIONALE"},tool_name="latchbiomcp_list_executions",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toollatchbiomcp_get_executionFetch the status, task nodes, and results for a workflow execution.Read-onlyGet Execution
Fetch the status, task nodes, and results for a workflow execution. If a workflow errors, use get_task_logs to retrieve logs for failed tasks. Supports paginating through execution nodes and map-task shards.
Inputs
execution_idintegerrequired- Latch execution id returned by launch_workflow.
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
execution_node_cursorstring- Opaque cursor from execution_nodes.next_cursor.
execution_node_limitinteger- Max execution nodes to return, from 1 to 500. Default 100.default
100 map_task_cursorstring- Opaque cursor from a previous map-task page. Requires map_task_execution_node_id.
map_task_execution_node_idstring- Optional execution node id whose map-task shard list should be paginated with map_task_cursor.
map_task_limitinteger- Max map-task shards to return per map execution node, from 1 to 500. Default 100.default
100 result_cursorstring- Opaque pagination cursor from a previous results.next_cursor.
result_limitinteger- Max result files to return, from 1 to 100. Default 25.default
25
latchbiomcp_get_fileReturn access information for a file stored in Latch Data.Read-onlyGet File
Return access information for a file stored in Latch Data. Returns either a Latch Console link or a presigned download URL depending on the access mode.
Inputs
pathstringrequired- Latch Data URL, for example `latch://3800.account/results/output.csv`.
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
accessstring- `console` returns a Console link. `download` returns a presigned file download URL.one of
consoledownloaddefaultconsole
latchbiomcp_get_task_logsFetch or share logs for a workflow task execution.Read-onlyGet Task Logs
Fetch or share logs for a workflow task execution. Returns bounded inline log lines by default, or a presigned download URL for full logs when mode is download_url.
Inputs
execution_idintegerrequired- Latch execution id.
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
array_attemptstring- Optional array task retry attempt.
array_indexstring- Optional array task index.
modestring- `inline` returns bounded log lines. `download_url` returns a presigned URL for downloading the full task log when available.one of
inlinedownload_urldefaultinline task_attemptstring- Optional task retry attempt.
task_idstring- Optional workflow task/node id. Required for mode='download_url' and usually available for standard tasks.
task_run_idstring- Optional process-style task run id.
latchbiomcp_get_workflow_schemaFetch the launch metadata and parameter schema for a workflow.Read-onlyGet Workflow Schema
Fetch the launch metadata and parameter schema for a workflow. Use this before launching a workflow to understand what parameters are required and their types.
Inputs
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
workflow_idintegerrequired- Latch workflow id.
latchbiomcp_list_executionsList workflow executions in a Latch workspace.Read-onlyList Executions
List workflow executions in a Latch workspace. Supports filtering by workflow IDs, execution status, and name. Use get_execution for full details on a specific execution.
Inputs
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
limitinteger- Max executions to return, from 1 to 100. Default 25.default
25 name_filterstring- Optional display-name substring filter.
offsetinteger- Row offset for pagination. Default 0.default
0 statusesstring- Optional execution statuses to restrict results to.
workflow_idsstring- Optional workflow ids to restrict results to.
workspace_idstring- Optional workspace/account id whose executions should be listed. Defaults to the user's default workspace. Leave null unless the user asks to use a specific workspace.
latchbiomcp_list_filesList the immediate contents of a directory in Latch Data (ldata).Read-onlyList Files
List the immediate contents of a directory in Latch Data (ldata). Returns children only — does not recurse. Hidden and removed nodes are filtered out, matching what users see in the Latch console. Supports cursor-based pagination.
Inputs
pathstringrequired- Latch Data URL, for example `latch://3800.account/dir1/foo`.
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
cursorstring- Opaque pagination cursor from a previous response's `next_cursor`.
limitinteger- Max entries to return per call (1-1000). Default 100.default
100
latchbiomcp_list_workflowsDiscover available bioinformatics workflows on Latch.Read-onlyList Workflows
Discover available bioinformatics workflows on Latch. Lists workspace-specific workflows first, followed by public workflows. Supports text search and cursor-based pagination.
Inputs
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
cursorstring- Opaque pagination cursor from a previous response's `next_cursor`.
limitinteger- Max workflows to return, from 1 to 100. Default 25.default
25 search_termstring- Optional case-insensitive display-name substring filter.
workspace_idstring- Optional workspace/account id. Defaults to the user's default workspace when omitted. Leave null unless the user asks to use a specific workspace.
latchbiomcp_list_workspacesLists Latch workspaces the current user can access.Read-onlyList Workspaces
Lists Latch workspaces the current user can access. Returns the default workspace ID and a list of all accessible workspaces with their IDs and display names. If default_workspace_id is null, the user has not finished account setup.
Inputs
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
latchbiomcp_launch_workflowLaunch a bioinformatics workflow on Latch.WriteLaunch Workflow
Launch a bioinformatics workflow on Latch. Use get_workflow_schema first to discover required parameters. Returns an execution ID for monitoring progress with list_executions and get_execution.
Inputs
parametersobjectrequired- Parameter values matching the workflow schema from get_workflow_schema.
rationalestringrequired- Always provide a brief explanation of why you are calling this tool
workflow_idintegerrequired- Workflow id to launch.
regionstring- AWS region for workflow runtime placement. Options: us-west-2, us-east-1, eu-central-1, eu-west-1.
src_execution_idstring- Optional previous execution id to relaunch from. Use only when intentionally reusing the previous execution's runtime storage/intermediate state. Omit for a normal fresh run.
workspace_idstring- Optional workspace/account id that should own the execution. Defaults to the user's default workspace. Leave null unless the user asks to use a specific workspace.
No tools match.