|
| 1 | +--- |
| 2 | +sidebar_position: 1 |
| 3 | +title: "Linear MCP Gateway Demo" |
| 4 | +description: "Enforce trust-based access control on Linear's MCP server — allow a Developer to create issues while restricting a Project Manager to read-only access." |
| 5 | +--- |
| 6 | + |
| 7 | +# Linear MCP Gateway Demo |
| 8 | + |
| 9 | +A walkthrough demonstrating how to set up Permit.io's Agent Security MCP Gateway so that users with different trust levels are limited in what they can do with their Linear MCP tools. |
| 10 | + |
| 11 | +## Problem Statement |
| 12 | + |
| 13 | +When exposing Linear's MCP server to multiple users or AI agents, everyone gets the same level of access by default. An intern and a team lead can both create issues, delete comments, and modify projects — there's no way to enforce least-privilege access out of the box. |
| 14 | + |
| 15 | +This demo shows how to solve that by placing Permit.io's MCP Gateway in front of the Linear MCP server. |
| 16 | + |
| 17 | +**Task:** Use Permit.io's MCP Gateway to allow a Developer (High trust) to create Linear issues and a Project Manager (Medium trust) to only list Linear issues. |
| 18 | + |
| 19 | +## Before You Begin |
| 20 | + |
| 21 | +1. [Create a Permit.io Account](/quickstart/#1-create-a-permit-account) |
| 22 | +2. [Create an Agent Security Account](/permit-mcp-gateway/guide) |
| 23 | + |
| 24 | +## Step 1 — Set Up Your Host and MCP |
| 25 | + |
| 26 | +1. Go to the [**Dashboard**](https://app.agent.security/) and select **Hosts**, then click **Create Host**. |
| 27 | + |
| 28 | +  |
| 29 | + |
| 30 | +2. Fill in: |
| 31 | + - **Subdomain** — choose a prefix (e.g., `my-tenant`). A unique suffix is auto-generated. |
| 32 | + - **Project** — select the Permit project that contains the environment you want to use. |
| 33 | + - **Environment** — select the Permit environment this host will use. The environment cannot be changed after the host is created. |
| 34 | + |
| 35 | +  |
| 36 | + |
| 37 | +3. Click **Create Host**. |
| 38 | + |
| 39 | +4. The Host you created exists but has no abilities because it is not linked to an external MCP. Click **MCP Servers** to create an MCP server. |
| 40 | + |
| 41 | +  |
| 42 | + |
| 43 | +5. Enter the Linear MCP URL: `https://mcp.linear.app/mcp`. Upon pressing **Connect**, you will be prompted by Linear to sign in. |
| 44 | + |
| 45 | +  |
| 46 | + |
| 47 | +6. All of the tools available to the Linear MCP are shown as imported. For this demo we only need two tools: `list_issues` and `save_issue`. Set `save_issue` to **High** trust and `list_issues` to **Medium** trust. You can adjust tool trust levels afterwards as well. |
| 48 | + |
| 49 | +  |
| 50 | + |
| 51 | +Your MCP Gateway now has Linear MCP abilities. |
| 52 | + |
| 53 | +## Step 2 — Add Users |
| 54 | + |
| 55 | +To add users in your organization, they will need the Gateway MCP URL found in the **Dashboard** tab. |
| 56 | + |
| 57 | + |
| 58 | + |
| 59 | +### Developer Signs Up with Claude Desktop |
| 60 | + |
| 61 | +The Developer can add the MCP configuration object found in the Dashboard into the Claude Desktop config file, or add the MCP URL via the Claude Desktop UI. |
| 62 | + |
| 63 | +Upon adding the MCP connector and connecting, the Developer will be brought to the MCP Gateway Consent Service to sign in or register an account. |
| 64 | + |
| 65 | + |
| 66 | + |
| 67 | + |
| 68 | + |
| 69 | +Upon signing in, the new user will not have any MCPs available because the admin has not yet granted access. |
| 70 | + |
| 71 | + |
| 72 | + |
| 73 | +Navigate to **Humans** in the Dashboard — you will see the new user has registered. Grant the user MCP Server Access to the Linear MCP created previously. Because this user is a Developer, set the **Max Trust Level** to **High**. |
| 74 | + |
| 75 | + |
| 76 | + |
| 77 | +After refreshing, the user will see the MCP available for selection. Upon selecting it, they must authorize via Linear. |
| 78 | + |
| 79 | + |
| 80 | + |
| 81 | + |
| 82 | + |
| 83 | + |
| 84 | + |
| 85 | +The user can also set restrictions on their agent's use of the MCP. See the [Consent Service](/permit-mcp-gateway/consent-service) documentation to learn more. |
| 86 | + |
| 87 | + |
| 88 | + |
| 89 | +### Project Manager Signs Up with Claude Code |
| 90 | + |
| 91 | +The signup and consent service procedure is the same as described above. The only difference is that when the admin assigns access, the **Max Trust Level** is set to **Medium** instead of High. |
| 92 | + |
| 93 | +This is what the Project Manager will see when connecting Claude Code to the MCP: |
| 94 | + |
| 95 | + |
| 96 | + |
| 97 | +## Step 3 — Test Actions by User |
| 98 | + |
| 99 | +### PM (Claude Code) Tries to Create Issue |
| 100 | + |
| 101 | + |
| 102 | + |
| 103 | +As expected, the PM does not have a high enough trust level and is returned **Permission Denied** for `save_issue`. |
| 104 | + |
| 105 | +### Developer (Claude Desktop) Tries to Create Issue |
| 106 | + |
| 107 | + |
| 108 | + |
| 109 | +As expected, the Developer successfully creates an issue. |
| 110 | + |
| 111 | +### Both Users List Issues |
| 112 | + |
| 113 | + |
| 114 | + |
| 115 | + |
| 116 | + |
| 117 | +As expected, both the Project Manager and Developer succeed in listing issues — their trust levels meet the Medium trust requirement of the `list_issues` tool. |
| 118 | + |
| 119 | +## Summary |
| 120 | + |
| 121 | +| User | Trust Level | `list_issues` (Medium) | `save_issue` (High) | |
| 122 | +|------|-------------|----------------------|---------------------| |
| 123 | +| Developer | High | Allowed | Allowed | |
| 124 | +| Project Manager | Medium | Allowed | Denied | |
| 125 | + |
| 126 | +This demo shows how Permit MCP Gateway enforces least-privilege access on MCP tools based on trust levels — without any changes to the underlying Linear MCP server. |
0 commit comments