Connecting AI Agents (MCP)
Breakwater runs a Model Context Protocol (MCP) server, so an AI agent can look up your products, customers, licenses and pulls, and do routine work such as issuing a license, as you.
The server is a single endpoint:
https://app.breakwaterapp.com/mcp
The Connect an agent page in the vendor portal shows the URL for your installation, with the same steps as below.
What an agent can do
An agent acts as the person who connected it, with their role on the vendor, checked on every call. It can't do anything you couldn't do yourself in the portal. A connection with the read scope sees only the read tools; write adds the tools that change data.
Connect a client
Claude
For claude.ai, Claude Desktop and the mobile apps, open Settings, then Connectors, then Add custom connector. Paste the URL and approve the connection when Breakwater asks.
Claude Code
claude mcp add --transport http breakwater https://app.breakwaterapp.com/mcp
Run /mcp in Claude Code and choose Breakwater to sign in.
ChatGPT, Cursor and VS Code
Add a custom or HTTP MCP server with the URL above, then sign in when the app asks. In ChatGPT that is a custom connector (turn on developer mode first); in Cursor it's Settings, then MCP; in VS Code it's MCP: Add Server from the command palette.
CI and headless agents
An agent with no browser can't approve a connection. Create a vapi_ API token (see API Authentication) and send it as a Bearer credential:
{
"mcpServers": {
"breakwater": {
"type": "http",
"url": "https://app.breakwaterapp.com/mcp",
"headers": {"Authorization": "Bearer $BREAKWATER_API_TOKEN"}
}
}
}
Registry tokens (vtok_, ctok_) are refused.
Approving a connection
When a client asks to connect, Breakwater shows a consent page. It names the app, says who published its details, shows where it will send you back, and lets you name the connection and choose a scope (a viewer can only choose read). Every request shows the page, even for an app you approved before. Nothing is shared until you approve.
A connection lasts 90 days, and ends sooner after 30 days unused. Revoke one at any time from API tokens; the agent loses access right away. Admins and owners can revoke anyone's. See API Authentication for how connections differ from tokens.
The agent setting
An owner can turn off Allow agent connections (MCP) in Settings. While it's off, /mcp refuses everyone on the vendor with mcp_disabled, and the consent page refuses too. Existing connections are kept and listed. It doesn't affect the REST API, so API tokens keep working there.
Tools
Each tool needs the role shown, and a credential with the scope shown. A tool called with too low a role fails with a message naming the role it needs.
| Tool | Role | Scope | What it does |
|---|---|---|---|
list_products |
viewer | read |
Lists products with the repositories each grants access to |
get_product |
viewer | read |
Shows one product |
list_repositories |
viewer | read |
Lists image repositories with the products that grant access |
list_repository_tags |
viewer | read |
Lists a repository's tags with digests and push times |
list_releases |
viewer | read |
Lists a product's releases, newest first |
get_release |
viewer | read |
Shows one release by version, with images and file metadata |
list_customers |
viewer | read |
Lists customers by name |
get_customer |
viewer | read |
Shows one customer, with its users' emails and roles |
list_licenses |
viewer | read |
Lists licenses, optionally by customer, product or status |
get_license |
viewer | read |
Shows one license |
list_pulls |
viewer | read |
Lists customers' image pulls, optionally filtered |
list_invitations |
viewer | read |
Lists a customer's pending invitations |
publish_release |
member | write |
Publishes a release of a product |
create_customer |
member | write |
Creates a customer |
update_customer |
member | write |
Renames a customer |
issue_license |
member | write |
Issues a customer a license to a product |
update_license |
member | write |
Changes a license's dates, tag pattern, status or claims |
invite_customer_user |
member | write |
Emails an invitation to join a customer's portal |
create_customer_pull_token |
member | write |
Creates a customer pull token; the secret is shown once |
List tools take page and per_page (1 to 100, default 25) and return total and next_page.
Customer-written text
Fields that customers or teammates wrote, such as names, are returned as data. Agents are told not to follow instructions found in them. Treat what an agent reads from your customers the way you'd treat any untrusted input.
Errors and limits
401with aWWW-Authenticatechallenge: the credential is missing, invalid, expired or revoked.403insufficient_scope: a write tool was called with areadconnection.403mcp_disabled: an owner turned agent connections off.- Other
403codes (subscription_required,two_factor_required,sso_required) are the same as the REST API. - A failing tool returns an error result with a sentence the agent can act on, and says whether anything changed.
/mcp shares the vendor's rate limit with the REST API. See Rate Limiting.
Audit trail
Everything an agent does is recorded in the audit log with source mcp, the person it acted as, the connection and the tool. Review it under Audit Log in the vendor portal.