# `Beamlet.MCP.Server`
[🔗](https://github.com/aaronrussell/beamlet/blob/v0.1.0/lib/beamlet/mcp/server.ex#L1)

The MCP server agents connect to, at `/beamlet/mcp`.

It offers three tools:

* `Beamlet.MCP.Define` - the `define` tool, which compiles modules
  into your beamlet.
* `Beamlet.MCP.Eval` - the `eval` tool, which runs Elixir code on
  your beamlet.
* `Beamlet.MCP.Patch` - the `patch` tool, which edits a module
  agents defined.

Every request needs a token, and the token's policy decides which
of the tools the client sees.

## Configuration

    config :beamlet, mcp: [request_timeout: 90_000]

* `:request_timeout` - How long the server waits for a tool to
  answer before replying "Server unavailable", in milliseconds.
  Defaults to 65 seconds. It must be longer than the eval and
  define timeouts, so a slow tool reports its own error first.

# `child_spec`

# `server_instructions`

The instructions a client receives on `initialize`, written for the
model.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
