---
# @generated by sylphx-gen 0.1.0 from contracts@e145cc7cf1bc9605f2b27439e5e17ed76a1a2fd7e7021906a013f7565e4a0cd5. Do not edit.
title: "MCP"
description: "The Sylphx MCP server: how to run it, how to connect a client, and every tool it serves."
type: reference
product: platform
summary: "The whole platform as MCP tools, from the same contracts as the API, the SDKs and the CLI."
updated: 2026-09-28
order: 10
---

The Sylphx MCP server is the platform inside an agent: the same methods as
[the API reference](/docs/api), the [CLI](/docs/cli), the SDKs and the
Terraform provider, served as MCP tools over stdio. [Agents and coding
assistants](/docs/agents) connect a client; this page is what it answers
with.

## Run

```bash
npx @sylphx/mcp
sylphx mcp
cargo install sylphx-mcp && sylphx-mcp
```

The three run the same server — Node, the operator CLI, or the binary. A
client starts it over stdio, so a run line is for trying it by hand: the
process reads JSON-RPC on standard input and writes it on standard output.

## Configure a client

```json
{ "mcpServers": { "sylphx": { "command": "npx", "args": ["-y", "@sylphx/mcp"], "env": { "SYLPHX_API_KEY": "sylphx_sk_…" } } } }
```

The server reads its key from `SYLPHX_API_KEY`. Without one, search and
describe still answer, and a call explains how to sign in.

## Core tools

9 methods come with a tool of their own — `{service}_{collection}_{verb}`,
or `{service}_{verb}` for a call a service serves itself — each carrying
the request's input schema. The tool's name links to the method it serves:

| Tool | Effect | What it does |
| --- | --- | --- |
| [`access_whoami`](/docs/api/access/whoami) | `read` | Returns the caller: the principal and the scope of the key or token that authenticated this request. Clients fill their org, project, and env defaults from it; every valid key may call it, whatever its scopes. |
| [`access_projects_create`](/docs/api/projects/create) | `write` | Creates a project. Access assigns the id. |
| [`billing_billing_accounts_get`](/docs/api/billing_accounts/get) | `read` | Not available yet. Gets a billing account. |
| [`billing_usage_reports_query`](/docs/api/usage_reports/query) | `read` | Not available yet. Queries usage over any time range, bucketed and grouped: the usage summary the console charts. Reads rollups; never raw events. |
| [`data_databases_create`](/docs/api/databases/create) | `write` | Creates a database. The Operation is done when the controller settles it. |
| [`entitlement_entitlements_get`](/docs/api/entitlements/get) | `read` | Not available yet. Gets an org's entitlement. |
| [`hosting_services_create`](/docs/api/services/create) | `write` | Not available yet. Creates a service. The Operation is done when the controller settles it. |
| [`observability_log_entries_query`](/docs/api/log_entries/query) | `read` | Queries the environment's log entries over a bounded interval; follow a trace with `trace_id = "..."`. |
| [`observability_traces_query`](/docs/api/traces/query) | `read` | Queries the environment's traces over a bounded interval, returning summaries without spans. |

## Meta tools

Three tools reach the rest of the platform, whatever its service:

| Tool | What it does |
| --- | --- |
| `sylphx_search_methods` | Search every Sylphx API method by service, collection, verb, or description. |
| `sylphx_describe_method` | Return the input JSON Schema, permission, and effect of one method. |
| `sylphx_call` | Call any Sylphx method by id with arguments matching its input schema. Destructive methods require confirm: true. |

## The catalog

`sylphx_search_methods` searches a catalog of 502 methods — every method this
reference documents except the ones the protocol reserves — and each hit
carries the id, the tool name, the effect, the scope, the HTTP call and the
input schema. `sylphx_describe_method` returns one entry, and `sylphx_call`
runs one: its arguments are the method's request, so a call an agent makes is
the call [its page](/docs/api) documents, and a destructive one needs
`confirm: true` in the arguments.

The server declares no resources and no prompts: `resources/list` and
`prompts/list` answer with empty lists, because everything the platform holds
is reached by calling a method.
