Skip to content

MCP tools

The MCP server is your agent’s door into Lodekit. Through it, the agent scaffolds new apps, opens them in your browser, and reads what’s already there — records, files, events, settings, logs — on your behalf. Everything else is read-only: the only tools that change anything are lodekit_scaffold (which creates files) and lodekit_open_app (which opens a browser tab). Secret values are never readable over MCP — the agent can see which secrets exist and which slots are linked, nothing more.

How to register the server with your agent is covered in Connect your agent. The server reaches the engine over HTTP at http://lodekit.localhost:7777 by default; set the LODEKIT_BASE_URL environment variable to point it elsewhere.

Create a new app conforming to the app contract. Returns the result and the new app’s URL.

  • appId (string, required) — the new app’s id: lowercase letters, digits, hyphens.
  • name (string, required) — display name.
  • description (string, optional).
  • icon (string, optional) — an emoji; defaults to 📦.

List every app in the Lodekit root. No parameters.

Open an app in your browser at /<appId>.

  • appId (string, required).

Read event bus history — the same stream as the dashboard’s Events view.

  • app (string, optional) — filter to one app’s stream by app id; omit for everything (platform-wide events have no app).
  • kind (engine | service | app, optional) — the class of platform member that emitted the event.
  • component (string, optional) — the emitting instance: an engine subsystem (build, lifecycle, registry), a service name (kv-store, tasks, …), or an app id.
  • type (string, optional) — a past-tense fact type, e.g. key-set or an app-defined type.
  • since (number, optional) — epoch ms lower bound (inclusive).
  • after (number, optional) — replay ascending from this event id (offset); omit for newest-first.
  • limit (number, optional).

Read structured log records — the same records as the dashboard’s Logs view.

  • appId (string, optional) — filter to one app, or _platform for the engine’s own records; omit for everything.
  • level (debug | info | warn | error, optional) — minimum level.
  • limit (number, optional).
  • q (string, optional) — substring match on the message.

Inspect an app’s declared database tables.

  • appId (string, required).

Run a single SELECT statement over an app’s tables on a read-only connection. Underscore-prefixed service tables are hidden.

  • appId (string, required).
  • sql (string, required) — one SELECT statement.
  • params (array of string | number | null, optional) — bound parameters.

List an app’s kv-store entries with metadata.

  • appId (string, required).
  • prefix (string, optional) — key prefix filter.

Get one kv-store value. Returns a { found } shape, so a missing key is distinguishable from a stored null.

  • appId (string, required).
  • key (string, required).

List an app’s files with their stats.

  • appId (string, required).
  • prefix (string, optional) — slug prefix filter.

Stat one file. The result carries the file’s serving URL and its on-disk path.

  • appId (string, required).
  • slug (string, required).

List gateways — provider id, name, auth kind, slots, limits, and which apps use each — or one app’s gateway connections with per-slot status. Wiring and status only: never a credential or token.

  • appId (string, optional) — an app’s gateway connections and slot status; omit for every gateway and its usage.

List the secret catalog, or an app’s declared slots with their link status. Existence and wiring only — no tool reads a secret’s value.

  • appId (string, optional) — an app’s slots and link status; omit for the catalog.

List settings — schema plus effective values — for the platform or for one app.

  • appId (string, optional) — an app’s settings; omit for platform settings.

Get one effective setting value. Returns a { found } shape.

  • appId (string, required).
  • key (string, required).