Latch Bio connector
OAuth 2.1/DCR AIDeveloper ToolsLatch Bio is a cloud bioinformatics platform for running computational biology workflows. Its MCP server lets AI agents list and retrieve files, manage...
Latch Bio connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set 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> -
Set up the connector
Section titled “Set up the connector”Register your Latch Bio credentials with Scalekit so it handles the token lifecycle. You do this once per environment.
Dashboard setup steps
Register your Firecrawl API key with Scalekit so it can authenticate and proxy scraping requests on behalf of your users. Latch Bio uses API key authentication — there is no redirect URI or OAuth flow.
-
Get a Firecrawl API key
- Go to firecrawl.dev and sign in or create a free account.
- Your API key is shown on the Overview page under API Key. Copy it — it starts with
fc-.
-
Create a connection in Scalekit
- In the Scalekit dashboard, go to AgentKit → Connections → Create Connection.
- Search for Latch Bio and click Create.
- Note the Connection name — use this as
connection_namein your code (e.g.,latchbiomcp).
-
Add a connected account
Connected accounts link a specific user identifier in your system to a Firecrawl API key. Add them via the dashboard for testing, or via the Scalekit API in production.
Via dashboard (for testing)
- Open the connection and click the Connected Accounts tab → Add account.
- Fill in Your User’s ID and API Key, then click Save.
Via API (for production)
await scalekit.actions.upsertConnectedAccount({connectionName: 'latchbiomcp',identifier: 'user_123',credentials: { token: 'fc-...' },});scalekit_client.actions.upsert_connected_account(connection_name="latchbiomcp",identifier="user_123",credentials={"token": "fc-..."})
-
-
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_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:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'latchbiomcp_list_executions',toolInput: { rationale: 'YOUR_RATIONALE' },})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_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:", 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)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Get execution, file, task logs — Fetch the status, task nodes, and results for a workflow execution
- Workflow launch — Launch a bioinformatics workflow on Latch
- List executions, files, workflows — List workflow executions in a Latch workspace
Common workflows
Section titled “Common workflows”Scrape a page
Use latchbiomcp_firecrawl_scrape to extract clean markdown content from any URL.
const result = await actions.executeTool({ connectionName: 'latchbiomcp', identifier: 'user_123', toolName: 'latchbiomcp_firecrawl_scrape', toolInput: { url: 'https://docs.example.com/getting-started', onlyMainContent: true, },});console.log(result.data);result = actions.execute_tool( connection_name="latchbiomcp", identifier="user_123", tool_name="latchbiomcp_firecrawl_scrape", tool_input={ "url": "https://docs.example.com/getting-started", "onlyMainContent": True, },)print(result.data)Search the web
Use latchbiomcp_firecrawl_search to run a live web search and get scraped content from the top results.
const result = await actions.executeTool({ connectionName: 'latchbiomcp', identifier: 'user_123', toolName: 'latchbiomcp_firecrawl_search', toolInput: { query: 'best practices for API rate limiting 2026', limit: 5, },});console.log(result.data);result = actions.execute_tool( connection_name="latchbiomcp", identifier="user_123", tool_name="latchbiomcp_firecrawl_search", tool_input={ "query": "best practices for API rate limiting 2026", "limit": 5, },)print(result.data)Extract structured data from a URL
Use latchbiomcp_firecrawl_extract with a natural-language prompt and optional JSON Schema to pull structured data from one or more pages.
const result = await actions.executeTool({ connectionName: 'latchbiomcp', identifier: 'user_123', toolName: 'latchbiomcp_firecrawl_extract', toolInput: { urls: ['https://example.com/pricing'], prompt: 'Extract all pricing plan names and their monthly costs.', },});console.log(result.data);result = actions.execute_tool( connection_name="latchbiomcp", identifier="user_123", tool_name="latchbiomcp_firecrawl_extract", tool_input={ "urls": ["https://example.com/pricing"], "prompt": "Extract all pricing plan names and their monthly costs.", },)print(result.data)Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
latchbiomcp_get_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. 9 params
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.
execution_id integer required Latch execution id returned by launch_workflow. rationale string required Always provide a brief explanation of why you are calling this tool execution_node_cursor string optional Opaque cursor from execution_nodes.next_cursor. execution_node_limit integer optional Max execution nodes to return, from 1 to 500. Default 100. map_task_cursor string optional Opaque cursor from a previous map-task page. Requires map_task_execution_node_id. map_task_execution_node_id string optional Optional execution node id whose map-task shard list should be paginated with map_task_cursor. map_task_limit integer optional Max map-task shards to return per map execution node, from 1 to 500. Default 100. result_cursor string optional Opaque pagination cursor from a previous results.next_cursor. result_limit integer optional Max result files to return, from 1 to 100. Default 25. latchbiomcp_get_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. 3 params
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.
path string required Latch Data URL, for example `latch://3800.account/results/output.csv`. rationale string required Always provide a brief explanation of why you are calling this tool access string optional `console` returns a Console link. `download` returns a presigned file download URL. latchbiomcp_get_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. 8 params
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.
execution_id integer required Latch execution id. rationale string required Always provide a brief explanation of why you are calling this tool array_attempt string optional Optional array task retry attempt. array_index string optional Optional array task index. mode string optional `inline` returns bounded log lines. `download_url` returns a presigned URL for downloading the full task log when available. task_attempt string optional Optional task retry attempt. task_id string optional Optional workflow task/node id. Required for mode='download_url' and usually available for standard tasks. task_run_id string optional Optional process-style task run id. latchbiomcp_get_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. 2 params
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.
rationale string required Always provide a brief explanation of why you are calling this tool workflow_id integer required Latch workflow id. latchbiomcp_launch_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. 6 params
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.
parameters object required Parameter values matching the workflow schema from get_workflow_schema. rationale string required Always provide a brief explanation of why you are calling this tool workflow_id integer required Workflow id to launch. region string optional AWS region for workflow runtime placement. Options: us-west-2, us-east-1, eu-central-1, eu-west-1. src_execution_id string optional 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_id string optional 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. latchbiomcp_list_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. 7 params
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.
rationale string required Always provide a brief explanation of why you are calling this tool limit integer optional Max executions to return, from 1 to 100. Default 25. name_filter string optional Optional display-name substring filter. offset integer optional Row offset for pagination. Default 0. statuses string optional Optional execution statuses to restrict results to. workflow_ids string optional Optional workflow ids to restrict results to. workspace_id string optional 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_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. 4 params
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.
path string required Latch Data URL, for example `latch://3800.account/dir1/foo`. rationale string required Always provide a brief explanation of why you are calling this tool cursor string optional Opaque pagination cursor from a previous response's `next_cursor`. limit integer optional Max entries to return per call (1-1000). Default 100. latchbiomcp_list_workflows
#
Discover available bioinformatics workflows on Latch. Lists workspace-specific workflows first, followed by public workflows. Supports text search and cursor-based pagination. 5 params
Discover available bioinformatics workflows on Latch. Lists workspace-specific workflows first, followed by public workflows. Supports text search and cursor-based pagination.
rationale string required Always provide a brief explanation of why you are calling this tool cursor string optional Opaque pagination cursor from a previous response's `next_cursor`. limit integer optional Max workflows to return, from 1 to 100. Default 25. search_term string optional Optional case-insensitive display-name substring filter. workspace_id string optional 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_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. 1 param
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.
rationale string required Always provide a brief explanation of why you are calling this tool