> For the complete documentation index, see [llms.txt](https://docs.podigee.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.podigee.com/documentation/start-here/ai-agents/mcp-tools/distribution-status-and-guidance.md).

# distribution\_status\_and\_guidance

Reference for the \`distribution\_status\_and\_guidance\` MCP tool.

Per-platform distribution status plus what to do about it. Reports each platform's normalized status and, for platforms Podigee cannot submit to on the user's behalf, the reason and the exact next step they must take themselves. Pass platform\_key from the status output to focus on one.

## Contract

| Property                     | Value               |
| ---------------------------- | ------------------- |
| Required scopes              | `mcp:podcasts:read` |
| Read-only                    | `true`              |
| Destructive                  | `false`             |
| Idempotent                   | `true`              |
| May interact outside Podigee | `false`             |

The MCP annotations describe client behavior. The server still applies authorization, validation, preview, confirmation, ownership, and account boundaries at execution time.

## Example request

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "distribution_status_and_guidance",
    "arguments": {
      "podcast_id": 42,
      "platform": "tunein"
    }
  }
}
```

The example uses placeholder IDs. Replace them with IDs returned for the connected account.

## Input schema

The structural schema below omits prose `description` fields so each line remains readable. The complete public descriptions follow the schema.

```json
{
  "type": "object",
  "required": [
    "podcast_id"
  ],
  "properties": {
    "podcast_id": {
      "type": "integer"
    },
    "platform": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
```

### Input field descriptions

No additional field descriptions are defined.

### Key constraints

* `request` requires: `podcast_id`.

## Output schema

The `structuredContent` object in a successful tool result matches this schema.

The structural schema below omits prose `description` fields. The complete public descriptions follow the schema.

```json
{
  "type": "object",
  "required": [
    "status",
    "guidance"
  ],
  "additionalProperties": false,
  "properties": {
    "status": {
      "type": "object",
      "required": [
        "podcast_id",
        "feed_url",
        "connections",
        "summary"
      ],
      "additionalProperties": false,
      "properties": {
        "podcast_id": {
          "type": "integer"
        },
        "feed_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "connections": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "type",
              "status",
              "active",
              "submitted",
              "uid",
              "manual_submission_required"
            ],
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "integer"
              },
              "type": {
                "type": "string"
              },
              "platform_key": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "not_submitted",
                  "submitted",
                  "in_review",
                  "live",
                  "rejected",
                  "deactivated"
                ]
              },
              "state": {
                "type": "string"
              },
              "active": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "submitted": {
                "anyOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "submitted_on": {
                "type": "string",
                "format": "date-time"
              },
              "uid": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "external_url": {
                "type": "string"
              },
              "status_reason": {
                "type": "string"
              },
              "manual_submission_required": {
                "type": "boolean"
              }
            }
          }
        },
        "summary": {
          "type": "object",
          "required": [
            "live",
            "in_review",
            "submitted",
            "rejected",
            "not_submitted"
          ],
          "additionalProperties": false,
          "properties": {
            "live": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "in_review": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "submitted": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "rejected": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "not_submitted": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "guidance": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "status",
          "platform"
        ],
        "additionalProperties": false,
        "properties": {
          "platform": {
            "type": "string"
          },
          "platform_key": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "manual_handoff_required",
              "unknown_platform"
            ]
          },
          "setup_scope": {
            "type": "string",
            "enum": [
              "one_time"
            ]
          },
          "reason": {
            "type": "string"
          },
          "after_setup": {
            "type": "string"
          },
          "external_next_step_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "web_player_caveat": {
            "type": "string"
          },
          "feed_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "type": "string"
          }
        }
      }
    }
  }
}
```

### Output field descriptions

### `status.connections[].platform_key`

Stable platform identifier. Pass this to explain\_distribution\_handoff when manual\_submission\_required is true.

### `status.connections[].status`

Normalized across platforms. Podigee creates a connection row for every platform when a podcast is created, so not\_submitted is the default and does not indicate a problem.

### `status.connections[].state`

The platform's own state name. Only some platforms track one.

### `status.connections[].active`

A webplayer and posting toggle, not a submission signal. It is false on every directory row Podigee creates and stays false on a show that is live. Read status instead.

### `status.connections[].external_url`

Public listing URL. Present only once the show is reachable there.

### `status.connections[].status_reason`

Why the platform is rejected or deactivated. Present only for those statuses. When Podigee receives no reason from the platform this says so, so treat it as the complete answer rather than looking further.

### `status.connections[].manual_submission_required`

True when the platform owns the account, so a human claims the show there once. This is one-time setup, not a standing limit on automation: once status is live, publishing through Podigee reaches this platform with no further manual step.

### `guidance[].setup_scope`

The handoff is onboarding, not a standing restriction. Do not tell the user that publishing to this platform cannot be automated.

### `guidance[].after_setup`

What happens once setup is done. Relay this alongside the reason so the user knows the manual step is not recurring.

## Safety and retries

This tool is read-only. It does not change Podigee data.

Do not retry validation, authorization, plan, or ownership errors unchanged. Retry transient errors only when the response marks them as retryable. For durable work, use the returned operation ID instead of starting the same action again.

## Related guides

* [Check show distribution status](/documentation/start-here/ai-agents/distribute-a-podcast/check-show-distribution-status.md)
* [Check delivery for one episode](/documentation/start-here/ai-agents/distribute-a-podcast/check-delivery-for-one-episode.md)
* [Submit a podcast to a supported platform](/documentation/start-here/ai-agents/distribute-a-podcast/submit-a-podcast-to-a-supported-platform.md)
* [Complete a one-time directory handoff](/documentation/start-here/ai-agents/distribute-a-podcast/complete-a-one-time-directory-handoff.md)
* [Understand platform support and handoff types](/documentation/start-here/ai-agents/distribute-a-podcast/understand-platform-support-and-handoff-types.md)
* [Resolve distribution states and failures](/documentation/start-here/ai-agents/distribute-a-podcast/resolve-distribution-states-and-failures.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.podigee.com/documentation/start-here/ai-agents/mcp-tools/distribution-status-and-guidance.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
