> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gumstack.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Using Gumstack Servers in Gumloop

> How end users connect to and use your Gumstack MCP servers in Gumloop agents

Once a Gumstack admin deploys an internal MCP server, it becomes available to end users in [Gumloop agents](https://docs.gumloop.com). This page covers the full flow: connecting to Gumstack, selecting servers, authenticating, managing credentials, and how admin configurations affect the end-user experience.

<Info>
  This page focuses on **internal Gumstack MCP servers** in Gumloop agents. guMCP (pre-built) servers have their own connection flow and are not covered here.
</Info>

## Authentication

Using a Gumstack server requires two things:

1. **Gumstack access**: A one-time authorization that links the user's Gumloop account to Gumstack. This is required for all Gumstack servers.
2. **Server-specific credentials**: Depends on the server's auth method. OAuth servers need a per-server OAuth flow. API Key servers need user-provided keys. No Auth servers skip this entirely.

## Connecting to Gumstack

<Steps>
  <Step title="Open the MCP connection dialog">
    In a Gumloop agent, go to the **Tools** section and click **Connect an app (MCP)**. The dialog has two tabs: **Gumloop** (managed integrations) and **Custom** (external MCP server URLs).

    Gumstack appears as a collapsible section within the **Gumloop** tab.

    <Frame>
      <img src="https://mintcdn.com/gumstack/RGOCNHwGb3PE0tCf/images/platform/agent-connect-mcp-dialog.png?fit=max&auto=format&n=RGOCNHwGb3PE0tCf&q=85&s=b6590b9ac2355c930bd2154ceb6a0aab" alt="Connect an app with MCP dialog showing Gumstack under the Gumloop tab" width="1054" height="420" data-path="images/platform/agent-connect-mcp-dialog.png" />
    </Frame>
  </Step>

  <Step title="Authorize Gumstack (first time only)">
    Click **Gumstack** to expand it, then click **Connect to Gumstack**.

    <Frame>
      <img src="https://mintcdn.com/gumstack/RGOCNHwGb3PE0tCf/images/platform/agent-gumstack-connect.png?fit=max&auto=format&n=RGOCNHwGb3PE0tCf&q=85&s=51be8ad3dd31efb39ac31003d68c0659" alt="Gumstack expanded with Connect to Gumstack button" width="1062" height="658" data-path="images/platform/agent-gumstack-connect.png" />
    </Frame>

    This opens an authorization screen. Click **Allow** to grant Gumstack permission to connect to MCP servers on your behalf. This is a one-time step. Returning users go straight to the server list.

    <Frame>
      <img src="https://mintcdn.com/gumstack/RGOCNHwGb3PE0tCf/images/platform/agent-authorize-gumstack.png?fit=max&auto=format&n=RGOCNHwGb3PE0tCf&q=85&s=4aa154e9305db3f6c21948654c056181" alt="Authorize Gumstack screen requesting access to MCP servers" width="1590" height="1280" data-path="images/platform/agent-authorize-gumstack.png" />
    </Frame>
  </Step>

  <Step title="Select servers">
    After authorization, you'll see all available Gumstack servers. Disabled servers, fully restricted servers, and servers you've already added are filtered out.

    Select the servers you want using the checkboxes. You can add **multiple servers** at once.

    <Frame>
      <img src="https://mintcdn.com/gumstack/RGOCNHwGb3PE0tCf/images/platform/agent-server-selection.png?fit=max&auto=format&n=RGOCNHwGb3PE0tCf&q=85&s=6522f6318b2e377031059453a75ee36c" alt="Server selection showing available Gumstack servers" width="1084" height="982" data-path="images/platform/agent-server-selection.png" />
    </Frame>
  </Step>
</Steps>

## Server-specific credentials

After adding a server, what happens next depends on its **authentication method**.

<Tabs>
  <Tab title="No Authentication" icon="globe">
    No additional credentials needed. The server is immediately ready to use after connecting to Gumstack.

    These servers don't appear on the credentials page since there's nothing to configure.

    **Best for**: Internal services, shared utilities, or tools where access is managed entirely by permission groups.
  </Tab>

  <Tab title="API Key / Credentials" icon="key-round">
    The server appears in the agent's Tools section with a **Connect** button. Clicking it opens the credentials page where the user enters their API key or credentials.

    Once saved, the server is ready. Credentials are securely stored and reused.

    **Best for**: Third-party APIs where each user has their own key (e.g., OpenAI, Twilio, Stripe).
  </Tab>

  <Tab title="OAuth 2.0" icon="lock">
    The server appears with a **Connect** button, similar to API Key servers. Clicking it redirects through an **OAuth flow specific to that service** (e.g., Soundcloud, Slack, GitHub). This is separate from the initial Gumstack authorization.

    Once authorized, the token is stored. Users can **Reauthenticate** anytime if their token expires.

    **Best for**: Third-party services that support OAuth (e.g., Soundcloud, Slack, GitHub, Linear).
  </Tab>
</Tabs>

## The agent Tools section

Once servers are connected, they appear in the agent's **Tools** section.

<Frame>
  <img src="https://mintcdn.com/gumstack/RGOCNHwGb3PE0tCf/images/platform/agent-tools-connected.png?fit=max&auto=format&n=RGOCNHwGb3PE0tCf&q=85&s=3f83df19f04f11067b33ccc9e630ef77" alt="Agent Tools section showing connected Gumstack servers" width="992" height="376" data-path="images/platform/agent-tools-connected.png" />
</Frame>

* Fully connected servers show their name and the Gumstack icon
* Servers needing credentials show a **Connect** button
* Each server has a three-dot menu for switching between **Personal** and **Workspace** credentials

### Tool restrictions

When an admin restricts specific tools via [permission groups](/platform/permission-groups), those tools are **greyed out** in the agent with a **"Restricted"** label and tooltip: *"{tool_name} is restricted by your admin."*

Restricted tools can't be toggled on and don't count toward the selectable tool count. If called at runtime, the call is blocked with `permission_denied` status.

## Managing credentials

Users manage Gumstack credentials at **Settings > Profile > [Credentials](https://www.gumloop.com/settings/profile/credentials)** under the **Gumstack** tab.

<Frame>
  <img src="https://mintcdn.com/gumstack/RGOCNHwGb3PE0tCf/images/platform/agent-credentials-page.png?fit=max&auto=format&n=RGOCNHwGb3PE0tCf&q=85&s=992fc105d7d27198698e9cccffcfab53" alt="Gumstack Servers credentials management page" width="2414" height="1242" data-path="images/platform/agent-credentials-page.png" />
</Frame>

Each server card shows its name, connection status, and auth type. Expand a card to see credentials organized by provider.

| Action             | Description                                                              | Available for |
| ------------------ | ------------------------------------------------------------------------ | ------------- |
| **Revoke**         | Remove stored credentials. Tools using this credential will stop working | All types     |
| **Reauthenticate** | Re-run the OAuth flow to refresh the token                               | OAuth only    |
| **Set as Default** | Make this credential the default for this server                         | All types     |

<Tip>
  If a server stops working, try revoking and reauthenticating on this page. This resolves most token expiration issues.
</Tip>

## How admin settings affect end users

### Permission groups and tool access

| Admin action                            | End-user impact                                      |
| --------------------------------------- | ---------------------------------------------------- |
| **Restrict some tools**                 | Server appears, but restricted tools are greyed out  |
| **Revoke tool access after connection** | Calls to revoked tools fail with "Permission Denied" |
| **Move user to a different group**      | Access changes immediately                           |

Blocked calls are logged with **Permission Denied** status in the Gumstack [Activity](/platform/activity) dashboard.

### Server states

| Server state             | What happens in agents                                                                                                         |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------ |
| **Active**               | Works normally                                                                                                                 |
| **Disabled**             | Shows yellow "Disabled" badge. All tool calls fail. Can't be added to new agents. Re-enabling restores it without reconnecting |
| **Deleted**              | Shows red "Deprecated" badge. Unusable                                                                                         |
| **Building / Deploying** | No interruption. Current deployment keeps serving requests                                                                     |

### Environment variable changes

Environment variables are injected at deployment time. Changes **require a new deployment** to take effect.

## Activity logging

Every tool call made through a Gumstack server is automatically logged in the [Activity](/platform/activity) dashboard, regardless of auth type.

<Frame>
  <img src="https://mintcdn.com/gumstack/RGOCNHwGb3PE0tCf/images/platform/activity-expanded-row.png?fit=max&auto=format&n=RGOCNHwGb3PE0tCf&q=85&s=ceee271e497a00075646f0fd8b1678ee" alt="Activity log showing tool call inputs and outputs" width="1550" height="1035" data-path="images/platform/activity-expanded-row.png" />
</Frame>

Each call captures: **server**, **tool**, **user**, **inputs** (full JSON), **outputs** (full JSON), **latency** (with percentile comparison), **status** (`success`, `error`, `permission_denied`, or `timeout`), and any **error or blocked reason**.

This data is visible in three places:

1. **[Global Activity](/platform/activity)**: All calls across all servers
2. **[Server detail](/platform/internal-servers) > Activity tab**: Calls for a specific server
3. **[User detail](/platform/users)**: All calls by a specific user

## End-to-end example

<Steps>
  <Step title="Admin deploys a server">
    The IT admin creates an internal MCP server in Gumstack with OAuth authentication. The server exposes tools like `search_tracks` and `get_playlist`.
  </Step>

  <Step title="Admin configures access">
    The admin grants the "Engineering" group access to both tools, but restricts the "Marketing" group to only `search_tracks`.
  </Step>

  <Step title="User connects in their agent">
    An engineer clicks **Connect an app (MCP)**, selects **Gumstack**, authorizes (first time only), and picks the server.
  </Step>

  <Step title="User authenticates with the server">
    Since it's an OAuth server, the engineer clicks **Connect** in the Tools section and completes the OAuth flow.
  </Step>

  <Step title="User interacts with the agent">
    The engineer can call both `search_tracks` and `get_playlist`. A marketing team member would see `get_playlist` greyed out with "Restricted".
  </Step>

  <Step title="Activity is logged">
    Every call (successful, failed, or denied) appears in Gumstack's Activity dashboard with full details.
  </Step>
</Steps>

## Best practices

<AccordionGroup>
  <Accordion title="Set up permissions before announcing the server" icon="shield">
    Configure [permission groups](/platform/permission-groups) and the [tool access matrix](/platform/internal-servers) before telling users about a new server. This prevents confusion from permission denied errors on first use.
  </Accordion>

  <Accordion title="Test with a small group first" icon="users">
    Create a "Beta Testers" permission group and grant them access. Verify the full flow works before expanding to broader groups.
  </Accordion>

  <Accordion title="Monitor activity after launch" icon="chart-column">
    Check the [Activity](/platform/activity) dashboard for the first few days. Look for errors, high latency, or permission denials that suggest misconfiguration.
  </Accordion>

  <Accordion title="Choose the right auth method" icon="lock">
    Use **No Auth** for internal utilities, **API Key** when each user has their own key, and **OAuth** for third-party integrations. OAuth provides the best user experience since token management is automatic.
  </Accordion>
</AccordionGroup>

## Related docs

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/building/quickstart">
    Build and deploy your first server
  </Card>

  <Card title="Permission Groups" icon="shield" href="/platform/permission-groups">
    Configure who can access which tools
  </Card>

  <Card title="Activity" icon="chart-column" href="/platform/activity">
    Monitor tool usage in real-time
  </Card>

  <Card title="Using Servers Externally" icon="monitor" href="/building/using-externally">
    Connect to Cursor, Claude, and other MCP clients
  </Card>
</CardGroup>
