Roles and permissions

Identity and Access Management (IAM) roles and permissions let you control who can view, register, and manage agents, MCP servers, tools, standalone skills, endpoints, and bindings in Agent Registry.

To grant Agent Registry IAM roles to users or groups on your governance project or your management project, use the IAM page in the Google Cloud console or the Google Cloud CLI. For details, see Access control with IAM, and Manage access to projects, folders, and organizations.

Agent Registry roles

The following table describes Agent Registry IAM roles and their typical responsibilities:

Role

Description

Purpose

Agent Registry API Admin (roles/agentregistry.admin)

Full access to all Agent Registry resources, including agents, MCP servers, tools, endpoints, standalone skills, skill revisions, bindings, and skill IAM policies.

  • Register and manage agents, MCP servers, tools, and endpoints.
  • Create, update, and delete standalone skills and skill revisions.
  • Create and manage bindings and skill IAM policies.

Agent Registry API Editor (roles/agentregistry.editor)

Edit access to Agent Registry resources, including agents, MCP servers, tools, endpoints, standalone skills, and skill revisions.

  • Register and manage agents and MCP servers.
  • Update tool definitions and endpoints.
  • Create, update, and delete standalone skills and skill revisions.

Agent Registry API Viewer (roles/agentregistry.viewer)

Read-only access to view and search agents, MCP servers, tools, standalone skills, skill revisions, publishers, endpoints, and bindings.

  • Discover available agents, MCP servers, and tools.
  • View A2A skills, standalone skills, skill revisions, publishers, endpoints, and bindings for integration.

Agent Registry User (roles/agentregistry.user)

Read-only access to Agent Registry resources, plus access to create, update, and delete standalone skills and skill revisions.

  • Create, update, and delete standalone skills and skill revisions without edit access to agents, MCP servers, or endpoints.
  • Keep version control for skill revisions and centrally manage active states of skills.

Agent Registry permissions

The following table lists the permissions that each Agent Registry IAM role has:

(roles/agentregistry.admin)

Full access to Agent Registry API resources.

agentregistry.*

  • agentregistry.agents.get
  • agentregistry.agents.list
  • agentregistry.agents.search
  • agentregistry.bindings.create
  • agentregistry.bindings.delete
  • agentregistry.bindings.fetchAvailable
  • agentregistry.bindings.get
  • agentregistry.bindings.list
  • agentregistry.bindings.update
  • agentregistry.endpoints.get
  • agentregistry.endpoints.list
  • agentregistry.locations.get
  • agentregistry.locations.list
  • agentregistry.mcpServers.get
  • agentregistry.mcpServers.list
  • agentregistry.mcpServers.search
  • agentregistry.operations.cancel
  • agentregistry.operations.delete
  • agentregistry.operations.get
  • agentregistry.operations.list
  • agentregistry.publishers.get
  • agentregistry.publishers.list
  • agentregistry.services.create
  • agentregistry.services.delete
  • agentregistry.services.get
  • agentregistry.services.list
  • agentregistry.services.update
  • agentregistry.skillRevisions.create
  • agentregistry.skillRevisions.delete
  • agentregistry.skillRevisions.get
  • agentregistry.skillRevisions.list
  • agentregistry.skills.create
  • agentregistry.skills.delete
  • agentregistry.skills.get
  • agentregistry.skills.getIamPolicy
  • agentregistry.skills.list
  • agentregistry.skills.search
  • agentregistry.skills.setIamPolicy
  • agentregistry.skills.update

(roles/agentregistry.editor)

Edit access to Agent Registry API resources.

agentregistry.agents.*

  • agentregistry.agents.get
  • agentregistry.agents.list
  • agentregistry.agents.search

agentregistry.bindings.fetchAvailable

agentregistry.bindings.get

agentregistry.bindings.list

agentregistry.endpoints.*

  • agentregistry.endpoints.get
  • agentregistry.endpoints.list

agentregistry.locations.*

  • agentregistry.locations.get
  • agentregistry.locations.list

agentregistry.mcpServers.*

  • agentregistry.mcpServers.get
  • agentregistry.mcpServers.list
  • agentregistry.mcpServers.search

agentregistry.operations.*

  • agentregistry.operations.cancel
  • agentregistry.operations.delete
  • agentregistry.operations.get
  • agentregistry.operations.list

agentregistry.publishers.*

  • agentregistry.publishers.get
  • agentregistry.publishers.list

agentregistry.services.*

  • agentregistry.services.create
  • agentregistry.services.delete
  • agentregistry.services.get
  • agentregistry.services.list
  • agentregistry.services.update

agentregistry.skillRevisions.*

  • agentregistry.skillRevisions.create
  • agentregistry.skillRevisions.delete
  • agentregistry.skillRevisions.get
  • agentregistry.skillRevisions.list

agentregistry.skills.create

agentregistry.skills.delete

agentregistry.skills.get

agentregistry.skills.list

agentregistry.skills.search

agentregistry.skills.update

(roles/agentregistry.viewer)

Readonly access to Agent Registry API resources.

agentregistry.agents.*

  • agentregistry.agents.get
  • agentregistry.agents.list
  • agentregistry.agents.search

agentregistry.bindings.fetchAvailable

agentregistry.bindings.get

agentregistry.bindings.list

agentregistry.endpoints.*

  • agentregistry.endpoints.get
  • agentregistry.endpoints.list

agentregistry.locations.*

  • agentregistry.locations.get
  • agentregistry.locations.list

agentregistry.mcpServers.*

  • agentregistry.mcpServers.get
  • agentregistry.mcpServers.list
  • agentregistry.mcpServers.search

agentregistry.operations.get

agentregistry.operations.list

agentregistry.publishers.*

  • agentregistry.publishers.get
  • agentregistry.publishers.list

agentregistry.services.get

agentregistry.services.list

agentregistry.skillRevisions.get

agentregistry.skillRevisions.list

agentregistry.skills.get

agentregistry.skills.list

agentregistry.skills.search

(roles/agentregistry.user)

Create, update, and delete skills and skill revisions.

agentregistry.agents.*

  • agentregistry.agents.get
  • agentregistry.agents.list
  • agentregistry.agents.search

agentregistry.bindings.fetchAvailable

agentregistry.bindings.get

agentregistry.bindings.list

agentregistry.endpoints.*

  • agentregistry.endpoints.get
  • agentregistry.endpoints.list

agentregistry.locations.*

  • agentregistry.locations.get
  • agentregistry.locations.list

agentregistry.mcpServers.*

  • agentregistry.mcpServers.get
  • agentregistry.mcpServers.list
  • agentregistry.mcpServers.search

agentregistry.operations.get

agentregistry.operations.list

agentregistry.publishers.*

  • agentregistry.publishers.get
  • agentregistry.publishers.list

agentregistry.services.get

agentregistry.services.list

agentregistry.skillRevisions.*

  • agentregistry.skillRevisions.create
  • agentregistry.skillRevisions.delete
  • agentregistry.skillRevisions.get
  • agentregistry.skillRevisions.list

agentregistry.skills.create

agentregistry.skills.delete

agentregistry.skills.get

agentregistry.skills.list

agentregistry.skills.search

agentregistry.skills.update

For more information about IAM permissions, see Find the right predefined roles and IAM roles and permissions index.

Roles for cross-project management boundaries

When you configure a management boundary for your agentic components in Agent Registry, you must grant IAM roles to users or services at the following levels:

  • Management project: grant Agent Registry roles on the management project to users or services that discover and manage agents across the boundary. Users with viewer access on the management project can discover and search agents and MCP servers from all member projects across every boundary attached to that management project without needing explicit viewer permissions granted in each individual member project. If a team must not view assets from other boundaries, assign that boundary to a separate CapabilityConfig resource and management project.
  • Member projects: grant Agent Registry roles on specific member projects to developers who build, register, or maintain agents and tools within those specific projects.
  • Boundary configuration: creating and managing boundary configuration resources requires administrative roles on the enclosing folder or organization. For more information, see the required roles in Configure management boundaries in the Resource Manager documentation.

Restrict local registrations in member projects

Because manually registered Service and Binding resources created in a member project don't roll up to the management project, security administrators can enforce centralized registration in the management project in either of the following ways:

  • Block agentregistry.googleapis.com in member projects: when developers don't need to query Agent Registry directly in a member project, apply the constraints/gcp.restrictServiceUsage organization policy constraint on the parent folder or organization to deny agentregistry.googleapis.com, and override the policy on the management project. Blocking agentregistry.googleapis.com on member projects doesn't affect automatic discovery of runtime workloads from member projects into the management project.
  • Allow read-only discovery in member projects and deny local writes: to keep agentregistry.googleapis.com enabled in member projects for local read-only discovery while requiring all Service and Binding resources to be registered in the management project, grant developers Agent Registry API Viewer (roles/agentregistry.viewer) on the member project and attach an IAM deny policy that denies the following write permissions in member projects:

    • agentregistry.googleapis.com/services.create
    • agentregistry.googleapis.com/services.update
    • agentregistry.googleapis.com/services.delete
    • agentregistry.googleapis.com/bindings.create
    • agentregistry.googleapis.com/bindings.update
    • agentregistry.googleapis.com/bindings.delete

Access control for registered resources

Agent Registry roles govern who can manage and discover resources in the registry itself. To control which agents can communicate with registered services, endpoints, and MCP servers through Agent Gateway, you use Identity-Aware Proxy (IAP) egress policies:

For detailed instructions on configuring IAP egress policies, see Configure IAM agent policies.