> [Maxim](https://wikilayer.org/smee-again) / [Wikilayer authoring guide](https://wikilayer.org/smee-again/wikilayer-howto) / MCP support

# MCP support

**Contents:**

- [Standard](#standard)
- [Tools](#tools)
  - [Reading](#reading)
  - [Writing](#writing)
  - [Other](#other)

[MCP (Model Context Protocol)](https://modelcontextprotocol.io/) is the agent-facing API for tool-calling between LLM clients and servers. Wikilayer speaks the standard MCP wire format, so any client connects without a bespoke SDK. The tree's read and write operations are exposed as MCP tools.

## Standard

Wikilayer follows the MCP wire format without proprietary extensions. Clients discover tools via `tools/list` and call them with `tools/call`. Cloud installs require OAuth 2.1 + PKCE for client registration; self-hosted single-user installs skip auth entirely and treat every request as the bootstrapped user. The endpoint is `<host>/mcp` (https://wikilayer.org/mcp on the cloud).

## Tools

Tools split into three groups; full input/output schemas arrive in the client's `tools/list` response.

### Reading

- `get_outline`: tree skeleton of a wiki, page, or block subtree.
- `get_node`: one node's title + body.
- `get_node_history`: change log for a node.
- `list_wikis`: wikis the caller can read.
- `search_nodes`: full-text search inside one wiki.
- `search_public_wikis`: full-text search across every public wiki on the instance.

### Writing

- `create_wiki`: new wiki rooted under the caller's owner.
- `update_wiki`: wiki-level fields (title, visibility, primary language).
- `create_nodes`: batch-create pages and blocks under a parent.
- `update_node`: replace a node's title and body.
- `patch_node`: ordered literal-string replacements on a body.
- `move_node`: reparent a node and its subtree.
- `delete_nodes`: remove nodes with their subtrees (history preserved).

### Other

- `request_upload`: signed URL for uploading an image to attach into a markdown body. Only on deploys with object storage configured.
- `set_page_seo`: hand-authored OG / Twitter overrides for a public page.
