Connect AdaL to Tools via MCP (Model Context Protocol)
Connect AdaL to Linear, GitHub, Notion, Canva, databases, and more using MCP (Model Context Protocol) — the open standard for connecting AI agents to external tools and data sources.
Quick Start (2 minutes)
# 1. Start AdaL
adal
# 2. Add a server (shortcut)
/mcp add linear
# Browser auth opens automatically when required
For OAuth-capable servers, auth opens automatically during add. Example:
/mcp add canva --transport http --url https://mcp.canva.com/mcp
✦ Adding custom server: canva
⎿ Server added: canva
(opening browser for authentication...)
Done! Ask AdaL: "Create a Linear issue for the login bug".
Two Ways to Add Servers
| Method | Syntax | When to Use |
|---|---|---|
| Shortcut | /mcp add <name> | Pre-configured servers managed by AdaL CLI team |
| Custom | /mcp add <name> ... | Any MCP server (npm package, Python, remote HTTP/SSE) |
Add Shortcut Servers
Pre-configured by the AdaL CLI team. Just use the name - no flags needed.
| Shortcut | Auth Type | Command |
|---|---|---|
linear | OAuth | /mcp add linear |
notion | OAuth | /mcp add notion |
sentry | OAuth | /mcp add sentry |
slack | OAuth | /mcp add slack |
glasser | OAuth | /mcp add glasser |
github | API Key | /mcp add github |
gitlab | API Key | /mcp add gitlab |
postgres | Conn String | /mcp add postgres <connection_string> |
filesystem | None | /mcp add filesystem |
playwright | None | /mcp add playwright |
chrome-devtools | None | /mcp add chrome-devtools |
brave-search | API Key | /mcp add brave-search |
Setting Up Shortcuts
OAuth Servers (linear, notion, sentry, slack, glasser):
/mcp add linear
# Starts authentication automatically; opens your browser if sign-in is needed
# Existing valid credentials are reused. If authentication fails or is cancelled:
/mcp
# → Select server → Authenticate
# Browser opens → Approve → Done!
API Key Servers (github, gitlab):
# Set token BEFORE starting AdaL
export GITHUB_TOKEN="ghp_xxxx" # macOS / Linux
# OR
$env:GITHUB_TOKEN="ghp_xxxx" # Windows PowerShell
adal
/mcp add github
Database (postgres):
/mcp add postgres postgresql://user:pass@localhost:5432/mydb
Add Custom Servers
For any MCP package not in the shortcut list.
Option 1: Add a remote HTTP server (recommended)
# Basic syntax
/mcp add <name> --transport http --url <https://...>
# Real example
/mcp add canva --transport http --url https://mcp.canva.com/mcp
# Example with header
/mcp add secure-api --transport http --url https://api.example.com/mcp --header "Authorization:Bearer ${API_TOKEN}"
Option 2: Add a remote SSE server (legacy/deprecated where HTTP exists)
# Basic syntax
/mcp add <name> --transport sse --url <https://...>
# Example
/mcp add asana --transport sse --url https://api.example.com/sse
Option 3: Add a local stdio server (npm/python/local scripts)
# NPM package
/mcp add airtable --command npx --args "-y,airtable-mcp-server" --env "AIRTABLE_API_KEY=xxx"
# Python package
/mcp add py-tool --command uvx --args "python-mcp-server"
Important: option ordering
Place MCP flags before values they configure, and keep command payload values quoted when needed:
--transport+--urlfor remote servers--command+--argsfor stdio servers- use
--env/--headerfor credentials and auth headers
Flags Reference
| Flag | Purpose | Example |
|---|---|---|
--command | Executable for stdio server | --command npx |
--args | Arguments passed to command | --args "-y,pkg@latest" |
--transport | Remote transport (http or sse) | --transport http |
--url | Remote server URL | --url https://... |
--header | HTTP auth/custom header | --header "Authorization:Bearer ${TOKEN}" |
--env | Environment variables | --env "KEY=value" |
Managing Servers
/mcp
# Open server list
Actions (select server → Enter):
- Enable/Disable - Load only servers you need.
- Authenticate - Start/continue auth flow.
- Test Connection - Verify server is working.
- Remove - Delete server configuration.
Server Card Status (Source of Truth)
After add/auth, use server card status to confirm readiness:
- Connected - Ready to use
- Needs Auth - Authenticate required
- Error - Connection/config/credential issue
- Disabled - Not currently active
Authenticate Servers
OAuth Servers (linear, notion, sentry, slack, glasser, and compatible remote OAuth servers)
How it works now:
- Add server
- Config is saved
- AdaL starts authentication automatically. Valid saved credentials are reused; otherwise the browser opens for sign-in.
- If authentication fails or is cancelled, the server stays saved. Retry from
/mcp→ select the server → Authenticate. - After approval, server becomes usable (tools discovered/available).
Startup, status checks, and background discovery do not open authentication windows. On SSH or headless systems, browser opening may be unavailable; use the manual authentication flow in an environment with browser access.
If the server rejects the saved credentials (HTTP 400, 401 or 403 on connect), AdaL discards that access token and marks the server Needs Auth. Authenticate then opens the browser for a fresh sign-in instead of sending the rejected token again. You no longer have to remove and re-add the server to recover.
/mcp add linear
# Opens the browser if sign-in is needed
# Retry after a failed or cancelled sign-in:
/mcp
# → Select server → Authenticate
Token storage: ~/.adal/mcp-auth/. Delete folder to re-authenticate.
API Key Servers (github, gitlab)
How it works:
- AdaL reads env vars (
GITHUB_TOKEN, etc.) at startup - If token is added after AdaL starts, restart AdaL and re-open session flow
# Set token (AdaL must be closed)
export GITHUB_TOKEN="ghp_xxxx"
# Verify
echo $GITHUB_TOKEN
# Start and add
adal
/mcp add github
| Server | Environment Variable | Get Token |
|---|---|---|
| github | GITHUB_TOKEN | github.com/settings/tokens |
| gitlab | GITLAB_TOKEN | gitlab.com/-/profile/personal_access_tokens |
| brave-search | BRAVE_API_KEY | brave.com/search/api |
Make token permanent:
echo 'export GITHUB_TOKEN="xxx"' >> ~/.zshrc
source ~/.zshrc
Examples
Linear:
"Create a high-priority issue titled 'Fix auth timeout' in Backend"
GitHub:
"Show my open pull requests"
Slack:
"Summarize what was discussed in #launch this week and post the summary there"
Postgres:
"Count users by status in the users table"
Canva:
"Create a social post design draft for product launch"
Why MCP with AdaL?
MCP (Model Context Protocol) is the emerging open standard for connecting AI agents to external tools. AdaL's MCP support means you can:
- Use the same MCP servers you'd use with Claude Desktop, Cursor, or other MCP-compatible clients
- Manage servers from the CLI — no config files to edit manually
- OAuth built-in — one-step add flow with automatic auth where supported
- Enable/disable on the fly — load only what you need
Related: Skills & Plugins · Slash Commands · Keyboard Shortcuts