Skip to content

MCP servers

Hive speaks Model Context Protocol — the spec for LLM tool servers Anthropic standardized. Each MCP server is a separate process that exposes named tools the agent can call.

Use MCP when you want to:

  • Surface a new tool to your agents (file-system, HTTP, database, proprietary internal API).
  • Share a tool set across many agents and workspaces.
  • Run a long-lived tool process separately from Hive.

Don't use MCP when:

  • You want a whole agent (use a subprocess runtime instead — see BYO agents).
  • The tool is one of Hive's built-ins (file ops, git, shell — those ship in the box).

Configuration

[[mcp_servers]]
id = "filesystem"
transport = "stdio"
command = "/usr/local/bin/mcp-filesystem"
arguments = ["--workspace", "."]
autoload = true
allowed_in_runtimes = ["anthropic", "openai"]

Or HTTP:

[[mcp_servers]]
id = "github"
transport = "http"
endpoint = "https://mcp.example.com"
auth_token_env = "GITHUB_MCP_TOKEN"
autoload = false
Field What
id Workspace-unique identifier
transport stdio or http
command / arguments For stdio — Hive spawns it
endpoint / auth_token_env For HTTP — Hive talks to it
autoload Connect on workspace open
allowed_in_runtimes Empty = all; otherwise restrict

Install from the internet

You don't have to hand-edit TOML. Settings → MCP Servers → Install from the internet fetches a server's JSON manifest and adds it to a per-workspace catalog (.hive/mcp-servers.json). Accepted references:

https://raw.githubusercontent.com/owner/repo/main/server.json
https://github.com/owner/repo/blob/main/server.json   # blob URLs become raw
owner/repo/path/server.json                            # shorthand, ref defaults to main

The manifest can be a flat object or the Claude-desktop shape:

{ "id": "git", "transport": "stdio", "command": "uvx", "args": ["mcp-server-git"] }
{ "mcpServers": { "git": { "command": "uvx", "args": ["mcp-server-git"] } } }

An http server uses url (or endpoint) instead of command:

{ "name": "remote", "url": "https://mcp.example/sse" }

Install is inert — enabling launches it

Installing never runs anything

A freshly installed server is disabled. Hive does not touch its command or endpoint until you flip Enable. Enabling is the step that launches a stdio command or connects to an endpoint — only enable servers you trust. Per-tool trust (below) still gates individual calls.

Enabling adds the server to the chat's workspaceMCPServers allowlist and registers it with the live runtime so its tools connect. Disabling reverses both; Remove deletes it from the workspace catalog.

Remote MCP servers (OAuth)

Beyond stdio and static-token http servers, Hive speaks the modern Streamable-HTTP transport with OAuth 2.1 + PKCE — for hosted MCP services that authenticate you in the browser and hand back short-lived, auto-refreshing tokens. There's a one-click Add Linear (issues) preset and a per-server Connect button that runs the browser flow (loopback redirect http://127.0.0.1:51736/callback).

See Linear & remote MCP servers (OAuth) for the full walkthrough, including creating a Linear OAuth app and the /linear composer command.

Health & status

The wrench glyph in the workspace bar shows MCP connectivity:

  • Green: all configured servers connected.
  • Warm tint: some connected, some failed.
  • Gray: none configured.

Click the wrench to open the Tools pane and inspect per-server status + per-tool toggles.

Trust per tool

The Tools pane lets you disable individual MCP tools per chat. If an MCP server exposes 30 tools and your agent only needs 3, turn the rest off. The trust state lands as an event in the workspace log so peers see the same settings.