API & MCP docs
Call MMO ALL's REST API directly with an API key, or connect an AI coding client (Claude Code, Cursor, ...) through the MCP server to update a project's build log and roadmap.
1. Get an API key
Every API key is tied to your own account but narrower: it only carries the permission scopes you pick when creating it, and it always has an expiration date. Create and manage keys on the "Manage API keys" screen under Settings.
2. Authentication
Attach the API key to the Authorization header of every request:
Authorization: Bearer mmo_pat_...An API key carries none of your account's roles — it can't call an endpoint that requires admin rights. Its access comes only from the scopes picked when it was created; missing a required scope returns a 403.
Permission scopes and their routes
| Scope | Route |
|---|---|
| Read posts & comments | GET /api/v1/posts/**, GET /api/v1/comments/**, GET /api/v1/search, GET /api/v1/platform/**, GET /api/v1/media/** |
| Write posts & comments | POST/PATCH/DELETE /api/v1/posts/**, POST/PATCH/DELETE /api/v1/comments/**, POST /api/v1/media |
| Read jobs | GET /api/v1/jobs/** |
| Write jobs | POST/PATCH/DELETE /api/v1/jobs/** |
| Read profile | GET /api/v1/users/** |
| Read projects | GET /api/v1/projects/** |
| Write projects | POST/PATCH/DELETE /api/v1/projects/** |
| Read GitHub Insight | GET /api/v1/github/** |
| Read Opportunity Radar | GET /api/v1/radar/** |
3. MCP server — build log & roadmap
A minimal MCP (Model Context Protocol) server that lets an AI coding client update a project's build log and roadmap directly, instead of copy-pasting into the web app. Streamable HTTP transport, stateless, plain JSON — supports three protocol versions: 2025-11-25, 2025-06-18 and 2025-03-26.
Endpoint: POST /api/v1/mcp
Seven tools
| Tool | Scope | Note |
|---|---|---|
list_my_projects | Read projects | Projects the caller owns — the starting point of every workflow. |
get_roadmap | Read projects | The milestone list, ordered by display order. |
create_milestone | Write projects | Owner-only. |
update_milestone | Write projects | Owner-only; a field left out keeps its current value. |
delete_milestone | Write projects | Owner-only; a real, unrecoverable delete. |
list_build_logs | Read projects | Reads back the build logs already posted for a project. |
create_build_log | Write posts & comments | Callable by the owner or any member, not just the owner. |
Any ONE of the three scopes projects.read, projects.write or content.write gets an API key through the endpoint's outer gate — but each tool inside still requires its own exact scope (table above); missing it returns an isError result, not an HTTP 403.
Connect a client
For example, with Claude Code:
claude mcp add --transport http mmoall https://api.mmoall.com/api/v1/mcp \
--header "Authorization: Bearer mmo_pat_..."