Skip to content

MCP Integration

The Model Context Protocol (MCP) is an open standard that enables AI applications to connect to any external tool or data source without custom integration for every service.

What is MCP?

MCP is a standard interface for exposing tools and data. A server that implements it connects to Backend.AI GO without changes to the app. You can think of it as a USB port for AI.

Why use MCP?

  • Extensibility: Connect the AI to your proprietary databases, local Slack, specialized APIs, or your own custom scripts.
  • Community Ecosystem: Use a wide range of open-source MCP servers developed by the community.
  • Standardization: One protocol to rule them all—once you set up an MCP server, it works across any MCP-compatible AI client.

Connecting MCP Servers

Backend.AI GO connects to MCP servers in two ways: as a local process (stdio), or over the network to a remote server.

Local process

  1. Navigate to Settings > Tools & extensions.
  2. Click Add server. The server form opens in place of the list.
  3. Enter a name for the server.
  4. Leave Transport set to Local process.
  5. Specify the command (e.g., node, python, npx). Any other program needs your approval first; see Commands that need approval.
  6. Add any required arguments or environment variables (like API keys).
  7. Click Add at the top of the form. You return to the list, with the new server in it.
  8. Click Connect on the server.

Commands that need approval

A local server starts without an extra step when its command is one of the built-in package runners and interpreters: npx, node, npm, yarn, pnpm, bunx, bun, python, python3, uvx, uv, pipx, poetry, deno, or cargo. Only the file name is compared, so a full path such as /opt/homebrew/bin/uvx counts as uvx.

Any other program, such as a CLI you installed yourself (open-computer-use mcp, for example), runs only after you approve it in the desktop app. When you click Connect, the app shows the full command line: the command, the program file it resolves to, the arguments, and the names of the environment variables the server sets. Variable values are never shown. Click Allow and connect to approve the program and connect, or Cancel to leave the server unconnected.

The approval is bound to that file. The app records the absolute path the command resolves to and a SHA-256 hash of the file, checks both every time the server starts, and then runs that checked file instead of looking the name up again. If the program is updated or replaced, or the name resolves to a different path (for example after you change PATH in the server's environment variables), the app asks again. An approval does not relax the other checks: arguments containing shell metacharacters and environment variables such as LD_PRELOAD are still rejected. For a script, such as a Node or Python entry point, the hash covers the script file itself and not the files it loads.

Approved programs are listed under Approved commands on the same settings page. Click Revoke and confirm to remove one. Servers running it are disconnected, and the next connection asks again. Approvals are saved with the MCP server configuration, in mcp_command_approvals.json next to mcp_servers.json, so they survive a restart.

Only the person using the desktop app can approve a program. A server registered through the Management API or the aigo CLI still needs that approval before it runs, and no API endpoint grants one. A plugin bundle does not register a server whose command is outside the built-in list. The headless server (aigo-server) never uses approvals and runs only the built-in list. An organization can turn approvals off with the tools.allowUserApprovedMcpCommands policy setting (see Enterprise policy), and then only the built-in list runs on the desktop as well.

Remote server

  1. Navigate to Settings > Tools & extensions.
  2. Click Add server. The server form opens in place of the list.
  3. Enter a name for the server.
  4. Set Transport to Streamable HTTP. Choose HTTP+SSE only for a server that does not support Streamable HTTP; it is the older transport and is being retired.
  5. Enter the server URL, for example https://mcp.example.com/mcp.
  6. If the server needs authentication, enter the token. It is sent as a bearer token, stored in the system keychain, and never shown again.
  7. Add extra request headers if the server needs them, one Name: value pair per line.
  8. Click Add at the top of the form. You return to the list, with the new server in it.
  9. Click Connect on the server.

A server running on your own machine, such as http://127.0.0.1:3000/mcp, works without any extra configuration. Any other address must pass the same network rules as the rest of the app, so on a managed installation the host has to be in the organization's allowed list.

The CLI registers the same remote configuration through the Management API. Use streamable_http for a current server or sse for a legacy HTTP+SSE server:

export AIGO_MCP_TOKEN='<token>'
aigo mcp add hosted-tools \
  --transport streamable_http \
  --url https://mcp.example.com/mcp \
  --header 'X-Tenant: acme'
aigo mcp connect hosted-tools
aigo mcp tools hosted-tools

You can pass the credential with --token instead of AIGO_MCP_TOKEN. The Management API validates the URL and headers, moves the token into the system keychain, and writes only the non-secret server fields to mcp_servers.json.

Request timeout

Each request to a server, tool calls included, has 30 seconds to be answered by default. A tool that runs an agent loop or a long search can need more. Set Request timeout (seconds) in the server's form to any value from 1 to 3600; leave it empty to keep the default. The value applies to that server only.

From the command line, pass --timeout <SECS> to aigo mcp add. Over the REST API, send requestTimeoutSecs in the body of POST /api/v1/mcp/servers or PUT /api/v1/mcp/servers/{id}. A value outside 1 to 3600 is rejected with 400.

Managing MCP Tools

Once connected, the tools provided by the MCP server will automatically appear in your Cowork Settings.

  • You can toggle individual MCP servers on or off.
  • The Agent will treat MCP tools just like built-in tools, including full permission and approval support.
  • You can see the list of discovered tools by clicking "Details" on a connected MCP server.

For a list of popular MCP servers, visit the MCP Server Directory.