Skip to main content
Sign in to Arbor CloudSign in
Browse guidesMCP integration

Local engine / MCP integration

Connect your MCP client

Connect the local Arbor bridge to Claude Code, Cursor or VS Code, see what your client receives, and check which local ports the bridge opens.

On this page

Prepare the project

Install Arbor, make sure your editor can find its executable, and index the project first.

Terminal
cd your-project
arbor setup
arbor bridge --help

The stdio bridge is launched by your MCP client. The client and its model may receive the graph context returned by tools; their handling of that context follows the client's own settings and policies.

Claude Code

From the project root, register a project-scoped server. This requires the Claude Code CLI to be installed.

Claude Code CLI
claude mcp add --transport stdio --scope project arbor -- arbor bridge
claude mcp list

Open the client's MCP controls to confirm that Arbor is connected and approve the project configuration if prompted by the client.

arbor hook claude is a separate step. It does not register the MCP server. It adds project instructions, command permissions and the hooks that write a receipt after each turn.

Cursor

Add the arbor entry to .cursor/mcp.json in your project. Preserve any existing servers. Replace the example absolute path with the project to index.

.cursor/mcp.json
{
  "mcpServers": {
    "arbor": {
      "type": "stdio",
      "command": "arbor",
      "args": ["bridge", "/absolute/path/to/your-project"]
    }
  }
}

Reload the MCP server in Cursor. On Windows, a path such as C:/code/your-project avoids backslash escaping in JSON.

VS Code

VS Code uses a different top-level key. Add the server to .vscode/mcp.json and replace the project path.

.vscode/mcp.json
{
  "servers": {
    "arbor": {
      "type": "stdio",
      "command": "arbor",
      "args": ["bridge", "/absolute/path/to/your-project"]
    }
  }
}

Use VS Code's MCP server controls to start the server and inspect its output. If the client cannot resolve arbor, use the executable's full path in command.

A useful first conversation

Ask the assistant to build context in small steps: orient, locate, trace, then read the source.

Example prompt
Use Arbor to get a map of this repository.
Find the function that parses input files.
Inspect its callers and callees, then read the relevant source
before proposing a change. Tell me what the graph cannot resolve.
get_map
Start with a ranked project outline.
search_symbols
Locate candidate symbols, then verify their file and identity.
get_callers / get_callees
Follow direct relationships around the selected symbol.
get_file_graph
Inspect the graph for a relevant source file.
analyze_impact
Explore affected graph nodes before an edit.

The v3.0.3 bridge offers 16 tools, including list_entry_points, find_path and explain_symbol. The tools above cover a first pass. Let the client read the full list and schemas from the server you installed.

If it does not connect

Confirm that the configured executable exists, the project path is correct, and arbor setup has completed there. Read the client's MCP logs and restart the server after updating the executable or configuration.

Starting arbor bridge directly opens a protocol process, so it can wait silently for client messages. It is not an interactive chat prompt. More checks are in troubleshooting.

These instructions use the local stdio transport and need no Arbor Cloud account or hosted endpoint. While it runs, the bridge also opens local ports.

What the bridge opens on your machine

With the stdio setup above, the client talks to the bridge through its standard input and output. The bridge also listens on local ports:

127.0.0.1:7433
A WebSocket RPC server. Every arbor bridge starts it.
127.0.0.1:8081
A WebSocket sync server that streams graph updates, started alongside the RPC server.
127.0.0.1:3333
MCP over HTTP, only with arbor bridge --http; --port changes the port.

These ports listen only on your own machine, and the bridge stops when your MCP client quits it.

Continue withReceipts