Skip to main content

Connect UbiTools to an MCP Client

UbiTools is exposed as an MCP server at:

https://mcp.tools.unibiointelligence.com/mcp

The server requires authentication via Supabase OAuth. MCP clients that support remote authenticated servers (Claude Desktop, ChatGPT custom connectors, Cursor) handle the consent flow automatically on first connect.

Claude Desktop

Add UbiTools to claude_desktop_config.json alongside any other servers:

{
"mcpServers": {
"ubi-tools": {
"url": "https://mcp.tools.unibiointelligence.com/mcp",
"transport": { "type": "http" }
}
}
}

Restart Claude Desktop. On first use, Claude will open a browser window to complete the Supabase sign-in. Subsequent sessions reuse the stored token.

To run both UbiMCP and UbiTools, see the combined example in Connect Claude Desktop.

ChatGPT custom connector

  1. Settings -> Connectors -> Add custom connector.
  2. Name: UbiTools.
  3. URL: https://mcp.tools.unibiointelligence.com/mcp.
  4. Authentication: OAuth (ChatGPT will discover the Supabase OAuth endpoints automatically).
  5. Save, then enable in a conversation.

OpenAI Agents SDK

from agents import Agent, Runner
from agents.mcp import MCPServerStreamableHttp

async with MCPServerStreamableHttp(
params={
"url": "https://mcp.tools.unibiointelligence.com/mcp",
"headers": {"Authorization": f"Bearer {access_token}"},
},
name="ubi-tools",
) as ubi_tools:
agent = Agent(
name="antibody-engineer",
instructions=(
"You design antibodies. Use UbiTools to number, humanize, "
"and predict structures. Confirm sequence inputs before "
"submitting compute-heavy jobs."
),
mcp_servers=[ubi_tools],
)
result = await Runner.run(
agent,
"Number this VH chain and identify CDRs: EVQLVESGGGLVQPGG...",
)
print(result.final_output)

The access_token is a Supabase session token obtained from the UbiBiologics web app or via the Supabase JS or Python client. It is a standard JWT signed with the project's HS256 secret.

Anthropic SDK

from anthropic import Anthropic

client = Anthropic()
response = client.messages.create(
model="claude-opus-4-5",
max_tokens=4096,
mcp_servers=[{
"type": "url",
"url": "https://mcp.tools.unibiointelligence.com/mcp",
"name": "ubi-tools",
"authorization_token": access_token,
}],
messages=[{
"role": "user",
"content": "Predict the structure of this nanobody: QVQLVESGGGLVQAGG...",
}],
)

Self-hosting

The UbiTools MCP server is open source and can be self-hosted. Configure your own Supabase project for auth, set SUPABASE_URL and SUPABASE_JWT_SECRET, and run the FastMCP server. See ubi-tools/servers/mcp-server in the repository.

Troubleshooting

Browser does not open for sign-in. Some terminal-based clients cannot initiate the browser flow. Sign in once at https://biologics.unibiointelligence.com, obtain a token, and pass it explicitly via the client's headers option.

401 Unauthorized after sign-in. The Supabase token has expired. Reconnect from your client to refresh.

A tool call times out. Compute jobs can run for minutes. The MCP server streams progress updates while waiting. If your client closes the connection too early, reconnect and retry the call.