> ## 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.

# Internal MCP Servers

> Build, deploy, and manage your custom MCP servers

Internal MCP servers are custom servers your team builds and deploys through Gumstack. They connect to your own services and APIs, giving your organization custom AI tools tailored to your workflows.

<Frame>
  <img src="https://mintcdn.com/gumstack/RGOCNHwGb3PE0tCf/images/platform/servers-list-internal.png?fit=max&auto=format&n=RGOCNHwGb3PE0tCf&q=85&s=4c99b70eafeb4f09bd8a13bd219bce8e" alt="Internal MCP servers list" width="2502" height="1454" data-path="images/platform/servers-list-internal.png" />
</Frame>

## Server list

The Internal MCPs page shows all your custom servers in a table with status, creator, and last updated timestamp. Use **Search** to filter by name, toggle **Show Deactivated** to include disabled servers, or switch to **My Servers Only** to see just yours.

Click **Create New Server** to start building a new server. See the [Quickstart](/building/quickstart) for a full walkthrough.

## Server detail

Click any server to open its detail page with **5 tabs**: Overview, Tools, Activity, Deployments, and Settings.

The header shows the server name, creator, a **Copy Server URL** button, link to the **GitHub repository**, and a **Deploy** button for manual deployments.

<Note>
  If the GitHub App isn't installed or doesn't have access to the repo, you'll see a warning banner at the top.
</Note>

### Overview tab

A quick snapshot of your server's health and recent activity.

<Frame>
  <img src="https://mintcdn.com/gumstack/RGOCNHwGb3PE0tCf/images/platform/server-detail-overview.png?fit=max&auto=format&n=RGOCNHwGb3PE0tCf&q=85&s=09d8882bc2ace0915e0a7676edc1cc21" alt="Server overview tab" width="2510" height="1692" data-path="images/platform/server-detail-overview.png" />
</Frame>

| Metric           | Description                               |
| ---------------- | ----------------------------------------- |
| **Total Calls**  | Total tool invocations in the last 7 days |
| **Unique Users** | Distinct users who called tools           |
| **Error Rate**   | Percentage of calls that failed           |
| **Avg Latency**  | Average response time in milliseconds     |

Below the stats: **Recent activity** (10 most recent tool calls with expandable rows), the **MCP Server URL** (SSE endpoint pointing to the latest production deployment), and the **Deployment overview** showing the currently live deployment and any in-progress builds.

### Activity tab

Server-specific activity log showing all tool calls for this server. Works like the [global Activity page](/platform/activity) with a few key differences:

<Frame>
  <img src="https://mintcdn.com/gumstack/RGOCNHwGb3PE0tCf/images/platform/server-detail-activity.png?fit=max&auto=format&n=RGOCNHwGb3PE0tCf&q=85&s=2d14d960520632b69b6e50cdc198e23e" alt="Server activity tab" width="2502" height="1712" data-path="images/platform/server-detail-activity.png" />
</Frame>

* **4 stat cards** at the top: Total Calls, Unique Users, Error Rate, Avg Latency
* **Tool filter** instead of Server filter (already scoped to this server)
* **Latency percentile indicators**: P25 (green), P85-95 (yellow), P95+ (red)
* **Histogram** with status breakdown (hidden for ranges over 24 hours)
* Pagination: 10 calls per page

### Deployments tab

Every push to `main` triggers an automatic deployment if the GitHub App is installed. The deployments tab shows deployment history with status, commit SHA + message, author, and timestamp.

<Frame>
  <img src="https://mintcdn.com/gumstack/RGOCNHwGb3PE0tCf/images/platform/server-detail-deployments.png?fit=max&auto=format&n=RGOCNHwGb3PE0tCf&q=85&s=5752d7716732bd4ba8e8c57c12609c87" alt="Server deployments tab" width="2512" height="1642" data-path="images/platform/server-detail-deployments.png" />
</Frame>

**Manual deploy**: Click the **Deploy** button in the server header to open the deploy dialog.

<Frame>
  <img src="https://mintcdn.com/gumstack/RGOCNHwGb3PE0tCf/images/platform/deploy-dialog.png?fit=max&auto=format&n=RGOCNHwGb3PE0tCf&q=85&s=1b4e5b9a579904b14b83a48d3a5566d1" alt="Create a new deployment dialog" width="1550" height="1035" data-path="images/platform/deploy-dialog.png" />
</Frame>

Select the branch (currently locked to `main`), choose a commit (latest or search by SHA), review the details, and click **Deploy**.

**Viewing logs**: Click **View Logs** on any deployment to open the logs modal.

<Tabs>
  <Tab title="Build Logs" icon="hammer">
    Shows the Docker build process: dependency installation, image creation, and push progress. Includes deployment status, commit SHA, and timestamp. If the build failed, the error is displayed prominently.

    Features: search, auto-scroll toggle, line numbers, ANSI color support.
  </Tab>

  <Tab title="Runtime Logs" icon="terminal">
    Shows your server's output in production: incoming requests, responses, and errors. The header shows service status, pod count, and revision number.

    | Control        | Options                                             |
    | -------------- | --------------------------------------------------- |
    | **Tail lines** | 100, 300, 500, 1000 lines                           |
    | **Time range** | Last 5 min, Last 15 min, Last 1 hour, Last 24 hours |

    Features: search, auto-scroll toggle, refresh, line numbers, ANSI color support.
  </Tab>
</Tabs>

### Settings tab

<Frame>
  <img src="https://mintcdn.com/gumstack/RGOCNHwGb3PE0tCf/images/platform/server-detail-settings.png?fit=max&auto=format&n=RGOCNHwGb3PE0tCf&q=85&s=8d050fcd6f125475fb5a56d70e78ab04" alt="Server settings tab" width="2566" height="1620" data-path="images/platform/server-detail-settings.png" />
</Frame>

<AccordionGroup>
  <Accordion title="General" icon="settings">
    Edit the **Server Name** and **Description**. The **MCP Server URL** is read-only and always points to the latest production deployment.
  </Accordion>

  <Accordion title="Authentication" icon="key-round">
    Read-only display of the authentication method chosen at creation. **Cannot be changed after creation.** Options are: No Authentication, API Key / Credentials, or OAuth 2.0.
  </Accordion>

  <Accordion title="Environment Variables" icon="lock">
    Manage key/value pairs securely injected into your server at runtime. Values are masked by default. Each variable supports **Copy key**, **Edit**, and **Remove** actions.

    <Warning>
      Reserved prefixes `GUMLOOP_*` and `GUMSTACK_*` are not allowed and will be rejected.
    </Warning>
  </Accordion>

  <Accordion title="Danger Zone" icon="circle-alert">
    **Disable Server**: Temporarily takes the server offline. All endpoints return errors until re-enabled.

    **Delete Server**: Permanently removes the server configuration, environment variables, deployment history, and webhooks. Your GitHub repository is **not** deleted.
  </Accordion>
</AccordionGroup>

## Creating a new server

For a full walkthrough, see the [Quickstart](/building/quickstart). The creation wizard has three steps:

1. **Basic Info**: Server name, description, GitHub org, repository name, visibility
2. **Authentication & Environment**: Auth method and environment variables
3. **Review**: Summary of all settings with edit buttons per section

<Info>
  You need a [GitHub connection](/platform/settings) configured before creating servers.
</Info>

## Related docs

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/building/quickstart">
    Full walkthrough for creating your first server
  </Card>

  <Card title="guMCP Servers" icon="server" href="/platform/gumcp-servers">
    Pre-built servers managed by Gumloop
  </Card>

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

  <Card title="Deploying" icon="cloud-upload" href="/deployment/deploying">
    Push-to-deploy details and scaling
  </Card>
</CardGroup>
