---
title: "Start a Muse connector readiness run"
method: POST
path: "/projects/{projectId}/servers/{serverId}/readiness-runs/muse"
tags: ["Directory readiness"]
---

# Start a Muse connector readiness run

`POST /projects/{projectId}/servers/{serverId}/readiness-runs/muse`

## Request

- Base URL: `https://app.mcpjam.com/api/v1`
- URL: `https://app.mcpjam.com/api/v1/projects/{projectId}/servers/{serverId}/readiness-runs/muse`
- Auth: HTTP bearer

Grades the saved server against Meta's Muse connector guidelines and returns `202` with a run id. Free: Muse readiness has no AI observations, so the body has no field that can spend, and no submission mode, which belongs to the OpenAI plugin directory. The submission-ready verdict stays `incomplete` on a hosted run, because Muse's submission requirements are declared by the submitter and only the CLI accepts a submission profile. Meta reviews every submission by hand, so `ready` is a preflight, not a prediction of approval.

## Path parameters

- `projectId` string, required
- `serverId` string, required

## Request body

- object
  - `idempotencyKey` string: Deduplicates a retried POST. More load-bearing here than usual: a readiness run dials a third party's server, and a retried start that created a second run would do that twice.

## Response `202`

The run was accepted and is executing.

- ReadinessRunReceipt: The 202 receipt. Poll the run detail; do not re-POST.
  - `runId` string, required
  - `projectId` string, required
  - `serverId` string, required
  - `readinessKind` 'claude' | 'openai' | 'muse', required
  - `status` 'pending' | 'running' | 'completed' | 'failed' | 'cancelled', required: The run's status when the start returned. `pending` for a fresh start; for a deduped start, whatever the existing run is already at — which may be `completed`, because a replayed idempotency key can name a run that finished long ago.
  - `deduped` boolean, required: This request replayed an existing run rather than starting one.
  - `includeLlmObservations` boolean, required

## Other responses

- `400`: The body carried an unknown key (including `includeLlmObservations`, which Muse does not offer), or the server uses a transport no directory can list.
- `401`: Missing, invalid, revoked, or orphaned key (`UNAUTHORIZED`) — or the **target MCP server** needs an OAuth grant (`OAUTH_REQUIRED`), which is a property of the server, not your key.
- `403`: Key is valid but not allowed to do this.
- `404`: Unknown project, server, or resource.
- `429`: Per-key rate limit exceeded (60 requests/minute sustained, bursts up to 10). Honor `Retry-After` and back off with jitter.
- `500`: Something failed on MCPJam's side.

## Changes

- **2026-10-07** `97bd992b9977`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/mcpjam/apis/mcpjam-api/changes/projects/:projectId/servers/:serverId/readiness-runs/muse/post.md)

---

[API](https://skmtc.dev/mcpjam/apis/mcpjam-api.md) - [All operations](https://skmtc.dev/mcpjam/apis/mcpjam-api/llms.txt) - [OpenAPI document](https://skmtc.dev/mcpjam/apis/mcpjam-api/revisions/abec02af60a4?raw)
