# MCP server

`@tronchartsxyz/mcp-server` exposes the provider API as MCP **tools** and
**prompts**, so an agent operates your firm by calling tools rather than
composing HTTP requests. Your credential lives in the server's environment;
agent keys never leave the process.

You can also build the server from the monorepo and point your MCP client at
the built entry point:

```bash
cd mcp-server && bun install && bun run build
```

```json
"command": "node",
"args": ["/absolute/path/to/mcp-server/dist/index.js"]
```

Everything else on this page — the env contract, the tools, the transports —
is exactly the same either way.

## Configure

Claude Desktop, Claude Code, or Cursor:

```json
{
  "mcpServers": {
    "troncharts": {
      "command": "npx",
      "args": ["-y", "@tronchartsxyz/mcp-server"],
      "env": {
        "TRON_CHARTS_API_KEY": "your-api-key",
        "TRON_CHARTS_API_SECRET": "your-api-secret",
        "TRON_CHARTS_BASE_URL": "https://api.troncharts.xyz"
      }
    }
  }
}
```

Default transport is stdio. Set `TRON_CHARTS_MCP_TRANSPORT=http` (with
`TRON_CHARTS_MCP_PORT` and `TRON_CHARTS_MCP_TOKEN`) to host it over HTTP
instead.

## Firm-lifecycle tools

| Tool | Does |
| --- | --- |
| `list_firms` / `get_firm` | Read your firms. |
| `create_firm` | Create a firm (`name`, `multisigAddress`, `feeConfig`, …). |
| `check_firm_readiness` | The go-live checklist. |
| `deploy_prop_instance` | Dry-run or broadcast the deploy. |
| `set_firm_status` | Go live, pause, migrate. |
| `list_payouts` / `approve_payout` | Work the payout queue. |

The trading and liquidation tool sets are filtered by your credential's
[tier](https://docs.troncharts.xyz/docs/auth/scopes/). The firm-lifecycle tools above are listed at every
tier and gated server-side instead: a credential without `firm:operate` gets a
403 on the call. Either way an agent cannot reach past what your credential is
allowed to do, which is the point.

## The one-shot prompt

The server ships a scripted **`launch-firm`** prompt that runs the whole
lifecycle — create → readiness → dry-run deploy → broadcast → re-check → go
live — from two inputs (`name`, `multisigAddress`). Invoke it and approve each
step.

## Streamable HTTP transport

The platform also exposes an MCP endpoint over Streamable HTTP / SSE for
clients that speak the protocol directly rather than spawning a local server.
The tool catalog is tier-filtered per session, exactly as with stdio.

That endpoint carries the read-only, liquidation and trading tools **only** — the
firm-lifecycle tools on this page are registered by the stdio server, so run
that one to operate a firm. The `launch-firm` prompt is offered on both
transports, but over Streamable HTTP every step it scripts calls a tool that is
not there.

## MCP or plain REST?

- **MCP** when an agent should *operate* the firm live — watching readiness,
  deploying, working the payout queue.
- **REST or the [SDK](https://docs.troncharts.xyz/docs/sdks/typescript/)** when you want code you own and
  run yourself.

Both share the same credential and scopes.