CtrlOps
|Docs
Product ModulesAI Terminal

MCP Servers

Extend the CtrlOps AI Assistant with external tool servers — docs, GitHub repos, local files, and anything else that speaks MCP.

MCP stands for Model Context Protocol. In plain terms: it lets the AI Assistant talk to outside tools — like a documentation search engine, your GitHub account, or a folder on your computer — so it can give you answers grounded in your actual context instead of relying on training data alone.

When you connect an MCP server, its tools become available to the AI automatically. Ask "search my repo for auth-related code" and the AI will reach through the GitHub MCP server, not guess.

The MCP badge in the AI Terminal toolbar shows how many tools are currently active (e.g. "5 tools"). Click it to open the MCP Manager.

What comes built-in

CtrlOps ships with three default servers. They appear in the MCP Manager automatically, but they start turned off until you choose to enable them.

ServerWhat it doesWhat you need
Context7Looks up up-to-date documentation for libraries, frameworks, and APIs. Great for coding questions.A Context7 API Key (starts with ctx7sk-…). Get one free at context7.com.
GitHubRepository operations, issue and pull request management, code search.A GitHub Personal Access Token (starts with ghp_… or github_pat_…). Create one in GitHub settings.
FilesystemRead and write files inside one folder you choose on your local computer.Node.js installed (gives you npx). Pick a folder when you turn it on.

If you delete a default server, it won't come back. You can always add it again manually.

Connect your first MCP server

The fastest path is enabling one of the defaults. Here's Context7 as an example — the steps are the same shape for the others.

Open the MCP Manager

In the AI Terminal → Click the MCP badge in the toolbar

A right-side panel slides out listing all configured servers.

Turn the server on

Find the Context7 card and flip its toggle switch to ON.

Because the server has no API key yet, a Secrets modal pops up automatically asking for your credentials.

Enter the API key

Paste your Context7 API Key (starts with ctx7sk-…) into the input field and click Save & Connect.

CtrlOps validates the format immediately. If the key looks wrong, you'll see a message telling you what format is expected.

Check the status

The card updates: a green dot means connected, and you'll see a tool count like "4 tools". The AI can now use Context7 whenever it thinks docs would help.

You can add as many servers as you want, but the AI can only use 20 tools at a time across all connected servers. If you hit the limit, CtrlOps auto-disables excess tools with a "LIMIT REACHED" badge. Click a tool to manually re-enable it after freeing up slots elsewhere.

How the AI uses MCP tools

You don't tell the AI to use MCP. You just ask your question naturally, and the AI decides whether a connected server can help.

What you see

  1. You ask: "What changed in the auth middleware since last week?"
  2. The AI emits an MCP request — you'll see a small inline panel appear in the chat showing which server is being used and what it's doing.
  3. The Subagent runs — CtrlOps spins up an isolated AI loop (called a Subagent) that figures out the exact tool names and arguments, executes them, and collects results.
  4. Result appears — the final answer lands back in your chat, citing what it found.

The Subagent panel shows each "turn" live: thinking step → tool call → result. It caps at 10 turns. If something goes wrong, you see the error right there instead of a silent failure.

The main chat only sees the final summary. The full tool-call history stays inside the Subagent panel, keeping your conversation clean.

Manage servers and tools

The MCP Manager drawer

Click the MCP badge anytime to reopen the drawer. Each server card shows:

  • Status dot — green (connected), amber (connecting), red (error)
  • Tool count — total tools vs. active tools (e.g. "8 tools (6 active)")
  • Toggle — turn the whole server on or off
  • Test — ping the server and refresh the tool list
  • Edit — change name, description, URL, headers, or command
  • Delete — remove permanently (asks for confirmation)

If a server errors, its toggle turns into a RETRY button in red. Click it to attempt reconnection.

Enable or disable individual tools

Click the "X tools (Y active)" line on a connected card to expand the tool list. Each tool has its own switch. Disabled tools won't be offered to the AI, which is useful when a server has many tools and you only need a few.

Add a custom server

Beyond the defaults, you can connect any MCP-compatible server.

Best when you know the server details and want guided fields.

In the MCP Manager → Click Add New Server → Manual Entry tab

Fill in:

FieldWhat to enter
Server NameUnique identifier. Letters, numbers, hyphens, underscores only. No spaces. 2–50 characters.
DescriptionRequired. Tell the AI what this server does (10–200 characters). The AI uses this to decide when to call it.
Connection TypeHTTP (remote API), SSE (legacy streaming), or Stdio (local process like npx or python).
URL (HTTP/SSE)Must start with http:// or https:// and have a valid domain.
Command (Stdio)The executable to run, e.g. npx, node, python. Must be a known executable or absolute path.
Arguments (Stdio)Comma-separated arguments passed to the command.
Headers / Env VarsOptional key-value pairs for authentication or configuration.

Live validation runs as you type. Whitespace-only input is rejected everywhere, and URLs must look like real URLs. If you select Stdio, the command is checked against a whitelist of safe executables.

Click Save & Connect when ready. If credentials are missing, the Secrets modal will prompt you before the connection attempt.

Best when you have a standard mcpServers config block from the server's documentation.

In the MCP Manager → Click Add New Server → Paste JSON Config tab

Paste your JSON into the editor. You get:

  • Monaco Editor — syntax highlighting, real-time error squiggles, fold/unfold, auto-format (Alt+Shift+F)
  • Visual Tree View — a collapsible structure of your JSON on the right
  • Real-time validation — checks for missing keys, invalid names, undeclared ${input:...} placeholders, and malformed JSON with exact line numbers

Example:

{
  "mcpServers": {
    "my-docs": {
      "type": "http",
      "url": "https://docs-api.example.com/mcp",
      "description": "Internal company documentation",
      "headers": {
        "Authorization": "Bearer ${input:api_key}"
      }
    }
  },
  "inputs": [
    { "id": "api_key", "description": "API Key", "password": true }
  ]
}

If you use ${input:id} placeholders, a modal will ask for the values before saving. Click Save & Connect when the editor shows no errors.

Security

Keys stay on your machine. API keys, tokens, and secrets are stored in browser localStorage alongside your other AI credentials. They are never sent to the AI model or to any CtrlOps server. Password fields are masked in the UI.

Validation guards in place:

  • URLs must start with http:// or https:// and have a valid domain with a TLD
  • HTTP URLs that aren't localhost trigger a security warning
  • Stdio commands are checked against a whitelist of known executables (npx, node, python, docker, uvx, etc.)
  • Secret formats are enforced by regex — e.g., Context7 keys must start with ctx7sk-, GitHub tokens with ghp_ or github_pat_
  • Whitespace-only submissions are rejected everywhere
  • All connections time out after 120 seconds
  • Server management is disabled while the AI is running to prevent conflicts

Troubleshooting

Go deeper

Tips

Start with one MCP server and get comfortable before stacking more. Context7 is the easiest — just a free API key and you're querying live docs in minutes.

The AI uses the server's description to decide when to call it. Write descriptions that clearly say what the server can do. "GitHub repo search and issue management" is better than "My GitHub tools."

Don't paste secrets into the AI chat itself. Keys belong in the MCP Secrets modal, not in conversation prompts. Even though CtrlOps is local-only, it's good hygiene.