# Connect Perplexity to your photo library with OwAI MCP

> Use OwAI from a Perplexity custom connector or the Agent API. Includes OAuth setup, read-only verification, tool allowlists, approvals and media limits.

Author: [Alex Visheratin](https://x.com/visheratin)

Updated: 2026-10-20

## Choose the Perplexity product you are connecting

For conversations in the Perplexity product, add OwAI as a custom remote connector and let Perplexity run the OAuth sign-in flow. For software you are building with Perplexity's Agent API, include OwAI as an MCP tool in each API request or save it as an API Console connector. These are separate setups even though both use the same OwAI endpoint.

This is an independent OwAI integration guide. It does not claim an official partnership, directory listing or endorsement by Perplexity.

| Use case | Setup | Authentication |
| --- | --- | --- |
| Perplexity conversations and Computer workflows | Custom remote connector in Plugins or Connectors | Interactive OAuth 2.0 sign-in |
| Your own application using Agent API | MCP tool in an Agent API request, or an API Console connector | A server-side OwAI access token in authorization; the per-request MCP tool does not run an OAuth flow |

- [Perplexity: adding custom remote connectors](https://www.perplexity.ai/help-center/en/articles/13915507-adding-custom-remote-connectors)
- [Perplexity Agent API MCP tools](https://docs.perplexity.ai/docs/agent-api/tools/mcp)

## Prepare OwAI before connecting

You need access to custom remote connectors in your Perplexity account or organization, or a Perplexity API project for the Agent API path. Perplexity's interface and account eligibility can change, so use the current Plugins or Customize → Connectors screen as the source of truth.

In OwAI, sign in to an account with permanent Cloud Access, add a local folder, Apple Photos source or OneDrive folder, and wait for indexing. For local folders and Apple Photos, enable Cloud index sync and wait for the first sync. OneDrive uses its shared cloud catalog. Hosted semantic searches use prepaid search credits; metadata-only searches and library inspection do not run inference.

- [Download OwAI](https://organizewith.ai/en/download)
- [Cloud Access and credit pricing](https://organizewith.ai/en/pricing)
- [Choose an OwAI setup](https://organizewith.ai/en/guides/choose-your-owai-setup)

## Add OwAI to the Perplexity app with OAuth

Remote MCP server: https://index.organizewith.ai/mcp

Use this URL without a device ID, token or other credential in the query string. Perplexity connects from its cloud service, so opening Perplexity on the library computer does not give it local filesystem access.

1. For your account, open Plugins in the sidebar, or Customize → Connectors if Plugins is not shown. Choose Add custom → Connector → Add MCP connector. For an organization, an administrator uses Enterprise settings → Permissions → Connector permissions and enables member-added connectors if appropriate.

2. Choose Remote, name it Organize with AI, enter https://index.organizewith.ai/mcp, choose Streamable HTTP, and select OAuth 2.0. OwAI publishes OAuth discovery and dynamic registration metadata, so do not paste a client secret unless your organization has deliberately registered its own client.

3. Add the connector, open its card, and complete OwAI sign-in. Review the scopes before approving them. Never paste an OwAI password, callback URL or token into a Perplexity conversation.

4. Enable the connector, then run the read-only verification below before allowing it to make changes.

- [OwAI OAuth discovery and registration guide](https://organizewith.ai/auth.md)
- [Perplexity custom remote connector instructions](https://www.perplexity.ai/help-center/en/articles/13915507-adding-custom-remote-connectors)

## Verify the consumer connector without changing anything

Ask: List the sources in my OwAI library, including item counts and indexing coverage. Do not change anything. Confirm that the names match OwAI. Completing OAuth without a real source listing does not prove the connector is ready.

Next ask: Show five photos from Camera Roll with filenames and captured dates. Replace Camera Roll with an actual source name. This metadata-only check does not spend semantic-search credits. Then try a visual query with a source and date range that exist in your library.

Perplexity should use the live tool schema. It must not invent tool prefixes, omit requested source/date/people filters, or treat an approximate OCR-style result as verified literal text.

Tool: `search_media`

```json
{
  "source_name": "Camera Roll",
  "media_type": "image",
  "limit": 5
}
```

## Connect OwAI from Perplexity Agent API

The Agent API's per-request MCP tool supports Streamable HTTP and accepts the remote server token in authorization. It does not perform an MCP OAuth browser flow. Obtain and refresh an OwAI OAuth access token in your trusted backend, or use an existing OwAI developer key as a bearer credential. Keep that credential in server-side secret storage; do not send it to a browser, log it, put it in a URL, or expose it to the model.

Use allowed_tools because omitting it exposes every discovered OwAI tool to the model. For an initial read-only integration, allow only the tools below. The Perplexity API key authenticates your request to Perplexity; OWAI_ACCESS_TOKEN is a different credential that Perplexity forwards to OwAI.

Read-only MCP tool configuration

```json
{
  "type": "mcp",
  "server_label": "owai",
  "server_url": "https://index.organizewith.ai/mcp",
  "authorization": "<OWAI_ACCESS_TOKEN_FROM_SERVER_SECRET_STORAGE>",
  "allowed_tools": [
    "inspect_library",
    "search_media",
    "locate_media",
    "read_media",
    "inspect_duplicates",
    "inspect_face_candidates",
    "get_library_command"
  ],
  "require_approval": "never"
}
```

- [Perplexity Agent API MCP reference](https://docs.perplexity.ai/docs/agent-api/tools/mcp)

## Require an explicit Agent API approval for every write

Perplexity Agent API runs MCP calls without approval when require_approval is omitted, null or never. A write-capable OwAI integration must set an approval policy. Keep the read-only tools in the never list and require approval for every other exposed tool, as in the example below.

When Perplexity returns mcp_approval_request, show the user the server label, exact tool name and parsed arguments. Make the decision in a trusted backend, then continue with mcp_approval_response and the same unchanged tool configuration. Deny a pending call explicitly; removing it from allowed_tools does not cancel the pending approval.

Tool annotations help classify calls but are server-supplied hints, not a general security boundary. An explicit tool-name allowlist plus OAuth scopes remains the stronger control. Add only the write tools your application actually needs.

Write-capable configuration with approval

```json
{
  "type": "mcp",
  "server_label": "owai",
  "server_url": "https://index.organizewith.ai/mcp",
  "authorization": "<OWAI_ACCESS_TOKEN_FROM_SERVER_SECRET_STORAGE>",
  "allowed_tools": [
    "inspect_library",
    "search_media",
    "locate_media",
    "read_media",
    "inspect_duplicates",
    "inspect_face_candidates",
    "get_library_command",
    "set_favorites",
    "manage_collection",
    "manage_group",
    "manage_person",
    "preview_media_deletion",
    "apply_media_deletion"
  ],
  "require_approval": {
    "never": {
      "tool_names": [
        "inspect_library",
        "search_media",
        "locate_media",
        "read_media",
        "inspect_duplicates",
        "inspect_face_candidates",
        "get_library_command"
      ]
    }
  }
}
```

## Media and source boundaries are the same in both Perplexity paths

Remote MCP searches the authenticated account's synced catalog. A result path is metadata, not permission for Perplexity to read a laptop or phone filesystem. Use read_media for content. Images fit the 5 MiB inline budget or are adapted only as needed; videos return authenticated stream links whose playback and analysis depend on the client fetching them and supporting the codec.

Cloud index sync stores searchable metadata and embeddings, not original-media backups. Requested media bytes sent to Perplexity are then covered by Perplexity's data policies. Remote media access for local folders and Apple Photos is an explicit OwAI opt-in and is separate from cloud index sync.

| Source | Remote search | Media reads and changes |
| --- | --- | --- |
| Local folder | Last completed cloud-index sync | Owning OwAI app online; reads also need Remote media access enabled |
| Apple Photos | Last completed cloud-index sync | Owning Mac online with full Photos access; reads also need Remote media access enabled |
| OneDrive | Shared cloud catalog | Connected Microsoft account; supported reads and provider changes need no online desktop |

- [Local versus remote MCP and media access](https://organizewith.ai/en/guides/local-vs-remote-mcp)

## Use OwAI's reviewed write and deletion flow

Before an organization change, show the intended source and exact assets. After any write tool returns a command ID, poll get_library_command until it succeeds or fails. Pending or running is not completion. Local folders and Apple Photos need their owning app online; supported OneDrive operations execute on the server.

Deletion is a separate two-step flow even after a Perplexity approval. First call preview_media_deletion and show the exact files, favorites and source-specific recovery warning. Obtain explicit user approval, then call apply_media_deletion. A duplicate score is not approval. Local folders use OwAI's 30-day recovery, OneDrive uses Microsoft's recycle bin, and Apple Photos uses Recently Deleted.

For the consumer connector, begin with read scopes and authorize write or delete scopes only when needed. For Agent API, combine least-privilege OAuth scopes, allowed_tools and require_approval. None of these controls should be silently weakened to make a failed call pass.

- [Safe media-management workflow](https://organizewith.ai/en/guides/manage-media-with-ai)

## If Perplexity cannot connect or use the library

- Custom connector option missing: check account availability and organization connector permissions. The remote URL cannot turn a disabled account feature on.
- Connector verification fails: confirm HTTPS, Streamable HTTP and OAuth 2.0. A Cloudflare HTML challenge or 403 from bot protection is not an OwAI scope error; record the HTTP status and Ray ID for support.
- OAuth finishes but the library is empty: confirm Perplexity and OwAI use the same account and the initial cloud sync finished for local folders or Apple Photos.
- Agent API returns 401: keep the Perplexity API key in the request's Authorization header, and pass the separate raw OwAI token in the MCP tool's authorization field. Do not prepend Bearer inside that field unless the current Perplexity SDK explicitly requires it.
- Tool not available in Agent API: check allowed_tools first. Omitting a needed name hides it from the model; removing a tool does not cancel an already pending approval request.
- Visual search reports search_credits_exhausted: the error is non-retryable until credits are added. Metadata-only search and inspection remain available; do not claim that they satisfy the failed visual request.
- Image or video unavailable: for local folders check the owning app and Remote media access; for Apple Photos also check full Photos permission; for OneDrive check the Microsoft connection.
- A write remains pending: poll its existing command ID and keep the required owner online. Do not issue a duplicate write with a new idempotency key.

- [OwAI support and troubleshooting](https://organizewith.ai/en/guides/support-and-troubleshooting)

HTML: https://organizewith.ai/en/guides/connect-perplexity
