MCP servers
MCP servers extend what your workers can do. Each one is a small program askTheodor launches in the background; the tools it exposes (read a Notion page, send a Slack message, query a database) then appear in any worker’s Skills tab under a server-prefixed name, ready to add to that worker’s allowed tools.
This tab is the registry: add servers (from a one-click preset or by hand), test that they connect, and flip each one on or off.
What is MCP?
MCP (Model Context Protocol) is an open standard for giving AI tools. A server is just a process that speaks the protocol and advertises a set of tools. askTheodor is the client — it starts the server, asks what tools it offers, and lets your workers call them. Hundreds of community servers exist (Notion, Gmail, Linear, Stripe, Postgres, browser automation, cloud hosts, domain registrars, and more).
Add a server
You have two paths:
Presets (one click)
A long row of + Name buttons covers the common integrations — Filesystem, Fetch, GitHub, SQLite, Puppeteer, Playwright, Browser MCP, Brave Search, Gmail, Notion, Linear, Slack, Postgres, Stripe, WooCommerce, Shopify, several domain registrars and cloud hosts, and Anthropic’s sandboxed computer-use image. Clicking one fills the new-server form with sensible defaults; you then fill in any blank secrets (most presets leave an API-key or token field empty) and save.
Custom server (+ Add custom server)
Opens a blank form for any program that speaks MCP. Fields:
- Name — a label for the server (e.g. Gmail, Linear). Required.
- Command — the executable to run:
npx,python3,docker, or an absolute path like/usr/local/bin/my-server. Required. - Args (one per line) — command-line arguments, one per line (e.g.
-ythen the package name). - Env (KEY=VALUE per line) — environment variables the server needs, typically API tokens
(e.g.
GITHUB_PERSONAL_ACCESS_TOKEN=ghp_…). One per line. - Description — free text shown on the server’s card.
- Enable on save — when checked, the server spawns immediately after you save. Default: on.
Test connection
Before saving, click Test connection. askTheodor starts the server and lists every tool it
discovers (or shows the error if it can’t start). Use this to confirm your command, args, and tokens are
right — you should see a list like gmail__send_email, gmail__list_messages, and so on.
Manage existing servers
Each saved server shows as a card with its name and the exact command line. On each card:
- Enabled checkbox — turn the server on (spawns it, marks it running) or off (stops it).
- Delete — remove the server from the registry (asks to confirm).
A green running tag appears next to any enabled server.
How workers use these tools
Tools from running servers are namespaced <server-id>__<tool> so they never collide with built-in
tools or with another server’s. They don’t activate automatically per worker — open a worker’s
Skills tab and add the ones you want to that worker’s allowed-tools list. That keeps each worker’s
toolset deliberate and its permissions tight.
In practice
Always hit Test connection before saving. It starts the server and lists what it discovers, which turns the two most common failures — a wrong command path and a bad token — into a five-second check instead of a worker that mysteriously can’t do its job later.
Scope the token, not just the worker. The allowlist controls which worker may call a tool; only the credential controls what the tool can actually do. A read-only database user, a GitHub token limited to one repository, an API key with minimal scopes — do that work at the vendor.
Pairings that pay off: search plus fetch for a research worker (its output stops being recalled and starts being current), GitHub or Linear for an ops worker (weekly reports become accurate rather than plausible), a read-only database server for a finance-shaped worker (questions in English against your real data).
Prefer a hosted connector when the vendor offers one — nothing to install or keep alive. Choose a local server when the data shouldn’t leave your machine, or when you need something custom. Local servers touching local resources also keep working offline; hosted ones don’t.
🎓 Learn it hands-on: Local MCP servers · The remote connector directory
Terms in this page
- MCP (Model Context Protocol) — an open standard for advertising AI-callable tools. A server offers tools; askTheodor, the client, starts it and lets workers call them.
- MCP server — a program (often run via
npxordocker) that exposes one or more tools over MCP. askTheodor runs it as a local subprocess. - Tool / tool call — a single capability a worker can invoke (send an email, query a database). One call plus its result is a tool run.
- Subprocess — a separate program askTheodor launches and talks to in the background, distinct from the app itself.
- Preset — a one-click template that pre-fills the new-server form with a known integration’s command, arguments, and the environment variables it expects.
- Command / args — the executable to run and the list of arguments passed to it on the command line.
- Environment variable (env) — a
KEY=VALUEsetting passed to the server’s process, usually used to hand it an API token or configuration without putting it on the command line. - API token / access token — a secret string that authorizes the server to act on a third-party service (GitHub, Notion, Slack). Treat it like a password.
- Headless — running a browser or program with no visible window, suited to unattended automation.
- DOM / accessibility tree — a structured, text representation of a web page’s contents, which some browser MCP servers extract to give the model cleaner context than a screenshot.
- Skills tab — the section of a worker’s profile where you choose which tools (built-in and MCP) that worker is allowed to use.