> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Control which tools each group can use in Agent Gateway

Create groups, grant them all tools, an allow-list or a deny-list on each connection, check what a user gets and follow recipes for common setups.
This guide is for the admin who decides which tools people's AI clients can use through Agent Gateway. By the end, you'll have groups for your teams, a grant on each connection that says which tools each group gets, and a way to check what any user can use.

> note: Available on request
>
> Agent Gateway is available on request. [Contact us](/support/contact-us/) to enable it for your
> workspace.

## Before you start

- Agent Gateway is enabled for your environment, and you've added at least one connection. See the [Agent Gateway quickstart](/agentkit/agent-gateway/quickstart/).
- The people you want to group are Gateway users. See [Add users](/agentkit/agent-gateway/users-and-access/#add-users).

## How access works

Three things decide which tools a person sees in their AI client:

| Piece | What it is | Where you set it |
| --- | --- | --- |
| **Group** | A set of Gateway users, such as `Sales` or `Contractors` | **Groups** |
| **Grant** | Gives one group access to one connection, with all of its tools, only the tools you allow or all tools except the ones you block | The connection's **Policies** tab |
| **Preview Access** | Shows the tools one user can use on a connection today | The connection's **Policies** tab |

A person belongs to the built-in **Everyone** group, plus every directory and manual group they're a member of. On each connection, they get the tools from the grants of all their groups combined, minus any tool one of their groups blocks.

## Create groups

1. In Agent Gateway, open **Groups**.

   > Image: Gateway groups page listing the built-in Everyone group and two manual groups, Contractors and Sales, with their source and member count

   Each group has a source:

   | Source | Members | Editable |
   | --- | --- | --- |
   | **Built-in** | The **Everyone** group: every signed-in user | No |
   | **Directory** | A group synced from your identity provider through [SCIM](/agentkit/agent-gateway/users-and-access/#sign-users-in-with-your-identity-provider) | No: change it in your identity provider |
   | **Manual** | The users you add | Yes |

2. Select **Create Manual Group**, enter a **Name**, such as `Sales`, and an optional **Description**, then select **Create Group**.

   > Image: Create manual group dialog with the name Sales and the description Account executives and sales engineers

3. To add people, open the group's **…** menu and select **Edit members**. Search for a user by email or name and select them. They're added straight away. To remove someone, select the delete icon next to their name.

   > Image: Sales group drawer with a search field for adding a member and one current member, alex@example.com

To delete a manual group, open its **…** menu and select **Delete**. This removes its members, its grants and any tool settings tied to them, and can't be undone.

## Grant a group access to a connection

1. In Agent Gateway, open **Connections**, select the connection and open its **Policies** tab. The table lists each group with a grant and its access.

   > Image: Policies tab of a GitHub connection with two grants: Everyone with All tools and Contractors with a deny-list, plus Preview Access and Add Group buttons

2. Select **Add Group** and choose the group.
3. Choose its **Access**:

   | Access | The group can use | Use it to |
   | --- | --- | --- |
   | **All tools** | Every tool on the connection | Give a team the whole app |
   | **Only specific tools** | Only the tools you select (an allow-list) | Give the least access a team needs |
   | **All tools except…** | Every tool except the ones you select (a deny-list) | Keep a few risky tools away from a group, even if another of its groups allows them |

4. For an allow-list or a deny-list, select the tools. The count above the list shows how many you've selected.

   > Image: Edit Group Access drawer for the Sales group with Only specific tools selected and four Gmail read tools checked, 4 of 38 selected

   > Image: Add Group Access drawer for the Contractors group with All tools except selected and githubpat_repo_delete checked under Blocked tools

5. Select **Add Grant**.

To change a grant, open its **…** menu, select **Edit**, change the access or the tools and select **Save Changes**. To remove it, select **Revoke** and confirm. Revoking removes the grant and its tool selection.

> Image: Revoke Contractors confirmation: This removes the grant and any per-tool refinements tied to it, with Cancel and Revoke buttons

## How grants combine

- **A connection with no grants is open to every user.** Once a connection has a grant, only the groups with a grant can use it.
- **New connections start with `Everyone: All tools`.** A connection you add after enabling the Gateway gets that grant, so every user can use it until you edit or revoke it.
- **A person gets the tools from all their groups' grants together.** If **Everyone** has **All tools**, each user has every tool their groups don't block. An allow-list for another group doesn't take tools away from its members.
- **A blocked tool stays blocked.** If any of a person's groups has a deny-list that blocks a tool, they can't use it, even if **Everyone** or another group allows it.
- **A tool missing from an allow-list isn't blocked.** Another of the person's groups can still grant it.

## Check what a user gets

On the connection's **Policies** tab, select **Preview Access** and pick a user. You see the groups that contribute to their access and every tool they can use on this connection today.

> Image: Preview Access for priya@example.com on a GitHub connection: contributing groups Everyone and Contractors, and 112 permitted tools

A user with no permitted tools has no grant on this connection through any of their groups:

> Image: Preview Access for priya@example.com on a Gmail connection: contributing groups Everyone and Contractors, 0 permitted tools, and No tools permitted under the current policy set

After each change, check Preview Access for one person in each group the change affects.

## Recipes

### Limit a connection to one team

For example, only the sales team should use Gmail.

1. On the Gmail connection's **Policies** tab, add a grant for `Sales` with **All tools**, or with **Only specific tools** for less.
2. Revoke the **Everyone** grant.
3. In **Preview Access**, check one member of `Sales`, who gets the tools, and one person outside it, who gets none.

Add the `Sales` grant before you revoke **Everyone**. If you revoke first, the connection has no grants and is open to every user again.

### Keep contractors read-only on a shared app

For example, everyone keeps full GitHub access, but contractors can only read.

1. On the GitHub connection, keep **Everyone: All tools**.
2. Add a grant for `Contractors` with **All tools except…** and select the tools that change something, such as `githubpat_repo_delete`, `githubpat_issue_create` and `githubpat_pull_request_merge`.
3. In **Preview Access**, check a contractor. The tools you blocked are missing, and everything else is there.

An allow-list for `Contractors` wouldn't work here: contractors are also in **Everyone**, which already grants every tool. Only a deny-list takes tools away.

### Block one risky tool for everyone

For example, nobody should delete repositories through an AI client.

1. On the connection's **Policies** tab, open the **Everyone** grant's **…** menu and select **Edit**.
2. Choose **All tools except…**, select the tool, such as `githubpat_repo_delete`, and select **Save Changes**.

Every user loses the tool, whatever their other groups allow.

### Roll out a new connection to a pilot group

A new connection starts with **Everyone: All tools**, so every user sees its tools as soon as you add it.

1. Right after you add the connection, add a grant for your pilot group, such as `Pilot`, then revoke the **Everyone** grant.
2. When the pilot ends, add **Everyone** back with **All tools**, or with a deny-list for the tools you want to keep restricted.

## Next

See what each plan includes in [Plans and limits](/agentkit/agent-gateway/plans-and-limits/).


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
