MCP Servers
Manage MCP servers and tools.
MCP lets Arctic connect to external tool servers.
Import from Claude Code
When you first launch Arctic, it will automatically prompt you to import MCP servers from Claude Code if you have any configured in ~/.claude.json. This includes:
- Project-specific MCPs: Configured in
.mcp.jsonfiles - Directory-specific MCPs: Configured in
~/.claude.jsonunder theprojectskey for the current directory - Global MCPs: Configured at the root level of
~/.claude.json
Arctic will ask you once per type (project/directory/global), and you can choose to import or skip. Imported servers are added to your Arctic config (.arctic/arctic.jsonc for projects or ~/.config/arctic/arctic.jsonc globally).
Add an MCP server
Use the arctic mcp add command to add MCP servers. By default, servers are added globally (available in all projects). Use --local to add to the current project only.
Quick Start
# Add global remote MCP with header auth
arctic mcp add context7 https://mcp.context7.com/mcp --header "CONTEXT7_API_KEY: your-key"
# Add global local MCP
arctic mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem
# Add project-specific MCP
arctic mcp add myserver https://example.com/mcp --localRemote MCP with Headers
For servers that use API key or token authentication:
arctic mcp add context7 https://mcp.context7.com/mcp \
--header "CONTEXT7_API_KEY: ctx7sk-your-key"Multiple headers:
arctic mcp add myserver https://example.com/mcp \
--header "Authorization: Bearer token123" \
--header "X-Custom-Header: value"Important: When using header authentication, oauth: false is automatically set to prevent OAuth detection.
Remote MCP with OAuth
For servers that require OAuth authentication:
# With pre-registered client
arctic mcp add myserver https://example.com/mcp --oauth \
--client-id "your-client-id" \
--client-secret "your-secret"
# With dynamic registration
arctic mcp add myserver https://example.com/mcp --oauthThen authenticate:
arctic mcp auth myserverLocal MCP (stdio)
For local command-based MCP servers:
# Basic local server
arctic mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem
# With environment variables
arctic mcp add myserver --env "API_KEY=value" -- bunx my-mcp-serverEverything after -- is treated as the command to run.
Interactive Mode
If you don't provide a URL or command, interactive mode starts:
arctic mcp add myserverThis walks you through the setup with prompts.
Global vs Local
-
Global (default): Server available in all projects
- Saved to
~/.config/arctic/arctic.json - Use for servers you want everywhere
- Saved to
-
Local (
--localflag): Server only in current project- Saved to project's
arctic.json - Use for project-specific servers
- Saved to project's
Manual Configuration
You can also manually edit config files:
Global config (~/.config/arctic/arctic.json):
{
"mcp": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp",
"headers": {
"CONTEXT7_API_KEY": "ctx7sk-your-key"
},
"oauth": false
}
}
}Local config (.arctic/arctic.jsonc or arctic.json):
{
"mcp": {
"filesystem": {
"type": "local",
"command": ["npx", "-y", "@modelcontextprotocol/server-filesystem"],
"environment": {
"MCP_ROOT": "/path/to/scan"
}
}
}
}Optional Config Fields
enabled: Set tofalseto disable a server on startupheaders: Custom headers for remote servers (object)oauth: OAuth config orfalseto disable OAuth detectiontimeout: Tool discovery timeout in ms (default: 5000)environment: Environment variables for local servers (object)
Commands
arctic mcp add <name> [url]
Add an MCP server globally or locally.
Positional arguments:
<name>: Name of the MCP server (required)[url]: Remote server URL (optional, omit for local servers)
Options:
--local: Add to project config instead of global config--header "KEY: VALUE": Add header (can be used multiple times)--oauth: Enable OAuth authentication--client-id <id>: OAuth client ID--client-secret <secret>: OAuth client secret--scope <scopes>: OAuth scopes to request--env "KEY=VALUE": Environment variable for local servers
Examples:
# Global remote with headers
arctic mcp add context7 https://mcp.context7.com/mcp --header "API_KEY: key"
# Local stdio server
arctic mcp add fs -- npx -y @modelcontextprotocol/server-filesystem
# Project-specific with OAuth
arctic mcp add myserver https://example.com/mcp --oauth --localarctic mcp list
List all configured MCP servers and their status.
arctic mcp list
# or
arctic mcp lsShows:
- Server name
- Connection status (connected, disabled, failed, needs auth)
- Server URL or command
- OAuth status if applicable
arctic mcp remove <name>
Disable an MCP server by adding an override.
arctic mcp remove context7
# or
arctic mcp rm context7This disables the server by adding enabled: false to your local config, which overrides any parent configs. To fully remove, delete the entry from the config file manually.
arctic mcp auth [name]
Authenticate with an OAuth-enabled MCP server.
arctic mcp auth myserverOpens your browser to complete the OAuth flow. If name is omitted, you'll be prompted to select from available OAuth servers.
arctic mcp logout [name]
Remove OAuth credentials for an MCP server.
arctic mcp logout myserverThis removes stored OAuth tokens but keeps the server configuration. If name is omitted, you'll be prompted to select from servers with stored credentials.
Tips
- Use global by default: Most MCP servers should be global so they're available everywhere
- Use
--localfor project-specific: Only use--localwhen a server is specific to one project - Header auth needs
oauth: false: When using--header,oauth: falseis automatically set - Check status: Use
arctic mcp listto see connection status and troubleshoot issues - Layered configs: Arctic merges configs from multiple locations (global, parent dirs, project)
Troubleshooting
Server shows as "disabled"
The server has enabled: false in the config. Remove the entry or set enabled: true.
Server shows as "needs auth"
The server requires OAuth authentication. Run:
arctic mcp auth <server-name>Server shows as "failed"
Check the error message in arctic mcp list. Common issues:
- Invalid URL or command
- Missing dependencies for local servers
- Network issues for remote servers
- Missing
oauth: falsewhen using header authentication
Command hangs on mcp list
If using header authentication, ensure oauth: false is set in the config. Remote servers try OAuth by default.