> ## Documentation Index
> Fetch the complete documentation index at: https://internal.september.wtf/llms.txt
> Use this file to discover all available pages before exploring further.

# POST /rpc

> Generic dispatcher for skill and tool invocation outside the agent loop.

`POST /rpc` is a generic JSON-RPC-style entry point. It lets you invoke
specific skills or tools without going through the full agent loop —
useful for utilities, batch jobs, or simple wrappers around the Engine's
capabilities.

The agent loop itself does **not** use this endpoint. It's for callers
who already know exactly what they want to run.

## Request

```http theme={null}
POST /rpc
X-Engine-Key: <key>
Content-Type: application/json

{
  "method": "skill.summarizer",
  "params": {
    "text": "..."
  }
}
```

| Field    | Type   | Required | Purpose                                            |
| -------- | ------ | -------- | -------------------------------------------------- |
| `method` | string | yes      | Dotted method name. See "Method namespaces" below. |
| `params` | object | yes      | Method-specific input.                             |

## Response

```json theme={null}
{
  "result": { /* method-specific output */ }
}
```

Or, on failure:

```json theme={null}
{
  "error": "<code>",
  "message": "..."
}
```

## Method namespaces

| Prefix         | Purpose                                                     |
| -------------- | ----------------------------------------------------------- |
| `skill.<name>` | Invoke a skill directly.                                    |
| `tool.<name>`  | Invoke a platform tool directly.                            |
| `memory.<op>`  | Memory operations (some duplicate the dedicated endpoints). |

The exact method catalog depends on the deployment's installed catalog and
custom skills. Use `GET /skills` to discover skills.

## When to use it

* One-off invocations from a script.
* Backend integration that wants a single capability without spinning up
  a conversation thread.
* Testing a custom skill in isolation.

## When **not** to use it

* Anything that needs the agent loop's reasoning, tool orchestration, or
  memory. Use `/execute` instead.
