Skip to main content

MCP

MCP servers add external tools to Anyy. Each server belongs to one Profile. Configure its connection and tool exposure, then save. Probe is an optional connection check; it is not required to save or enable a server.

Configure through a conversation​

You can give Anyy a specific MCP endpoint or local server command and ask it to add the server to the current Profile. The conversation uses the existing Anyy CLI when shell tools are available; MCP configuration is not a separate native model tool. Use the same Profile for the conversation and Dashboard. When an explicit CLI Profile path is needed, it is the Anyy Profile path, which can differ from a shell's HOME.

After the configuration is saved, refresh this page to inspect the Server ID, enabled setting and connection. You can also add the server directly on this page, then ask Anyy to use it in the next conversation turn. With codemode exposure it discovers and calls the tools through Codemode; deferred uses tool search. Saving a definition, seeing its name, and actually calling a remote tool are separate checks. A failed connection must remain visible as a failure even when the configuration was saved successfully.

Add a server in Dashboard​

Open Dashboard → MCP → Add MCP server.

  1. Enter a stable Server ID using letters, numbers, hyphens, or underscores.
  2. Choose stdio for a local command or http for a remote endpoint.
  3. Enter the command and arguments, or the MCP URL.
  4. Set provider authentication, OAuth options, headers, or environment values as needed.
  5. Choose Exposure and optional ordered JSON tool overrides.
  6. Select Save. Use Probe to inspect connection results when needed.

The local command runs with the operating-system access of the Anyy runtime. Ordinary environment/header/OAuth values keep the strings you enter; Save does not infer a Secret reference from a field name. Use explicit secret references for Anyy-managed secret values. See value expressions.

The shared connection advertises the resident Workspace root, fixed when the MCP manager starts. A local process's configured working directory is separate from that root. See initialization and workspace roots for initialization, root and working-directory behavior.

Connection prerequisites​

Supported client transports are stdio and Streamable HTTP (http). A separate sse transport is rejected; HTTP can still carry event streams as part of Streamable HTTP. Remote endpoints must use HTTPS, except loopback HTTP URLs.

For stdio, install the server executable and its dependencies on the machine running Anyy. An npx command requires Node.js/npm there; Anyy does not bundle those runtimes or install that server for you. Only a limited process environment (including PATH and HOME) is inherited; set other required values explicitly with server env. HTTP servers do not require a local Node.js runtime.

Settings and Profile definitions​

The saved Profile definition and the effective project entry can come from different files. Check the server's configuration source before editing; see Profile and project configuration.

Use the existing enabled toggle for enable/disable. In Edit, select the settings operation to save only Exposure to the selected source or existing override; leave transport and definition fields empty. It does not reconnect unrelated servers. Exposure changes do not reconnect the selected server either. Use a separate Profile definition operation for transport, credentials, description and ordered tool overrides. Do not combine the two operations in one save.

A connection error after a settings save does not undo that saved setting. mcp reload reconnects loaded values; rereading hand-edited files requires startup or an idle session.reload RPC, not another connection test.

Tool exposure​

ValueBehavior
codemodeDefault; accessible through Codemode discovery
deferredDiscovered through tool search
directDeclared directly to the model
hiddenExcluded from model and Codemode discovery

toolExposure overrides the server default. An exact name takes precedence; otherwise the first matching wildcard rule wins, so object order matters:

{"search":"direct","read*":"deferred","*":"hidden"}

MCP configuration does not create or activate mcp-* personal toolsets. Ordinary Anyy personal toolsets and parent tool restrictions remain separate.

HTTP authentication​

When neither an Authorization header nor a provider reference is configured, Anyy supports the remote server’s OAuth flow when needed. A provider reference is a JSON object:

{"provider":"provider-id"}

OAuth options are another JSON object, for example {"clientId":"registered-client"}. The old auth: oauth, header, and none selectors are not accepted. Store sensitive headers as secret references; do not put credentials in URLs.

Save the server, then select Sign in on its detail page. Open the authorization page; if the browser cannot reach Anyy, paste the full redirect URL into this login form. Cancel or leave the page to stop the pending login. The CLI alternative is anyy mcp login SERVER_ID --timeout 300.

To sign out while retaining the server, use anyy mcp logout SERVER_ID with the exact configured ID; see sign out for credential and cache behavior. This is a CLI command, not an additional Dashboard button. Removing a raw Profile definition also clears its Anyy-managed OAuth credentials. For project definitions, use the project CLI/file workflow; remove --local preserves those grants and takes effect after configuration is reread. Existing profile ownership and credential protection apply to all configuration changes.

Status and tools​

The server setting says whether it is enabled. Runtime availability reports connected, pending, degraded, or unavailable separately. Probe results contain one tools inventory with each tool's name, visible_name, description, exposure, and offered facts. The inventory is not an approval or allowlist decision.

HTTP's default OAuth support does not require an anonymous server to sign in. Connection readiness and credential status are separate: auth_mode: oauth can coexist with a ready connection and OAuth material marked not_loaded. A fresh absence of tokens alone is not a reauthentication request. An actual server challenge, expired authorization or explicit logout keeps its normal sign-in and credential-state behavior.

Open Tools for schemas and tool descriptions. Inspect redacted diagnostic events from the server page or CLI.

Resource capabilities use the shared list_mcp_resources, list_mcp_resource_templates and read_mcp_resource tools. Status reports resources_advertised, prompts_advertised and server_capabilities; the old resource/prompt enabled, posture and count fields and configuration switches are retired. See resources and templates for inputs, exposure and output behavior.

Enabled servers configured for Codemode or deferred discovery also appear in a bounded mcp_servers prompt summary. The configured description takes priority over the first line of available server instructions. A server can be listed while still connecting; direct-only, hidden-only and disabled servers are omitted.

Saving a description or changing exposure does not rewrite the active run's prompt. The summary is captured when each run starts and updates on the next prompt. See server summaries.

CLI​

anyy mcp add docs --command mcp-docs --exposure codemode
anyy mcp add remote --url https://example.com/mcp --auth '{"provider":"provider-id"}'
anyy mcp configure docs --exposure deferred
anyy mcp set docs description 'Documentation tools'
anyy mcp set docs toolExposure '{"read*":"deferred","*":"hidden"}'
anyy mcp test docs
anyy mcp status --json
anyy mcp show docs
# Only if the current docs server advertises this name and schema:
anyy mcp call docs.search --args '{"query":"Anyy"}'
anyy mcp disable docs
anyy mcp remove docs

add saves an enabled lazy server by default. Use --disable to save it disabled. Configuration does not perform tool-selection prompts or require a connection probe.

The old global mcp.client.enabled, tools.include, tools.exclude, tools.trusted, --include, and --activate-toolset are retired and rejected. Update configuration to the exposure fields. On RPC, ordered overrides travel as a tool_exposure JSON string and become the single ordered toolExposure config value.

Troubleshooting​

ProblemNext step
Enabled server remains unavailableInspect logs and run anyy mcp test SERVER_ID
Configuration is rejectedCheck typed fields and remove retired selectors
OAuth needs attentionRun anyy mcp login SERVER_ID
Tool is missingCheck server enabled state, exposure, and discovery tools
Local process will not startVerify its command, arguments, and environment