Skip to main content

Connect Your AI Application

This page walks you through connecting an AI application to DisplayNet Connect. DisplayNet Connect is built into DisplayNet, so there is nothing to install on the server side. Find your AI application below and follow the steps.

Before you start

You need the same credentials you use to log into DisplayNet Manager:

WhatReplace WithNotes
Server IP addressYour server's IP addressFind this in DisplayNet Manager under Settings > Network, or ask your network administrator
UsernameYour DisplayNet Manager loginThe same username you type when logging into the web interface
PasswordYour DisplayNet Manager passwordThe same password you type when logging into the web interface
MCP portUsually 7050Only change this if your administrator configured a different port
Use the numeric IP address

Use the server's numeric IP address (like 10.241.254.247) rather than a hostname like displaynet.local. Hostnames don't work reliably on all networks. The IP address works everywhere.

Choose your AI application

Claude Desktop is the easiest if you already use Claude apps. Google Antigravity IDE needs no paid subscription. The CLI options (Claude Code, Gemini CLI, Codex CLI) suit anyone already comfortable in a terminal.

These are the AI applications we have tested and documented. Any MCP-compatible AI application should work with DisplayNet Connect, though configuration steps will vary. AI tools evolve quickly, so if you encounter differences from what is described here, refer to your AI application's own MCP documentation for the most current setup instructions.

Claude Code

Claude Code connects directly to DisplayNet Connect over HTTP. No extra tools or bridges needed.

Requirements: Anthropic account with Claude Max or Pro plan

Run this command in your terminal, replacing the three placeholders with your actual values:

macOS / Linux:

claude mcp add-json displaynet '{
"type": "http",
"url": "http://YOUR_SERVER_IP:7050/mcp",
"headers": {
"X-DisplayNet-Username": "YOUR_USERNAME",
"X-DisplayNet-Password": "YOUR_PASSWORD"
}
}' --scope user

Windows (PowerShell):

claude mcp add-json displaynet '{"type": "http", "url": "http://YOUR_SERVER_IP:7050/mcp", "headers": {"X-DisplayNet-Username": "YOUR_USERNAME", "X-DisplayNet-Password": "YOUR_PASSWORD"}}' --scope user

The --scope user flag makes this available from any folder on your computer.

After running the command, restart Claude Code to load the new connection. Close it (type /exit or press Ctrl+C twice) and open it again.

Manual file setup

If you prefer to set things up by hand, create a .mcp.json file in your project folder:

{
"mcpServers": {
"displaynet": {
"type": "http",
"url": "http://YOUR_SERVER_IP:7050/mcp",
"headers": {
"X-DisplayNet-Username": "YOUR_USERNAME",
"X-DisplayNet-Password": "YOUR_PASSWORD"
}
}
}
}

Replace the placeholders, save the file, and restart Claude Code.

For a user-level config that works in every project, place the same content in ~/.claude.json (macOS/Linux) or %USERPROFILE%\.claude.json (Windows).

Verify

claude mcp list

You should see displaynet in the list. Start a new session and try a natural prompt like: "Can you connect to my DisplayNet and tell me what devices are connected?" Claude calls the MCP tools on its own and reports your device inventory.

An empty .mcp.json file in a parent folder can block your user-level config from loading. If the tools do not appear, see Tools missing even after setup.


Claude Desktop

Claude Desktop is the standalone chat application. It needs a small helper tool called mcp-remote to connect to DisplayNet Connect. It installs automatically in Step 3, so there is nothing extra to download.

Requirements: Anthropic account with Claude Pro or Max plan, Node.js installed

Step 1: Install Node.js

Claude Desktop needs Node.js to run the mcp-remote bridge. Check if you have it:

node --version

If you see a version number (v18 or higher), you're set. Otherwise, download the LTS version from nodejs.org.

Step 2: Open the config file

Windows: Open Claude Desktop, click the hamburger menu (top-left), go to Settings > Developer > Edit Config. This opens the config file in your default text editor.

Editing the config on Windows

Claude Desktop on Windows is a sandboxed Microsoft Store application. Its config file is stored in a package-specific folder that is difficult to find manually and varies between installations. Do not try to locate the file yourself. Use the menu option above, which opens the correct file every time.

macOS: Open Claude Desktop, click Claude in the menu bar, go to Settings > Developer > Edit Config.

Or open the file directly:

open ~/Library/Application\ Support/Claude/claude_desktop_config.json

Step 3: Add the configuration

Windows:

{
"mcpServers": {
"displaynet": {
"command": "cmd",
"args": [
"/c",
"npx",
"mcp-remote",
"http://YOUR_SERVER_IP:7050/mcp",
"--allow-http",
"--header",
"X-DisplayNet-Username: YOUR_USERNAME",
"--header",
"X-DisplayNet-Password: YOUR_PASSWORD"
]
}
}
}

The cmd /c wrapper is needed on Windows because the sandboxed app cannot run npx directly.

macOS / Linux:

{
"mcpServers": {
"displaynet": {
"command": "npx",
"args": [
"mcp-remote",
"http://YOUR_SERVER_IP:7050/mcp",
"--allow-http",
"--header",
"X-DisplayNet-Username: YOUR_USERNAME",
"--header",
"X-DisplayNet-Password: YOUR_PASSWORD"
]
}
}
}

Replace YOUR_SERVER_IP, YOUR_USERNAME, and YOUR_PASSWORD with your actual values.

If the file already has other MCP servers: Add the "displaynet" block inside the existing "mcpServers" section. Each server entry must be separated by a comma, but the last entry must NOT have a trailing comma. Getting this wrong is the most common cause of a broken config:

{
"mcpServers": {
"some-other-server": { "command": "..." },
"displaynet": { "command": "..." }
}
}

Notice the comma after the first server's closing } but no comma after the last one. If your config isn't working, paste it into jsonlint.com to check for syntax errors.

Step 4: Restart and verify

Fully quit Claude Desktop (not just close the window):

  • Windows: Right-click the Claude icon in the system tray > Quit
  • macOS: Cmd+Q or Claude menu > Quit Claude

Reopen Claude Desktop, make sure you're in a standard Chat conversation (not a Local Code session), and try a natural prompt like:

"Can you connect to my DisplayNet and tell me what devices are connected?"

A successful response includes a list of your DisplayNet devices and confirms the connection. Claude works out which MCP tools to call without being told their names.

Recent Claude Desktop versions include a "Local Code session" feature for working with files in a folder. A Local pill, a Select folder... button, or a "Trust this workspace?" dialog on your first prompt means you are in Local Code mode. Switch to standard Chat by clicking the chat icon in the left sidebar or starting a new conversation. The MCP server configured in claude_desktop_config.json is available in Chat mode; Local Code mode uses a separate MCP config.

The mcp-remote tool normally requires HTTPS. --allow-http tells it to accept the HTTP connection DisplayNet Connect uses on your local network.

macOS local network permission

On macOS Sonoma or later, the first time Claude Desktop connects to your DisplayNet, macOS asks "Allow 'node' to find devices on local networks?" Click Allow.

Clicking Don't Allow makes the MCP fail silently, with EHOSTUNREACH in the logs and only "MCP displaynet: Server disconnected" in the interface. Fix it under System Settings → Privacy & Security → Local Network by enabling Claude (or Node), then fully quit and relaunch Claude Desktop.

The dialog can also open behind the Claude Desktop window. If your first connection seems to hang, look for it there.

The first launch may take 10-30 seconds while npx downloads the mcp-remote tool. Subsequent launches are faster.

Claude Desktop returns a thumbnail's URL but cannot display the image. See Thumbnails in Claude Desktop.


Gemini CLI

Gemini CLI connects directly to DisplayNet Connect over HTTP. No bridge needed.

Requirements: Google API key, Node.js (for installation via npm)

Step 1: Install Gemini CLI

Follow Google's Gemini CLI documentation to install and complete the first-run setup. You will need a Google API key from Google AI Studio.

Step 2: Configure

Edit ~/.gemini/settings.json:

{
"model": { "name": "gemini-2.5-flash" },
"auth": { "googleApiKey": "YOUR_GEMINI_API_KEY" },
"mcpServers": {
"displaynet": {
"httpUrl": "http://YOUR_SERVER_IP:7050/mcp",
"headers": {
"X-DisplayNet-Username": "YOUR_USERNAME",
"X-DisplayNet-Password": "YOUR_PASSWORD"
}
}
}
}

Step 3: Launch and verify

gemini --model gemini-2.5-flash

Once inside the CLI, run /mcp list to confirm the connection. You should see a green circle with 10 tools.

Try: "Use displaynet_version to check if we're connected."

Model selection

Gemini CLI's model routing can auto-escalate prompts to Pro models, which have zero free-tier quota. This causes a misleading "daily quota exhausted" error on your very first prompt. Always launch with --model gemini-2.5-flash to stay on the free tier. The model setting in settings.json may be overridden by a known bug (#5373), so the CLI flag is the reliable workaround.


OpenAI Codex CLI

Codex CLI connects directly to DisplayNet Connect over HTTP.

Requirements: Paid OpenAI API key (no free tier available). Node.js must be installed (see Claude Desktop > Step 1 if you don't have it).

Step 1: Install

npm install -g @openai/codex

Step 2: Set up the API key

Get your API key from OpenAI Platform and set a spending limit at Usage Limits.

Add to your shell profile (~/.zshrc, ~/.bashrc, or equivalent):

export OPENAI_API_KEY="sk-your-key-here"

Restart your terminal or run source ~/.zshrc to apply.

Step 3: Configure

Edit ~/.codex/config.toml. If the file or the ~/.codex/ directory doesn't exist yet, create it.

[mcp_servers.displaynet]
url = "http://YOUR_SERVER_IP:7050/mcp"

[mcp_servers.displaynet.http_headers]
X-DisplayNet-Username = "YOUR_USERNAME"
X-DisplayNet-Password = "YOUR_PASSWORD"

Step 4: Launch and verify

codex

Try: "Use displaynet_version to check if we're connected."

Tool calls appear as displaynet.displaynet_* in the output.


Google Antigravity IDE

Antigravity connects directly to DisplayNet Connect over HTTP. Configuration is done through the IDE's settings UI.

Requirements: Google account (free)

Step 1: Open the MCP config

  1. Launch Antigravity IDE
  2. Click the gear icon (Settings)
  3. Go to Customizations
  4. Under "INSTALLED MCP SERVERS", click Open MCP Config

This opens ~/.gemini/antigravity/mcp_config.json in a text editor.

Step 2: Add the configuration

{
"mcpServers": {
"displaynet": {
"serverUrl": "http://YOUR_SERVER_IP:7050/mcp",
"headers": {
"X-DisplayNet-Username": "YOUR_USERNAME",
"X-DisplayNet-Password": "YOUR_PASSWORD"
}
}
}
}

Replace the placeholders and save the file.

The serverUrl config key

Antigravity's own AI assistant may suggest httpUrl as the config key. This is incorrect and will produce a "serverURL or command must be specified" error. The correct key is serverUrl (camelCase).

Step 3: Restart the IDE

Save the config file, then fully quit and relaunch Antigravity. The Refresh button in the MCP panel is not sufficient to pick up config changes.

Step 4: Verify

Go to Settings > Customizations. You should see "displaynet" with a green status under INSTALLED MCP SERVERS.

Start a new conversation and try a natural prompt like: "Can you connect to my DisplayNet and tell me what devices are connected?"

Use the IP address for Antigravity

Antigravity has been observed to fail resolving .local hostnames. Always use the numeric IP address in your Antigravity config.


Verification

After setting up any AI application, this customer-natural prompt confirms a working connection:

Can you connect to my DisplayNet and tell me what devices are connected?

A successful response is a list of your DisplayNet devices, with names, status, and basic info. Whichever AI you set up works out which MCP tools to call without being told their names.

If you want to see the exact version and build timestamp instead, ask:

What version of DisplayNet am I connected to?

If you get an error or the tools don't appear, see Tips and Troubleshooting.