# MCP Servers

> Connect MCP servers as governed Resources and expose only the capabilities an Agent needs.

An MCP Server is an integration endpoint. In Constal it is represented by the existing Resource abstraction: the Resource identifies the server, references its Credentials and Policies, and publishes the capability contract available to an Agent.

MCP does not replace Tools or Credentials. The MCP Server supplies capabilities, a Credential authenticates the connection, and an Agent-owned Tool decides which model-facing actions to expose. Keeping those boundaries separate allows Credential rotation, Policy changes, and integration upgrades without changing the Agent's intent.

## What the Console shows {#console}

Open **Resources → MCP Servers** to inspect registered servers. Each row shows the server identity, advertised capabilities, authentication relationship, current consumers, and status. Open a server to review its exact CRN, capability contracts, Credential references, and Policy attachments.

Register an MCP Server through a supported Resource package or the Platform API. The package or adapter must translate the server's protocol into bounded Resource operations and preserve truthful effect and recovery semantics. A raw server URL is not enough for production use.

## Bind capabilities, not transports {#bind-capabilities}

An Agent manifest binds the MCP Resource by stable CRN. Agent code then invokes an accepted capability or projects it as a Tool, exactly as it would for another Resource kind:

```ts
import { opTool } from "@constal/sdk";

export const findTickets = opTool("linear", "issues.search");
```

The model never chooses the MCP server URL, Credential, tenant, customer, or principal. Those are resolved by the accepted Resource binding and Policy. Use a [scoped binding](/docs/credentials/scoped-bindings) when different callers should resolve different server or Credential targets.

## Review checklist {#review-checklist}

- Expose only the capabilities the Agent requires.
- Keep schemas bounded and descriptions outcome-oriented.
- Verify every external mutation has accurate effect and recovery behavior.
- Store authentication in Credentials, never in the Agent package or Tool arguments.
- Restrict network destinations and attach the narrowest practical Policy.
- Pin the adapter and capability contract during Agent deployment.

Continue with [Use Resources from Agents](/docs/resources/use.md) and [Build and use Tools](/docs/resources/tools.md).
