---
title: "MCP servers"
description: "Extend the agent's tool catalog with Model Context Protocol servers"
canonical_url: "https://hoplite.sh/docs/integrations/mcp"
markdown_url: "https://hoplite.sh/docs/integrations/mcp.md"
---

# MCP servers
URL: /docs/integrations/mcp
LLM index: /llms.txt
Description: Extend the agent's tool catalog with Model Context Protocol servers
Related: /docs/agent/tools, /docs/sandboxes/scripts, /docs/mcp-server

# MCP servers

Attach [Model Context Protocol](https://modelcontextprotocol.io) servers to a project and their tools join the agent's catalog alongside the [first-party tools](/docs/agent/tools).

<Callout type="info" title="Looking for the other direction?">
This page is about giving the Hoplite agent extra tools. To drive Hoplite from Claude Code, Cursor, or another MCP client, see [Hoplite's own MCP server](/docs/mcp-server).
</Callout>

## Two ways to configure

- **In the app** — under **Settings → Project → Connections**, add servers to the MCP section
- **In the repo** — the `mcpServers` array in [`.hoplite/settings.json`](/docs/sandboxes/scripts), so the config ships with the code

Both accept the same shape:

```json title=".hoplite/settings.json (excerpt)"
{
  "mcpServers": [
    {
      "name": "docs-search",
      "enabled": true,
      "config": {
        "transport": "http",
        "url": "https://mcp.example.com/mcp"
      }
    },
    {
      "name": "local-tooling",
      "enabled": true,
      "config": {
        "transport": "stdio",
        "command": "npx",
        "args": ["-y", "@example/mcp-server"]
      }
    }
  ]
}
```

## Transports

| Transport | Required fields | Notes |
| --- | --- | --- |
| `http` (default) | `url` | Streamable HTTP; `http(s)` URLs only |
| `sse` | `url` | Server-sent events; `http(s)` URLs only |
| `stdio` | `command` | Optional `args`, `cwd`, `env`; runs inside the sandbox |

<Callout type="warning" title="URL restrictions">
Remote (`http`/`sse`) server URLs may not point at loopback, link-local, private, or internal hosts — this guards against server-side request forgery. To talk to something running inside the sandbox, use a `stdio` server instead.
</Callout>

## Sitemap

See the full [sitemap](/docs/sitemap.md) for all pages.
Well-known sitemap: [/docs/.well-known/sitemap.md](/docs/.well-known/sitemap.md).
