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

# Tool reference

> Every tool the Fanaura MCP server exposes: what it does, what it needs, what it returns, and what it changes.

The Fanaura MCP server exposes 20 tools. Every tool name starts with `fanaura.`. Twelve only read. Eight change a journey. None delete anything.

<CardGroup cols={3}>
  <Card title="Journeys" icon="route" href="/mcp-server/tools/journeys">
    Create, edit, check, publish, and list journeys. 12 tools.
  </Card>

  <Card title="Contacts" icon="users" href="/mcp-server/tools/contacts">
    Totals, search, one contact, timelines, and audience activity. 6 tools.
  </Card>

  <Card title="Setup" icon="settings" href="/mcp-server/tools/setup">
    Channel status and the Instagram connect link. 2 tools.
  </Card>
</CardGroup>

## Every tool

| Tool | Title | Changes data | Reaches outside Fanaura |
| - | - | - | - |
| `fanaura.create_journey` | Create journey | Yes | Yes, publishes to Instagram |
| `fanaura.start_journey` | Start journey draft | Yes | Yes, reads the destination page when a URL is passed |
| `fanaura.set_destination_url` | Set destination URL | Yes | Yes, reads the page |
| `fanaura.set_instagram_keyword` | Set keyword | Yes | No |
| `fanaura.set_public_replies` | Set public comment replies | Yes | No |
| `fanaura.set_capture` | Set contact capture | Yes | No |
| `fanaura.set_followers_only` | Followers only on Instagram | Yes | No |
| `fanaura.publish_journey` | Publish journey | Yes | Yes, publishes to Instagram |
| `fanaura.check_link` | Check destination link | No | Yes, reads the page |
| `fanaura.validate_publish` | Validate publish checklist | No | No |
| `fanaura.list_journeys` | List journeys | No | No |
| `fanaura.get_journey` | Get journey | No | No |
| `fanaura.audience_overview` | Audience overview | No | No |
| `fanaura.search_contacts` | Search or rank contacts | No | No |
| `fanaura.describe_contact_fields` | Describe contact fields | No | No |
| `fanaura.get_contact` | Get contact | No | No |
| `fanaura.contact_timeline` | Contact timeline | No | No |
| `fanaura.audience_activity` | Audience activity | No | No |
| `fanaura.setup_status` | Channel setup status | No | No |
| `fanaura.instagram_connect_link` | Instagram connect link | No | No |

## Tool annotations

Each tool tells the assistant how careful to be. Assistants use these hints to decide when to ask before running a tool.

| Annotation | Meaning in Fanaura |
| - | - |
| `title` | The plain name shown in Claude and ChatGPT, such as "Create journey". |
| `readOnlyHint` | `true` on the 12 read tools. They never change your account. |
| `destructiveHint` | `true` on `create_journey`, `publish_journey`, `set_destination_url`, `set_instagram_keyword`, `set_public_replies`, `set_capture`, and `set_followers_only`. `start_journey` creates a new draft only, so this hint is false. Read tools are read only, so this hint is false on them too. |
| `openWorldHint` | `true` on `create_journey`, `start_journey`, `set_destination_url`, `check_link`, and `publish_journey`. |
| `idempotentHint` | `true` on `set_destination_url`, `set_instagram_keyword`, `set_public_replies`, `set_capture`, `set_followers_only`, and `publish_journey`. `create_journey` leaves it false and accepts an `idempotency_key`, so a repeat with the same key returns the first result. |

## What a description contains

Each description states what the tool does, what it needs, what it returns, and what it changes. A description does not tell the assistant how to reply, which tool to call next, or to leave prices out of the answer.

Server instructions, sent when a client connects, are separate from those descriptions. They explain that `create_journey` publishes in one call, that edits reach fans after `publish_journey`, and that tool results contain no prices, upgrades, or store links.

## Shared response fields

Most tools return these alongside their own data.

<ResponseField name="success" type="boolean" required>
  `true` when the tool ran. A draft that could not go live still returns `true` from `create_journey`, with the reason in `message`.
</ResponseField>

<ResponseField name="message" type="string">
  One plain sentence the assistant can repeat.
</ResponseField>

<ResponseField name="error" type="string">
  Present when `success` is `false`. Field problems read `Field name: what to fix`.
</ResponseField>

<ResponseField name="field" type="string">
  The input that caused the error, such as `keyword` or `contact_id`.
</ResponseField>

<ResponseField name="iphone_deep_link" type="string">
  `fanaura://journeys/{id}` on journey results. Opens the journey in the Fanaura iPhone app.
</ResponseField>

<ResponseField name="web_builder_url" type="string">
  `https://app.fanaura.com/automations/{id}` on journey results.
</ResponseField>

<ResponseField name="tool" type="string">
  The tool name that produced the result.
</ResponseField>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.