Skip to main content
Model Context Protocol servers expose tools and data to agents. Configure an external server for the provider that should use it. Mains also supplies built-in tools for supported modes. Tool availability is based on both the provider and the run’s mode.

Claude servers

Claude configuration is read from:
  • ~/.claude/settings.json and ~/.claude.json.
  • Project .claude/settings.json and .mcp.json.
  • Project .claude/settings.local.json.
Local settings take precedence when server names overlap. A project .mcp.json can define a remote server:
Start a new session after changing server configuration.

Codex servers

Configure Codex servers through its CLI or native configuration. Mains uses the installed runtime’s MCP configuration and plugin capabilities. For example:
A server requiring authentication must be connected before its protected tools are usable. Plugins can bundle these connections.

Cursor servers

Cursor’s ACP runtime reads project or user .cursor/mcp.json configuration. Start a new session after changing it and approve servers when the runtime asks. Team-level servers from the Cursor dashboard are not available through ACP; see the official ACP guide. Copilot uses its own runtime configuration. Adding a server to Claude’s settings is not a universal installation for all providers.

Built-in Mains tools

Claude and Copilot use a pre-tool hook for package guards, so they do not need the explicit CheckPackage tool. Voice has a separate, session-scoped coordination bridge for its worker chats. It does not give ordinary runs unrestricted task or tool access. Git commits and PRs are handled by Git actions or explicitly requested shell commands. The old CommitChanges, CreatePR, and GetWorkspaceDiff tools are not part of the current Mains registry.

Apps and forms

A server can return an interactive app or request a form. Mains handles supported Codex forms through the approval interface. If tools are missing, inspect the selected provider, server authentication, and configuration scope, then refresh or start a new run.