Connect an MCP Client
The CapaOne MCP server lets AI agents search your devices. Add it to your client with its URL and your API key.
Server details
Section titled “Server details”| Setting | Value |
|---|---|
| URL | https://mcp.capaone.com/mcp |
| Transport | Streamable HTTP |
| Authentication | X-Api-Key: <your API key> |
The server is stateless and read-only, and only sees the organization your API key belongs to. Its tools are described in MCP Tools.
The API key is the only way to authenticate. The server doesn’t support OAuth, so a client must be
able to send the X-Api-Key header with every request.
Clients at a glance
Section titled “Clients at a glance”| Client | How it connects |
|---|---|
| Claude Code | claude mcp add, or the project’s .mcp.json |
| Claude on the web, desktop and mobile | A custom connector with a request header, or the desktop app’s configuration file |
| VS Code (GitHub Copilot) | ~/.copilot/mcp-config.json |
| Cursor | mcp.json |
| Microsoft 365 Copilot and Teams | An agent you build in Microsoft Copilot Studio |
| ChatGPT | Not supported. Use the OpenAI API instead. |
Any other client that supports Streamable HTTP and custom headers works too. Use the URL and header from Server details.
Keep the key in an environment variable
Section titled “Keep the key in an environment variable”Several setups below read the key from the CAPAONE_API_KEY environment variable, so the key isn’t
saved in a configuration file. Set it once for your user account, then restart the client:
[Environment]::SetEnvironmentVariable('CAPAONE_API_KEY', '<your API key>', 'User')export CAPAONE_API_KEY="<your API key>"Client setup
Section titled “Client setup”Claude Code
Section titled “Claude Code”Run this once in your terminal:
claude mcp add --transport http capaone https://mcp.capaone.com/mcp --header "X-Api-Key: <your API key>"Add --scope user to make the server available in every project. Check the connection with /mcp
inside Claude Code.
To share the server with your team, add it to the project’s .mcp.json instead. Reference the
environment variable, so the key isn’t committed with the project:
{ "mcpServers": { "capaone": { "type": "http", "url": "https://mcp.capaone.com/mcp", "headers": { "X-Api-Key": "${CAPAONE_API_KEY}" } } }}Claude Code asks each person to approve the project’s servers the first time. A custom connector you add in Claude also appears in Claude Code when you sign in with the same Claude account.
Claude
Section titled “Claude”Claude on the web and in the desktop and mobile apps connects through a custom connector, with the key in a request header.
On a Free, Pro, Max or Ultra plan:
- Go to Customize → Connectors and select Add custom connector.
- Enter a name, such as
CapaOne, and the server URLhttps://mcp.capaone.com/mcp. - If you’re asked for Authentication, choose No sign-in.
- Open Request headers and select
x-api-keyas the header name. - Enter your API key as the value, and mark the header Required.
- Select Add.
CapaOne appears under Customize → Connectors. In a chat, turn it on or off under + → Connectors.
On a Team or Enterprise plan, an Owner adds the connector for the whole organization. In Organization settings → Connectors, select Add, then Custom, choose Web if asked, and use the same settings. Members then select Connect next to CapaOne under Customize → Connectors. Everyone in the organization reads CapaOne with that one key.
You can’t change a request header after you add the connector. To use a new key, remove the connector and add it again.
Claude Desktop configuration file
Section titled “Claude Desktop configuration file”Without request headers, Claude Desktop connects through the mcp-remote bridge, which needs Node.js. Open Settings → Developer → Edit Config and add:
{ "mcpServers": { "capaone": { "command": "npx", "args": [ "-y", "mcp-remote", "https://mcp.capaone.com/mcp", "--header", "X-Api-Key:${CAPAONE_API_KEY}" ], "env": { "CAPAONE_API_KEY": "<your API key>" } } }}Keep X-Api-Key:${CAPAONE_API_KEY} without a space after the colon. On Windows, Claude Desktop
splits arguments that contain spaces. Restart Claude Desktop afterwards.
VS Code (GitHub Copilot)
Section titled “VS Code (GitHub Copilot)”Add the server to your Copilot configuration file, ~/.copilot/mcp-config.json
(%USERPROFILE%\.copilot\mcp-config.json on Windows). The header reads the key from the
CAPAONE_API_KEY environment variable:
{ "mcpServers": { "capaone": { "type": "http", "url": "https://mcp.capaone.com/mcp", "headers": { "X-Api-Key": "${CAPAONE_API_KEY}" } } }}Restart VS Code afterwards. The server is then available in every workspace.
If you added CapaOne to .vscode/mcp.json with a prompt for the key, move it to the file above.
VS Code’s default Copilot harness doesn’t load servers that prompt for input, so the CapaOne tools
are missing from its sessions.
Cursor
Section titled “Cursor”Add the server to ~/.cursor/mcp.json, or .cursor/mcp.json in a project, and set the
CAPAONE_API_KEY environment variable:
{ "mcpServers": { "capaone": { "url": "https://mcp.capaone.com/mcp", "headers": { "X-Api-Key": "${env:CAPAONE_API_KEY}" } } }}Microsoft 365 Copilot and Teams
Section titled “Microsoft 365 Copilot and Teams”Microsoft 365 Copilot can’t add the CapaOne MCP server by itself. Its own ways of adding an MCP server accept only OAuth, Microsoft Entra SSO or no authentication. Instead, build an agent in Microsoft Copilot Studio, which can send the API key, and publish it to Microsoft 365 Copilot and Teams. Connect Microsoft Copilot has the steps.
The Microsoft Copilot app for consumers has no option to add an MCP server.
ChatGPT
Section titled “ChatGPT”ChatGPT can’t connect to the CapaOne MCP server. ChatGPT only adds MCP servers that use OAuth or no authentication, and it can’t send an API key.
To use the CapaOne tools with OpenAI models, call them through the OpenAI API instead. In the
Responses API, add the server to the request’s tools, with the key in headers:
{ "type": "mcp", "server_label": "capaone", "server_url": "https://mcp.capaone.com/mcp", "headers": { "X-Api-Key": "<your API key>" }, "require_approval": "never"}- Send the header with every request. OpenAI doesn’t keep it between requests.
- Every CapaOne tool is read-only, so
require_approvalcan benever. Without it, the API asks your code to approve each tool call.
The OpenAI Agents SDK takes the same header in its MCP server settings.
Test the connection
Section titled “Test the connection”The MCP Inspector lists the server’s tools from the command line. It needs Node.js 22.19 or newer:
npx @modelcontextprotocol/inspector --cli https://mcp.capaone.com/mcp --transport http --header "X-Api-Key: <your API key>" --method tools/listThe command prints the CapaOne tools as JSON. If the key is missing, expired or revoked, the server
answers 401.
To call the tools by hand, open the Inspector in your browser instead:
npx @modelcontextprotocol/inspector --server-url https://mcp.capaone.com/mcp --transport http --header "X-Api-Key: <your API key>"Connect to the server, open Tools, and call list_filterable_fields. The tool returns the
device fields and operators that search accepts.
Example prompts
Section titled “Example prompts”Once connected, ask about your devices in plain language:
- Which organization are you connected to?
- Which devices are offline right now?
- List the Windows 10 devices that have not checked in for 30 days.
- How many devices have failed software patches? Show the worst ten.
- Find the laptop used by Jane Doe and tell me its OS version.
- Which devices have less than 8 GB of RAM?
- What is installed on LAPTOP-0042, and who are its local administrators?
To turn the answers into charts and tiles, see Build a Dashboard with Claude.
Each tool call is one API request and counts towards your rate limit. See Rate Limits and Errors.