> ## Documentation Index
> Fetch the complete documentation index at: https://docs.swoop.it/llms.txt
> Use this file to discover all available pages before exploring further.

# Available Tools

> Detailed reference for the tools exposed by the Swoop MCP server

The Swoop MCP server exposes a single tool that routes requests to the Swoop presentation agent.

## `ask_swoopAgent`

Use this tool to create, edit, or manage presentations. Your prompt is forwarded to the Swoop agent, which coordinates internal tools to fulfill your request.

### Characteristics

| Property    | Value | Description                                                                                             |
| ----------- | ----- | ------------------------------------------------------------------------------------------------------- |
| Read-only   | No    | The tool creates and modifies presentations, outlines, and slides                                       |
| Destructive | Yes   | Edits and regenerations overwrite existing slides or outlines, though previous versions can be reverted |
| Idempotent  | No    | Each call may create new content or apply additional changes, even with the same prompt                 |

### Input parameters

<ParamField body="prompt" type="string" required>
  Your request to Swoop. Describe the presentation you want to create, edit, or manage. Be as specific as possible — include details about topic, number of slides, tone, audience, and any structural preferences.
</ParamField>

<ParamField body="threadId" type="string">
  Thread ID from a previous interaction. Reuse this to continue a conversation and maintain context across multiple requests. The agent uses the thread to recall prior instructions, outlines, and edits.
</ParamField>

### Output

The tool returns a structured response with the following fields:

| Field           | Type              | Description                                                          |
| --------------- | ----------------- | -------------------------------------------------------------------- |
| `response`      | string            | The agent's text response describing what was done                   |
| `threadId`      | string            | Thread ID to reuse in follow-up requests for conversation continuity |
| `projectId`     | string (optional) | The active presentation project ID                                   |
| `dashboardLink` | string (optional) | URL to view or edit the presentation in the Swoop dashboard          |
| `toolResults`   | array (optional)  | Results from internal tools executed during the request              |

### Structured output

The Swoop MCP server supports MCP structured output. Tool responses include both:

* **`content`** — An array of text content blocks containing the JSON-stringified form of the structured data, for human-readable display and backwards compatibility
* **`structuredContent`** — The same payload as a parsed object, validated against the tool's output schema for programmatic access

Clients that support structured output can use `structuredContent` for programmatic access to response fields like `projectId`, `dashboardLink`, and `toolResults` without parsing text.

### Progress notifications

Presentation generation can take 30–60 seconds. When your client provides a `progressToken` in the tool call's `_meta` field, the server sends periodic `notifications/progress` messages every 10 seconds. These heartbeats keep the connection alive and signal that the operation is still in progress.

<Note>
  If you are building a custom MCP client, ensure your transport layer can handle long-lived connections (at least 120 seconds) and process incoming SSE notifications during tool execution.
</Note>

## Example workflow

A typical interaction follows this pattern:

<Steps>
  <Step title="Create a presentation">
    Call `ask_swoopAgent` with a descriptive prompt:

    ```json theme={null}
    {
      "prompt": "Create a 10-slide presentation about Q1 sales results with a professional tone"
    }
    ```
  </Step>

  <Step title="Review the response">
    The response includes a `dashboardLink` to preview the presentation and a `threadId` for follow-up requests.
  </Step>

  <Step title="Iterate on the content">
    Use the same `threadId` to refine the presentation:

    ```json theme={null}
    {
      "prompt": "Add a slide comparing Q1 vs Q4 results and make the conclusion more impactful",
      "threadId": "thread_abc123"
    }
    ```
  </Step>
</Steps>
