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

# PickFu MCP server for Claude, Cursor, and ChatGPT

> Connect Claude, Cursor, ChatGPT, and other MCP clients to PickFu to create surveys, fetch results, and generate consumer insights through chat.

The PickFu MCP server lets AI assistants create surveys, check results, generate images, and gather consumer feedback — all through natural conversation. It's the fastest way to integrate PickFu into your AI workflow.

## What is MCP?

[Model Context Protocol (MCP)](https://modelcontextprotocol.io/) is an open standard that lets AI assistants interact with external tools and services. With the PickFu MCP server, you can ask your AI assistant to create polls, analyze results, and get consumer insights without leaving your conversation.

## Connect to the MCP server

```
https://mcp.pickfu.com/mcp
```

Choose your AI client below to get set up.

### Claude (claude.ai, desktop, and mobile)

Claude connects to remote MCP servers through its **Connectors** feature — no config files needed. This works the same way across claude.ai, the Claude Desktop app, and Claude mobile.

<Steps>
  <Step title="Open Customize">
    In Claude, click your profile icon (bottom-left), then **Customize**.
  </Step>

  <Step title="Go to Connectors">
    Select **Connectors**.
  </Step>

  <Step title="Add PickFu">
    Click **+**, then **Add custom connector**. Enter:

    * **Name**: `PickFu`
    * **URL**: `https://mcp.pickfu.com/mcp`

    Click **Add**.
  </Step>

  <Step title="Authorize">
    The first time Claude uses a PickFu tool, you'll be prompted to sign in to your PickFu account via OAuth.
  </Step>
</Steps>

On Team and Enterprise plans, an Owner must add the connector first. Members can then enable it from **Customize > Connectors**.

See [Anthropic's custom connectors guide](https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp) for details.

### Claude Code

Run this command in your terminal:

```bash theme={null}
claude mcp add pickfu --transport http https://mcp.pickfu.com/mcp
```

Then type `/mcp` inside Claude Code to verify the connection and complete OAuth sign-in.

See [Claude Code MCP documentation](https://code.claude.com/docs/en/mcp) for more options.

### Cursor

<Steps>
  <Step title="Open MCP settings">
    Open **Cursor Settings** and select **MCP** in the sidebar.
  </Step>

  <Step title="Add the server">
    Click **Add new MCP server** and enter:

    * **Name**: `PickFu`
    * **Type**: `Streamable HTTP`
    * **URL**: `https://mcp.pickfu.com/mcp`

    Or add to `.cursor/mcp.json` in your project (or `~/.cursor/mcp.json` for all projects):

    ```json theme={null}
    {
      "mcpServers": {
        "pickfu": {
          "url": "https://mcp.pickfu.com/mcp",
          "transport": "streamable-http"
        }
      }
    }
    ```
  </Step>

  <Step title="Authorize">
    Cursor prompts you to sign in to your PickFu account via OAuth when you first use a tool.
  </Step>
</Steps>

See [Cursor's MCP documentation](https://cursor.com/docs/mcp) for details.

### ChatGPT

ChatGPT supports custom MCP connectors on Plus, Pro, and Enterprise plans. You'll need to enable Developer Mode first.

<Steps>
  <Step title="Enable Developer Mode">
    Go to **Settings** → **Apps & Connectors** → **Advanced settings**, then toggle **Developer Mode** on.
  </Step>

  <Step title="Add the connector">
    In **Settings** → **Apps & Connectors**, click **Add new connector** and enter:

    * **Name**: `PickFu`
    * **URL**: `https://mcp.pickfu.com/mcp`
  </Step>

  <Step title="Authorize">
    Open a new chat, select the PickFu connector from the tools menu (**+** button), and follow the OAuth sign-in prompt.
  </Step>
</Steps>

See [OpenAI's Developer Mode guide](https://help.openai.com/en/articles/12584461-developer-mode-apps-and-full-mcp-connectors-in-chatgpt-beta) for details.

### Notion

Notion Custom Agents support custom MCP connections on **Business and Enterprise plans**. A workspace admin must enable them first.

<Steps>
  <Step title="Enable custom MCP servers (admin)">
    Go to **Settings** → **Notion AI** → **AI connectors** and enable **Custom MCP servers**.
  </Step>

  <Step title="Add to your Custom Agent">
    Open your Custom Agent's **Settings** → **Tools & Access** → **Add connection** → **Custom MCP server**. Enter:

    * **Display name**: `PickFu`
    * **URL**: `https://mcp.pickfu.com/mcp`

    Click **Save**.
  </Step>

  <Step title="Authorize">
    Follow the OAuth prompt to sign in to your PickFu account. Each MCP connection is per-agent — repeat for additional agents.
  </Step>
</Steps>

See [Notion's MCP connections guide](https://www.notion.com/help/mcp-connections-for-custom-agents) for details.

### OpenClaw

See the [OpenClaw page](/integrations/openclaw) for MCP configuration, CLI-based skills, and the Claw Hub market research workflow.

### Other MCP clients

Any MCP-compatible client that supports Streamable HTTP transport can connect:

```
URL: https://mcp.pickfu.com/mcp
Transport: Streamable HTTP
```

When prompted for authentication, sign in to your PickFu account via the OAuth flow.

<Note>
  **Gemini:** Gemini does not currently support custom connectors on the web, but you can add MCP servers through the Gemini CLI. See [Gemini's MCP server instructions](https://geminicli.com/docs/tools/mcp-server/) for setup.
</Note>

## Available tools

### Survey management

| Tool                   | Description                                                                                                                                                                                                                                                   |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `save_survey`          | Create or update a survey. Omit `surveyId` to create; include `surveyId` to update questions, targeting, reporting, or metadata.                                                                                                                              |
| `publish_survey`       | Publish a draft survey to start collecting responses                                                                                                                                                                                                          |
| `stop_survey`          | Stop a live survey early — unused responses are refunded                                                                                                                                                                                                      |
| `delete_survey`        | Delete or archive a survey                                                                                                                                                                                                                                    |
| `get_survey`           | Get full survey details including questions, options, AI summaries, and a per-question `results` object with vote totals, percentages, and the winning option                                                                                                 |
| `get_survey_responses` | Get paginated individual responses with explanations and demographics                                                                                                                                                                                         |
| `list_surveys`         | List and search surveys with filtering by status, type, tags, and more. Returns your team/account's surveys by default; set `mine: true` to restrict results to surveys created by the authenticated user (requires OAuth — not available to API-key callers) |
| `add_respondents`      | Extend a completed survey with additional respondents without recreating it                                                                                                                                                                                   |
| `rate_response`        | Rate a response `helpful`, or flag it `not_helpful` to report low quality — feeds [panel-quality](/guides/panel-and-quality) review and may auto-reject the response                                                                                          |
| `pin_response`         | Pin a noteworthy response to the top of the survey results                                                                                                                                                                                                    |

### Projects

| Tool            | Description                                                                                |
| --------------- | ------------------------------------------------------------------------------------------ |
| `save_project`  | Create or update a project (use to group related surveys with shared goal and description) |
| `get_project`   | Get a project including its survey summaries                                               |
| `list_projects` | List projects scoped to your team, with filters for bookmarked and archived status         |

### Poll URL builder

| Tool             | Description                                                                    |
| ---------------- | ------------------------------------------------------------------------------ |
| `build_poll_url` | Generate a clickable URL that creates a PickFu poll with pre-filled parameters |

### Media

| Tool             | Description                                                  |
| ---------------- | ------------------------------------------------------------ |
| `upload_media`   | Upload an image or video to get a CDN URL for use in surveys |
| `generate_image` | Generate an image from a text prompt for use in poll options |
| `extract_images` | Extract and view image URLs from a survey's options          |

<Warning>
  **Images in web-based clients:** Web chat clients like Claude, ChatGPT, and Notion cannot pass local file data to MCP tools — dragging or pasting an image into the chat won't make it available to PickFu tools. To use your own images, provide a hosted image URL. You can also pass an image URL to `generate_image` to create variations of it. Terminal-based tools like Claude Code and OpenClaw can read local files directly.
</Warning>

### Discovery and organization

| Tool                       | Description                                                   |
| -------------------------- | ------------------------------------------------------------- |
| `list_available_targeting` | List all demographic targeting options for audience selection |
| `list_available_reporting` | List all available reporting demographics                     |
| `list_tags`                | List tags for organizing surveys                              |
| `create_tag`               | Create a new tag                                              |
| `list_playbooks`           | Discover step-by-step research playbooks                      |
| `get_playbook`             | Get full playbook with instructions and poll creation links   |

### Help

| Tool                 | Description                                                     |
| -------------------- | --------------------------------------------------------------- |
| `help_center_search` | Search the PickFu help center for articles                      |
| `mcp_feedback`       | Submit feedback, suggestions, or bug reports to the PickFu team |

## Supported question types

<Note>
  **Every response includes a written explanation by default.** When a respondent picks an
  option, ranks, rates, or clicks, they're also required to explain *why* in their own words
  — that's already part of every question type except `screen_recording` (which returns a
  transcription instead). **Do not add a separate `open_ended` question to capture "why" —
  it wastes a question slot (multi-question surveys are priced per question) and produces
  redundant data.** Phrase your real question, and PickFu collects the explanation
  automatically. The text comes back on each response as the `explanation` field. See
  [surveys overview](/guides/surveys-overview) for more.
</Note>

| Type               | Description                                                |
| ------------------ | ---------------------------------------------------------- |
| `head_to_head`     | A/B comparison — respondents pick a favorite (2 options)   |
| `ranked`           | Respondents rank options in preference order (3–8 options) |
| `open_ended`       | Single-concept poll with written feedback                  |
| `single_select`    | Choose one from multiple options (3–8 options)             |
| `multi_select`     | Select multiple answers (3–8 options)                      |
| `click_test`       | Heatmap generation from image clicks                       |
| `emoji_rating`     | Emoji sentiment selection with explanation                 |
| `star_rating`      | 1–5 star rating with feedback                              |
| `five_second_test` | Brief timed exposure for first impressions                 |
| `screen_recording` | Record user interaction with content                       |

## Usage examples

Once connected, just ask your AI assistant naturally:

**Create a head-to-head poll**

> "Create a PickFu poll comparing these two logo designs to see which one people prefer"

**Get survey results**

> "Show me the results from my latest PickFu survey"

**Target a specific audience**

> "Create a poll asking Amazon Prime members aged 25–34 which product image they prefer"

**Generate images for a poll**

> "Generate two product mockup images and create a head-to-head poll comparing them"

## Supported countries

These are the markets you can target with the `country` field. PickFu auto-translates your poll into each market's language and returns results in both languages — see [International surveys and translation](/guides/international-surveys).

| Code | Country        |
| ---- | -------------- |
| US   | United States  |
| CA   | Canada         |
| GB   | United Kingdom |
| AU   | Australia      |
| DE   | Germany        |
| FR   | France         |
| ES   | Spain          |
| IT   | Italy          |
| JP   | Japan          |
| KR   | Korea          |
| MX   | Mexico         |
| BR   | Brazil         |
| ZA   | South Africa   |
| PL   | Poland         |
| SE   | Sweden         |

## Sample sizes

Available respondent counts: **15**, **30**, **50**, **75**, **100**, **200**, **300**, **500**

## Option formats

Polls support various content types for options:

* **Text** — Plain text options
* **Media URL** — Images or videos via URL
* **ASIN** — Amazon product by ASIN for comparison
* **Image set** — Multiple images grouped together (see below)
* **Mockup** — Product listing mockups (SERP or listing style)

<Note>
  All options within the same question must use the same content type.
</Note>

### Image set options

Pass `imageSet` on an option in `save_survey` to group multiple images into one comparable unit. Each entry can be one of:

* **An HTTPS image URL** — included as-is.
* **A product reference** — `{ "source": "amazon", "id": "B08288SG9K" }`. PickFu expands the reference to that product's full Amazon image gallery (every listing image) and rehosts each image. Only `source: "amazon"` resolves today; other sources return a 422.
* **A bare Amazon ASIN** — `"B08288SG9K"` as a shorthand. The MCP server normalizes it to `{ source: "amazon", id: "B08288SG9K" }` before forwarding. The underlying API expects the `{ source, id }` object, so this shorthand is MCP-only.

Rules:

* Use **either** image URLs **or** exactly one product reference per option — don't mix them in the same `imageSet`. To compare two products' galleries, give each its own option.
* `imageSet` requires at least one entry.
* This shape is specific to `save_survey`. `build_poll_url` only accepts plain image URLs.

Set `imageSetDirection` on the option to control the layout:

| Value        | Layout                                 |
| ------------ | -------------------------------------- |
| `horizontal` | Images displayed side-by-side          |
| `vertical`   | Images stacked top-to-bottom           |
| `a-plus`     | Rendered as an Amazon A+ content block |

`a-plus` is also what makes `get_survey` → `save_survey` round-trips work for A+ image sets — re-saving an existing A+ survey preserves its direction.

**Example: comparing two Amazon listings' full galleries**

```json theme={null}
{
  "options": [
    {
      "imageSet": [{ "source": "amazon", "id": "B08288SG9K" }],
      "imageSetDirection": "a-plus"
    },
    {
      "imageSet": ["B0CVFKZ1LC"],
      "imageSetDirection": "a-plus"
    }
  ]
}
```

## Authentication

The MCP server supports two authentication methods. Most clients support both.

### OAuth (automatic)

OAuth works out of the box with all clients listed above. When you first use a PickFu tool, your AI client prompts you to sign in to your PickFu account. No configuration needed.

### API keys

For automation, CI/CD pipelines, and long-running agents, authenticate with an API key instead of OAuth.

<Steps>
  <Step title="Create an API key">
    Go to [Settings > API Keys](https://app.pickfu.com/settings/api-keys) in your PickFu account and create a new key.
  </Step>

  <Step title="Add the key to your MCP client config">
    Pass the API key as a Bearer token in the `Authorization` header:

    <CodeGroup>
      ```bash Claude Code theme={null}
      claude mcp add pickfu --transport http https://mcp.pickfu.com/mcp \
        --header "Authorization: Bearer sk_your_api_key"
      ```

      ```json Cursor (.cursor/mcp.json) theme={null}
      {
        "mcpServers": {
          "pickfu": {
            "url": "https://mcp.pickfu.com/mcp",
            "transport": "streamable-http",
            "headers": {
              "Authorization": "Bearer sk_your_api_key"
            }
          }
        }
      }
      ```
    </CodeGroup>
  </Step>
</Steps>

See the [authentication guide](/authentication) for full details on both methods.

## Need help?

<CardGroup cols={2}>
  <Card title="MCP documentation" icon="book" href="https://modelcontextprotocol.io/">
    Learn more about the Model Context Protocol.
  </Card>

  <Card title="Help center article" icon="circle-question" href="https://www.pickfu.com/help/en/articles/13841860-how-to-use-the-pickfu-mcp-integration-with-ai-assistants">
    Quick setup overview for non-developers.
  </Card>

  <Card title="Contact support" icon="envelope" href="mailto:support@pickfu.com">
    Get help with MCP server setup.
  </Card>
</CardGroup>
