Who can use this feature?
π€ Organizations Owners, Admins, and custom roles with the "Create Access Tokens" feature.
π© Available on the Essential, Classroom Pro, and Enterprise Plans.
Overview
ArborXR's MCP (Model Context Protocol) server lets you connect an AI assistant β like Claude, ChatGPT, Gemini, Cursor, or any MCP-compatible tool β to your ArborXR organization. Once connected, your assistant can answer questions about your fleet, content, deployments, and audit history in plain English, without you having to click through the Portal.
π‘ Your assistant inherits your permissions. MCP access is scoped to the user who created the token β it can only see and do what your ArborXR role allows. If your role can't view the audit log in the Portal, neither can your assistant. See What can my AI assistant access? for the full breakdown.
What you can ask your assistant
Once connected, your assistant can answer questions like:
"Which devices haven't checked in this week?"
"How many devices are running an outdated version of our training app?"
"Which apps are most used across my fleet?"
"Show me everything Alex did across the org last month."
"What apps and configurations are deployed to device X?"
"Which Wi-Fi network is each headset connected to?"
"What's the battery level and storage usage across my devices?"
"Where is device Y located right now?" (when device-location tracking is enabled for your organization)
You can ask in any language your assistant supports β English, French, Spanish, Japanese, etc.
Before you begin
You'll need:
An ArborXR organization on a plan that includes the MCP feature.
The Create Access Token permission in your organization. If you can see the Access Tokens page under Settings, you have it.
An MCP-compatible AI client. This guide walks through Claude as the worked example. We list other supported clients further down.
Steps
Step 1: Create a Personal Access Token
If you already have a personal access token issued to your user account β for example, one you previously created for the ArborXR API β you can reuse it for MCP. Skip ahead to Step 2. Any active token will work, provided your organization has the MCP feature enabled.
If you don't have a token yet:
In the ArborXR portal, open Settings β Access Tokens.
Click Create Access Token.
Give the token a descriptive name (e.g., "Claude on my laptop"). This helps you recognize and revoke it later.
Click Create.
Copy the token now. This is the only time the token will be shown. If you lose it, you'll need to create a new one.
Step 2: Connect Claude
These are the connection details every MCP client needs:
Server URL:
https://api.xrdm.app/mcpTransport: Streamable HTTP
Authorization header:
Authorization: Bearer YOUR_TOKEN
Pick the option below that matches how you use Claude.
Option A: Claude Code (terminal CLI, or the Claude Code panel inside Claude Desktop)
In a terminal, run the following command while replacing YOUR_TOKEN with your personal access token from step 1:
claude mcp add --scope user --transport http arborxr https://api.xrdm.app/mcp \ --header "Authorization: Bearer YOUR_TOKEN"
--scope user registers the server across all projects on your machine, including the Claude Code panel embedded in Claude Desktop.
Confirm it's connected:
claude mcp list
You should see arborxr listed with a connected status.
Option B: Claude Desktop chat surface
Claude Desktop's regular chat surface does not currently support remote HTTP MCP servers natively. To connect it to ArborXR, use mcp-remote, a small Node.js bridge that runs locally and forwards traffic to our HTTP server.
Requirements: Node.js installed (npx ships with it). Run which npx in a terminal to confirm and note the absolute path.
Edit your Claude Desktop config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add the following entry (or merge it into your existing mcpServers block):
{
"mcpServers": {
"arborxr": {
"command": "/absolute/path/to/npx",
"args": [
"-y",
"mcp-remote",
"https://api.xrdm.app/mcp",
"--header",
"Authorization: Bearer YOUR_TOKEN"
]
}
}
}Replace /absolute/path/to/npx with the path returned by which npx (e.g., /opt/homebrew/bin/npx on macOS with Homebrew). Restart Claude Desktop after saving the file.
Step 3: Try it out
Start a new chat with Claude and ask:
"List the devices in my ArborXR organization."
Claude should call the list_devices tool and respond with a list of your devices. That confirms the connection is working.
Connect multiple ArborXR organizations
If you belong to more than one ArborXR organization, you can connect each one as a separate MCP server. Tokens are scoped to a single organization, so each connection needs its own token and a unique connector name.
Create a Personal Access Token in each organization (repeat Step 1 while signed in to each).
Add one MCP connection per organization, giving each a distinct name. For example, in Claude Code:
claude mcp add --scope user --transport http arborxr-org1 https://api.xrdm.app/mcp \ --header "Authorization: Bearer TOKEN_FOR_ORG_1" claude mcp add --scope user --transport http arborxr-org2 https://api.xrdm.app/mcp \ --header "Authorization: Bearer TOKEN_FOR_ORG_2"
The same pattern applies to other clients β give each connection a unique title and pair it with the token for that organization.
π‘ When asking your assistant a question, mention which organization you mean (e.g., "List devices in org1") so it picks the right connector.
Use a different AI client
ArborXR works with any MCP-compatible client. The connection details are the same β the URL, the transport (streamable HTTP), and the bearer-token header. The only thing that changes is where you enter them.
Refer to the vendor's own setup docs for the exact steps in your client:
ChatGPT (Pro / Team / Enterprise) β OpenAI: Custom connectors
Codex CLI (OpenAI's terminal CLI) β OpenAI Codex documentation
Gemini CLI (Google's terminal CLI) β Gemini CLI: MCP servers
Cursor β Cursor: Model Context Protocol
Windsurf β Windsurf: MCP
Zed β Zed: MCP
For all of them you'll need the same three pieces of information:
Transport: HTTP (streamable)
Header:
Authorization: Bearer YOUR_TOKEN
What can my AI assistant access?
Your assistant can read the same data you can see in the Portal, governed by your organization role:
Area | Examples |
Devices | Names, serials, status, battery, Wi-Fi, OS version, storage, location, last-seen time |
Apps & content | Apps, files, videos, WebXR links, Wi-Fi networks, certificates |
Deployments | What's deployed to a device, install rollouts, version differences |
Configurations | Per-device kiosk mode, security settings, headset experience |
Identity | Users, groups, roles |
Audit log | Who did what across the org (IP addresses are visible only to Owner and Admin roles) |
Usage analytics | App-session totals, per-device session history, shared-app usage |
Organization | Plan, trial status, fleet counts |
π‘ Your token is user-scoped: it can only see and do what your user account is permitted to see and do. If a teammate without the View Audit Log permission creates their own MCP token, they will not be able to ask audit-log questions.
Manage or revoke a token
To rotate or revoke a token:
Go to Settings β Access Tokens.
Find the token by name in Your Personal Access Tokens.
Click the Delete action. The token stops working immediately.
We recommend deleting any token you no longer use β for example, when you decommission a laptop or stop using a particular AI tool.
Notes & important information
Rate limits. MCP requests share the same per-organization rate limit as ArborXR's public API (currently 2,000 requests per minute, per organization).
Tool availability follows your role. A user without the Device View permission, for instance, will not see device tools listed in their AI client.
Device-location data is only exposed when Device Location is enabled for your organization. The MCP server respects the same setting that drives the Portal map.
Troubleshooting
My assistant says "no tools available" or "MCP server failed to connect."
My assistant says "no tools available" or "MCP server failed to connect."
Double-check the URL:
https://api.xrdm.app/mcp(no trailing slash, no/api).Confirm the
Authorization: Bearer β¦header is set, with no extra whitespace.Confirm the token hasn't been deleted in the Portal.
My assistant says "some tools are missing."
My assistant says "some tools are missing."
Tool availability mirrors your role's permissions. If you can't see a particular feature in the Portal (e.g., audit log, analytics), the corresponding MCP tool will also be hidden.
My assistant returns no data, but I have devices.
My assistant returns no data, but I have devices.
Make sure you're asking about the correct organization. If you belong to multiple ArborXR organizations, your token only works for the organization where it was created β create a separate token per organization.
I'm getting "rate limit exceeded" errors.
I'm getting "rate limit exceeded" errors.
You're sharing a budget with any other API or MCP traffic in the same organization. If you hit this regularly, contact support to discuss your usage pattern.
Test your URL and token outside your AI client.
Test your URL and token outside your AI client.
If you can't tell whether the problem is with your MCP server connection or with your AI client, the MCP Inspector is a small browser-based tool that lets you connect to any MCP server, list its tools, and run a tool call by hand. If the Inspector connects successfully, the issue is in your AI client's configuration β not in your token or URL.

