0006: A built-in MCP server

Why Wake speaks the Model Context Protocol out of the box.

  • Status: accepted
  • Date: 2026-10-17

Context

People increasingly ask an AI assistant instead of clicking through a dashboard: "How did last week's post do?" or "Draft a post about Saturday's event."

Decision

Wake ships an MCP server based on laravel/mcp, over Streamable HTTP at /wake/mcp and over stdio via php wake/artisan wake:mcp. Every team member creates their own tokens with scopes (stats:read, content:read, content:write, content:publish).

Consequences

  • Assistants never delete content, new content always starts as a draft, and every change made through MCP is marked as such.
  • Content returned to an assistant is marked as data, as protection against prompt injection.
  • OAuth was postponed, because Laravel Passport needs a database (see 0002). Since 18 October 2026 Wake has its own file-based OAuth for MCP (reference).

Alternatives considered

  • Only a REST API. Assistants could use it, but every user would have to wire it up themselves.

source: docs/decisions/0006-mcp-server-built-in.md