How to integrate Control d MCP with Claude Code

Manage your Control d directly from Claude Code with zero worries about OAuth hassles, API-breaking issues, or reliability and security concerns. You can do this in two different ways: Via Composio Connect - Direct and easiest approach Via Composio SDK - Programmatic approach with more control

Control d logoControl d
Api Key

Control d is a customizable DNS filtering and traffic redirection platform. It helps you manage internet access, enforce policies, and monitor usage across devices and networks.

54 Tools

Introduction

Manage your Control d directly from Claude Code with zero worries about OAuth hassles, API-breaking issues, or reliability and security concerns.

You can do this in two different ways:

  1. Via Composio Connect - Direct and easiest approach
  2. Via Composio SDK - Programmatic approach with more control

Also integrate Control d with

Why use Composio?

  • Only one MCP URL to connect multiple apps with Claude Code with zero auth hassles.
  • Programmatic tool calling allows LLMs to write its code in a remote workbench to handle complex tool chaining. Reduces to-and-fro with LLMs for frequent tool calling.
  • Handling Large tool responses out of LLM context to minimize context rot.
  • Dynamic just-in-time access to 20,000 tools across 1000+ other Apps for cross-app workflows. It loads the tools you need, so LLMs aren't overwhelmed by tools you don't need.

Connecting Control d to Claude Code using Composio

1. Add the Composio MCP to Claude

Terminal

2. Start Claude Code

bash
claude

3. Open your MCP list

bash
/mcp

4. Select Composio and click on Authenticate

Select Composio and click Authenticate

5. This will redirect you to the Composio OAuth page. Complete the flow by authorizing Composio and you're all set.

Composio OAuth authorization page
Composio authorization complete
Ask Claude to connect to your account and authenticate via the link

What is the Control d MCP server, and what's possible with it?

The Control d MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Control d account. It provides structured and secure access to your DNS filtering and device management environment, so your agent can perform actions like managing devices, enforcing policies, retrieving analytics, and monitoring network access on your behalf.

  • Device inventory management: Easily list all devices on your account or remove specific devices by their identifier for streamlined device control.
  • Profile and rule administration: Direct your agent to delete profiles, custom rules, or schedules—helping you maintain and enforce up-to-date network policies.
  • Network access monitoring: Retrieve a list of known access IPs to keep tabs on which endpoints are connecting to your network infrastructure.
  • Analytics endpoints discovery: Quickly fetch available analytics storage regions and endpoints so you can integrate and analyze DNS traffic data efficiently.
  • Organization details access: Have the agent fetch and present your organization's account details for easy reference and auditing.

Connecting Control d via Composio SDK

Composio SDK is the underlying tech that powers Rube. It's a universal gateway that does everything Rube does but with much more programmatic control. You can programmatically generate an MCP URL with the app you need (here Control d) for even more tool search precision. It's secure and reliable.

How the Composio SDK works

The Composio SDK follows a three-phase workflow:

  1. Discovery: Searches for tools matching your task and returns relevant toolkits with their details.
  2. Authentication: Checks for active connections. If missing, creates an auth config and returns a connection URL via Auth Link.
  3. Execution: Executes the action using the authenticated connection.

Step-by-step Guide

Step by step10 STEPS
1

Prerequisites

Before starting, make sure you have:
  • Claude Pro, Max, or API billing enabled Anthropic account
  • Composio API Key
  • A Control d account
  • Basic knowledge of Python or TypeScript
2

Install Claude Code

bash
# macOS, Linux, WSL
curl -fsSL https://claude.ai/install.sh | bash

# Windows PowerShell
irm https://claude.ai/install.ps1 | iex

# Windows CMD
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

To install Claude Code, use one of the following methods based on your operating system:

3

Set up Claude Code

bash
cd your-project-folder
claude

Open a terminal, go to your project folder, and start Claude Code:

  • Claude Code will open in your terminal
  • Follow the prompts to sign in with your Anthropic account
  • Complete the authentication flow
  • Once authenticated, you can start using Claude Code
Claude Code initial setup showing sign-in prompt
Claude Code terminal after successful login
4

Set up environment variables

bash
COMPOSIO_API_KEY=your_composio_api_key_here
USER_ID=your_user_id_here

Create a .env file in your project root with the following variables:

  • COMPOSIO_API_KEY authenticates with Composio (get it from Composio dashboard)
  • USER_ID identifies the user for session management (use any unique identifier)
5

Install Composio library

npm install @composio/core dotenv

Install the Composio TypeScript library to create MCP sessions.

  • @composio/core provides the core Composio functionality
  • dotenv loads environment variables from your .env file
6

Generate Composio MCP URL

import 'dotenv/config';
import { Composio } from '@composio/core';

const { COMPOSIO_API_KEY, USER_ID } = process.env;

if (!COMPOSIO_API_KEY || !USER_ID) {
  throw new Error('COMPOSIO_API_KEY and USER_ID required in .env');
}

const composioClient = new Composio({ apiKey: COMPOSIO_API_KEY });

const composioSession = await composioClient.create(USER_ID, {
  toolkits: ['control_d'],
});

const composioMcpUrl = composioSession?.mcp.url;

console.log(`MCP URL: ${composioMcpUrl}`);
console.log(`\nUse this command to add to Claude Code:`);
console.log(`claude mcp add --transport http control_d-composio "${composioMcpUrl}" --headers "X-API-Key:${COMPOSIO_API_KEY}"`);

Create a script to generate a Composio MCP URL for Control d. This URL will be used to connect Claude Code to Control d.

What's happening

  • We import the Composio client and load environment variables
  • Create a Composio instance with your API key
  • Call create() to create a Tool Router session for Control d
  • The returned mcp.url is the MCP server URL that Claude Code will use
  • The script prints this URL so you can copy it
7

Run the script and copy the MCP URL

node --loader ts-node/esm generate_mcp_url.ts
# or if using tsx
tsx generate_mcp_url.ts

Run your TypeScript script to generate the MCP URL.

  • The script connects to Composio and creates a Tool Router session
  • It prints the MCP URL and the exact command you need to run
  • Copy the entire claude mcp add command from the output
8

Add Control d MCP to Claude Code

bash
claude mcp add --transport http control_d-composio "YOUR_MCP_URL_HERE" --headers "X-API-Key:YOUR_COMPOSIO_API_KEY"

# Then restart Claude Code
exit
claude

In your terminal, add the MCP server using the command from the previous step. The command format is:

  • claude mcp add registers a new MCP server with Claude Code
  • --transport http specifies that this is an HTTP-based MCP server
  • The server name (control_d-composio) is how you'll reference it
  • The URL points to your Composio Tool Router session
  • --headers includes your Composio API key for authentication

After running the command, close the current Claude Code session and start a new one for the changes to take effect.

9

Verify the installation

bash
claude mcp list

Check that your Control d MCP server is properly configured.

  • This command lists all MCP servers registered with Claude Code
  • You should see your control_d-composio entry in the list
  • This confirms that Claude Code can now access Control d tools

If everything is wired up, you should see your control_d-composio entry listed:

Claude Code MCP list showing the toolkit MCP server
10

Authenticate Control d

The first time you try to use Control d tools, you'll be prompted to authenticate.

  • Claude Code will detect that you need to authenticate with Control d
  • It will show you an authentication link
  • Open the link in your browser (or copy/paste it)
  • Complete the Control d authorization flow
  • Return to the terminal and start using Control d through Claude Code

Once authenticated, you can ask Claude Code to perform Control d operations in natural language. For example:

  • "List all devices connected to my account"
  • "Remove a device by its ID"
  • "Show known access IPs for my network"

Complete Code

Here's the complete code to get you started with Control d and Claude Code:

import 'dotenv/config';
import { Composio } from '@composio/core';

const { COMPOSIO_API_KEY, USER_ID } = process.env;

if (!COMPOSIO_API_KEY || !USER_ID) {
  throw new Error('COMPOSIO_API_KEY and USER_ID required in .env');
}

const composioClient = new Composio({ apiKey: COMPOSIO_API_KEY });

const composioSession = await composioClient.create(USER_ID, {
  toolkits: ['control_d'],
});

const composioMcpUrl = composioSession?.mcp.url;

console.log(`MCP URL: ${composioMcpUrl}`);
console.log(`\nUse this command to add to Claude Code:`);
console.log(`claude mcp add --transport http control_d-composio "${composioMcpUrl}" --headers "X-API-Key:${COMPOSIO_API_KEY}"`);

Conclusion

You've successfully integrated Control d with Claude Code using Composio's MCP server. Now you can interact with Control d directly from your terminal using natural language commands.

Key features of this setup:

  • Terminal-native experience without switching contexts
  • Natural language commands for Control d operations
  • Secure authentication through Composio's managed MCP
  • Tool Router for dynamic tool discovery and execution

Next steps:

  • Try asking Claude Code to perform various Control d operations
  • Add more toolkits to your Tool Router session for multi-app workflows
  • Integrate this setup into your development workflow for increased productivity

You can extend this by adding more toolkits, implementing custom workflows, or building automation scripts that leverage Claude Code's capabilities.

TOOLS

Supported Tools

Every Control d action and event your agent gets out of the box.

Delete Device by ID

Permanently delete a Control-D device/endpoint by its ID.

Delete Profile

Permanently deletes a Control D profile by its unique identifier (PK).

Delete Profile Rule by Rule ID

Delete a custom DNS rule from a Control D profile by its rule identifier (hostname/domain).

Delete Rule from Folder

Delete a custom DNS rule from a specific folder in a Control D profile.

Delete Profile Schedule

Tool to delete a specific schedule within a profile.

List Known Access IPs

List up to the latest 50 IP addresses that were used to query against a specific Device (resolver).

Get Analytics Endpoints

Tool to list analytics storage regions and their endpoints.

Get Analytics Levels

Tool to retrieve available analytics log levels for Control D devices.

Get Billing Payments

Tool to retrieve billing history of all payments made.

Get Billing Products

Retrieve all products currently activated on the Control D account.

Get Devices

Lists all Control D devices (endpoints) associated with the account.

Get Device Types

List all allowed device types in Control D.

Get IP

Tool to retrieve the current IP address and datacenter information for the API request.

Get Network Stats

Tool to retrieve network stats on available services in different POPs (Points of Presence).

Get Organization Members

Tool to view organization membership.

Get Organization Details

Tool to view the authenticated organization's details.

Get Sub-Organizations

Tool to view sub-organizations and their details.

Get Profiles

Tool to list all profiles associated with the authenticated account.

Get Profile Options

Retrieves all available configuration options for DNS profiles in Control D.

Get Profile by ID

Tool to retrieve details of a specific profile by its ID.

Get Profile Analytics

Retrieve analytics data for a Control D profile.

Get Profile Analytics Logs

Retrieves DNS query activity logs for a specific Control D profile.

Get Analytics Log Entry

Tool to retrieve a specific analytics log entry by its ID.

Get Profile Analytics Summary

Tool to fetch a summary of analytics data for a given profile.

Get Profile Analytics Top Domains

Tool to fetch top domains accessed within a specific profile.

Get Profile Top Services

Tool to fetch top services accessed within a profile.

Get Profile Filters

List all native (Control D curated) filters for a profile and their current states.

List External Filters for Profile

Tool to list third-party filters for a specific profile.

Get Profile Folders

List all rule folders (groups) within a Control D profile.

List Custom DNS Rules for Profile

Retrieve custom DNS rules for a Control D profile.

Get Specific Rule in Folder

Tool to retrieve a specific rule within a folder by its ID.

Get Profile Schedules

Tool to list schedules associated with a specific profile.

Get Profile Schedule

Tool to retrieve a specific schedule by its ID within a profile.

Get Profile Services

Tool to list services associated with a specific profile.

Get Proxies

Tool to retrieve the list of usable proxy locations that traffic can be redirected through.

Get Service Categories

List all available service categories in Control D.

List Services by Category

Retrieves all services within a specific ControlD service category.

Get Users

Retrieve the authenticated user's account information from Control D.

Create Device

Create a new device (DNS endpoint) in Control D.

Create Profile

Create a new blank profile or clone an existing one.

Create Custom DNS Rule

Create custom DNS rules for a profile to control domain resolution.

Create Custom Rules in Profile Folder

Tool to create custom rules within a specific folder for a profile.

Create Profile Schedule

Create a new time-based schedule within a Control D profile.

Modify Device

Modify an existing Control D device's settings.

Modify Organization

Modify organization settings such as name, contact details, website, and device limits.

Modify Profile

Modify an existing profile by its ID.

Bulk Update Profile Filters

Tool to bulk update filters on a specific profile.

Update External Filters for Profile

Tool to update external filters for a specific profile.

Modify Profile Filter

Modify the enabled state of a specific native filter on a profile.

Modify Custom Rule for Profile

Modify an existing custom DNS rule for a profile in Control D.

Update Custom Rule by Rule ID

Tool to update an existing custom rule by its ID.

Move Profile Rule to Folder

Tool to move a specific custom rule into a different folder.

Update Profile Schedule

Tool to update a specific schedule within a profile.

Modify Service for Profile

Tool to modify a specific service rule for a profile.

FAQ

Frequently asked questions

With a standalone Control d MCP server, the agents and LLMs can only access a fixed set of Control d tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Control d and many other apps based on the task at hand, all through a single MCP endpoint.

Yes, you can. Claude Code fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Control d tools.

Yes, absolutely. You can configure which Control d scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Control d data and credentials are handled as safely as possible.

Start with Control d.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Control d tool your agent needs.Free to start.

Start building