list_prompts
List every prompt in the connected workspace with version counts and live status.
No inputs
{
"workspace": "acme",
"prompts": [{ "id": "p9f2...", "name": "Support triage", "liveVersion": 3, "versionCount": 4 }]
}Developers
The MCP server exposes the prompt registry, datasets, jobs, and usage as tools for AI clients. Connections authorize over OAuth, act inside exactly one workspace with your own membership role, and are available on every plan, subject to the workspace's plan limits.
01
Endpoint
https://mowa.dev/mcp
Paste the URL into any MCP client that speaks streamable HTTP, such as Claude, Cursor, or your own agent. The same server is also mounted at /api/mcp.
The client registers itself over OAuth 2.0 dynamic client registration and opens a browser window. You sign in to Mowa if you are not already signed in, then pick which workspace the connection acts as. Every tool call from that client runs inside the chosen workspace with your own membership role.
{
"mcpServers": {
"mowa": {
"url": "https://mowa.dev/mcp"
}
}
}The workspace choice is stored per user and per OAuth client. To switch workspaces, disconnect and reconnect the client so the authorization flow can ask again.
02
Results come back as JSON in the tool's text content. Failures return a tool error whose text is code: message, using the same codes as the REST API, including plan_limit when a Free workspace hits a cap, see limits.
List every prompt in the connected workspace with version counts and live status.
No inputs
{
"workspace": "acme",
"prompts": [{ "id": "p9f2...", "name": "Support triage", "liveVersion": 3, "versionCount": 4 }]
}Get one prompt with all versions, including each version's content, typed inputs, and typed outputs.
Inputs
{
"prompt": { "id": "p9f2...", "name": "Support triage" },
"versions": [{ "versionNumber": 4, "status": "draft", "inputs": [], "outputs": [] }]
}Create a prompt with version 1 as a draft and enqueue AI interface analysis. Poll get_job_status with the returned analysisJobId for suggested typed inputs and outputs.
Inputs
{ "id": "p9f2...", "versionId": "v1a8...", "versionNumber": 1, "analysisJobId": "42" }Add a new draft version to an existing prompt.
Inputs
{ "versionId": "v2c1...", "versionNumber": 5 }Publish a prompt version as live. Requires an owner or admin role in the workspace, and the previous live version is archived.
Inputs
{ "versionId": "v2c1...", "versionNumber": 5, "status": "live" }List every dataset in the connected workspace with row counts.
No inputs
{
"workspace": "acme",
"datasets": [{ "id": "d4k1...", "name": "Ticket fixtures", "rowCount": 84 }]
}Get one dataset with its typed columns and a sample of rows.
Inputs
{
"dataset": { "id": "d4k1...", "name": "Ticket fixtures" },
"columns": [{ "name": "ticket", "type": "string", "optional": false }],
"rows": [{ "id": "r7m3...", "data": { "ticket": "My invoice is wrong" } }],
"rowCount": 84
}Append one row to a dataset. Keys must match the dataset's column names, and required columns cannot be omitted.
Inputs
{ "id": "r7m3..." }Enqueue AI generation of synthetic rows for a dataset, up to 50 per run. Returns a jobId to poll with get_job_status.
Inputs
{ "jobId": "43" }Check a background job started by create_prompt or generate_dataset_rows. Returns state, progress, and the result once completed.
Inputs
{ "jobId": "43", "type": "dataset_generate", "state": "completed", "result": { "inserted": 25 } }Aggregate AI usage for the connected workspace over the last 30 days: total calls, tokens, images, and a per-model breakdown.
No inputs
{
"windowDays": 30,
"totals": { "calls": 128, "inputTokens": 90210, "outputTokens": 51000, "images": 4 },
"models": [{ "model": "claude-sonnet-4-5", "provider": "anthropic", "calls": 96 }]
}Report the workspace's plan and usage against plan limits. Pass upgrade true to start a Stripe checkout for Pro and get a URL to open in a browser. Upgrading requires an owner or admin role, and a workspace already on Pro just says so.
Inputs
{
"workspace": "acme",
"plan": "free",
"usage": { "prompts": 2, "datasets": 1, "syntheticRowsThisMonth": 25 },
"limits": { "prompts": 2, "datasets": 1, "rowsPerDataset": 100, "syntheticRowsPerMonth": 25 },
"checkoutUrl": "https://checkout.stripe.com/c/pay/cs_..."
}A concise guide to Mowa and this connection: what Mowa is, the connected workspace and your role, what every tool does, the billing summary, and links to the docs, pricing, and dashboard.
No inputs
{
"about": "Mowa is the system of record for AI behavior...",
"workspace": { "name": "Acme", "slug": "acme", "role": "owner" },
"tools": { "list_prompts": "List every prompt with version counts and live status." },
"billing": { "plan": "free", "usage": {}, "limits": {} },
"links": { "docs": "https://mowa.dev/developers" }
}