PhotoShelter MCP server Let your AI agent deliver your PhotoShelter galleries.

Your AI agent builds client galleries from your selects, captions and keywords whole shoots, finds images in your library and shares links after your OK. Sign in to PhotoShelter once in your own Cloud Browser. No API key request.

  • Free 7-day trial, no card
  • Unofficial, not affiliated with PhotoShelter
PhotoShelter logo PhotoShelter Cloud Browser

9 tools Read and write

Shoot to delivery

What can your AI agent do in PhotoShelter? The work between the last frame and the client's inbox.

  • Build a client gallery of selects

  • Caption and keyword a whole shoot

  • Find images across your library

  • Password protect a gallery

  • Send gallery links to clients

  • Make old public galleries private

API on request

Does PhotoShelter have an MCP server or an API? An API with keys from support, and no MCP server.

PhotoShelter has no MCP server and no ChatGPT or Claude app. It documents an API, but customers contact support for a key instead of generating one (checked 8 Nov 2026). Cotlet runs 9 PhotoShelter tools hosted, over MCP for agents and REST for scripts, in your own PhotoShelter login.

  • PhotoShelter publishes API docs, with keys handed out by support.
  • PhotoShelter's own AI Assistant works inside PhotoShelter, not in ChatGPT or Claude.
  • PhotoShelter has no connector in the ChatGPT apps directory or in Claude.
The PhotoShelter API, other options and Cotlet compared
What you need PhotoShelter APIBy handCotlet
Galleries and library search With a key Yes, one by one Yes
Captions and keywords in bulk With a key Batch tools Yes
Share with a client With a key Yes Yes, after your OK
Ask in ChatGPT or Claude No No Yes
Developer needed Yes No No

Checked 8 Nov 2026. Sources: PhotoShelter engineering and API docs · PhotoShelter for Brands API · PhotoShelter for Brands integrations

Set up once

How does the PhotoShelter MCP server work? Your agent works in your own PhotoShelter login.

  1. 1Sign in to PhotoShelter

    Once, in a browser we host for you.

  2. 2Connect your AI agent

    One address in its settings.

  3. 3Hand it the busywork

    It drafts the work, you OK what customers get.

We never keep your PhotoShelter password, and no gallery is shared or opened to the public until you approve it. Who can see your session

Any MCP client

How to connect PhotoShelter to your AI agent

  1. 1

    Sign in to PhotoShelter in a Cloud Browser. Create a Cotlet account, open PhotoShelter in its Cloud Browser, sign in with your PhotoShelter account and press Enable for agents.

  2. 2

    Add the Cotlet address. Enter https://cotlet.dev/mcp/v1 as the MCP server or connector URL in your agent.

  3. 3

    Let the agent in. Chat apps open a Cotlet sign-in page. Editors, n8n and scripts send an API key made in the console.

PhotoShelter shares the address https://cotlet.dev/mcp/v1 with every other app you enable, so one connector covers them all. Turned PhotoShelter on after connecting? Refresh the connector and the 9 tools appear.

Claude
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
ChatGPT
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
Cursor
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
Codex
# ~/.codex/config.toml
[mcp_servers.cotlet]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
n8n
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: photoshelter_read
Make, Zapier
Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: photoshelter_write
4 read, 5 write

All 9 PhotoShelter MCP tools

Galleries6

New galleries start private. Opening a gallery to the public or a password, and sending its link, wait for your OK.

  • list_galleries Galleries and collections, with access and image counts. read

    Returns galleries with name, parent collection, access setting and number of images. Newest first.

    MCP callphotoshelter_read → list_galleries

    REST endpointGET https://cotlet.dev/api/v1/photoshelter/galleries

    Parameters

    Parameters: list_galleries
    NameTypeDescription
    query string string Gallery name.
    page integer integer Page number. Default: 1.

    Example response

    {
      "galleries": [
        {
          "gallery_id": "G0000aBcD",
          "name": "Harbor Run 2026",
          "collection": "Events",
          "access": "Private",
          "images": 412
        }
      ],
      "page": 1
    }

Image library3

Search by keyword, caption or file name. Captions, keywords and credits can be written on many images in one call.

  • search_images Searches the image library by keyword, caption or file name. read

    Returns matching images with gallery, file name, caption and keywords.

    MCP callphotoshelter_read → search_images

    REST endpointGET https://cotlet.dev/api/v1/photoshelter/images/search

    Parameters

    Parameters: search_images
    NameTypeDescription
    query string required string Keyword, caption text or file name.
    page integer integer Page number. Default: 1.

    Example input

    {
      "query": "query"
    }

    Example response

    {
      "images": [
        {
          "image_id": "I0000xYz1",
          "file": "HR26_0412.jpg",
          "gallery": "Harbor Run 2026",
          "keywords": [
            "finish line",
            "runners"
          ]
        }
      ],
      "page": 1
    }
  • get_image One image with its metadata. read

    Returns caption, keywords, credit, capture date and the galleries the image is in.

    MCP callphotoshelter_read → get_image

    REST endpointGET https://cotlet.dev/api/v1/photoshelter/images/{image_id}

    Parameters

    Parameters: get_image
    NameTypeDescription
    image_id string required string Image ID from search_images or get_gallery.

    Example input

    {
      "image_id": "image_8c41d2"
    }

    Example response

    {
      "image_id": "I0000xYz1",
      "file": "HR26_0412.jpg",
      "caption": "Runners at the finish line",
      "keywords": [
        "finish line",
        "runners"
      ],
      "credit": "Dana Reyes",
      "captured": "2026-10-04"
    }
  • update_image_metadata Sets the caption, keywords or credit of images. write

    Writes caption, keywords and credit on one or more images. Visible only where the gallery is shared; undo by writing the old values. Runs at once.

    MCP callphotoshelter_write → update_image_metadata

    REST endpointPATCH https://cotlet.dev/api/v1/photoshelter/image-metadata

    Parameters

    Parameters: update_image_metadata
    NameTypeDescription
    image_ids string[] required string[] Image IDs.
    caption string string Caption.
    keywords string[] string[] Keywords to add.
    credit string string Credit line.

    Example input

    {
      "image_ids": [
        "image ids"
      ]
    }

    Example response

    {
      "updated": 24,
      "example": {
        "image_id": "I0000xYz1",
        "caption": "Runners at the finish line",
        "keywords": [
          "finish line",
          "runners",
          "harbor run"
        ]
      }
    }
Encrypted, revocable

Who can see my PhotoShelter session, and how do I revoke it?

  • What we store

    Your signed-in PhotoShelter profile, AES-256-GCM encrypted, in Finland. No password.

  • What your agent gets

    The 9 PhotoShelter tools, never the session cookie.

  • What the session sees

    What your account sees: galleries, images, captions, share links.

  • What no tool touches

    Uploads, deletes, sales and payouts, website design, billing.

  • If PhotoShelter signs you out

    You sign in again yourself, in the same Cloud Browser.

  • How to cut access

    Disable for agents, reset the browser, or change your PhotoShelter password.

Cotlet never types your password: you sign in yourself, and the agent only uses the session. Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results).

Tested every 12 h

What happens when PhotoShelter changes? We repair the tool; your prompts stay the same.

between tests of the PhotoShelter reads
12 h
between tests of sends a customer would notice
24 h
for a call to a PhotoShelter tool paused for repair
$0

When PhotoShelter moves a button in the library or renames an access setting, we fix the tool and your agent calls it the same way. status.cotlet.dev checks the site, console and API every 3 minutes.

2 tools ask first

Approvals, undo and mistakes Customers get nothing until you say so.

  1. 01 Finds the selects By keyword in the shoot's gallery.
  2. 02 Builds a private gallery Nobody can see it yet.
  3. 03 Sets a password After your OK.
  4. 04 Waits, then shares The link goes out only after your OK.
Which PhotoShelter actions can be undone
ActionUndo
Create a galleryYes, delete it in PhotoShelter
Add images to a galleryYes, remove them
Update captions and keywordsYes, write the old values
Change gallery accessYes, set it back
Share a galleryNo, but you can make it private again

2 of 9 tools ask first: set_gallery_access, share_gallery. A new private gallery, added images and caption edits reach no customer, so they run at once. You can turn the wait off per tool once you trust a routine.

MCP call
{
  "name": "share_gallery",
  "arguments": {
    "gallery_id": "G0000eFgH",
    "to": [
      "grace@example.com"
    ],
    "message": "Your wedding selects are ready."
  }
}
REST
curl -X POST https://cotlet.dev/api/v1/photoshelter/galleries/G0000eFgH/share \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to":["grace@example.com"],"message":"Your wedding selects are ready."}'
Response
{
  "gallery_id": "G0000eFgH",
  "shared_with": [
    "grace@example.com"
  ],
  "link": "https://example.photoshelter.com/gallery/G0000eFgH"
}

A cron job or n8n flow can call the same tools over REST at /api/v1/photoshelter with the same key and price, in JSON. Failed calls are free. Each tool row above shows its REST path.

Pay per call

How much does the PhotoShelter MCP server cost?

About $18 a monthfor a photographer with about 8 shoots, 3,060 credits. Your PhotoShelter plan stays as it is.

A month of PhotoShelter delivery work for a working photographer, in credits
JobCallsCredits
Client gallery built and shared6 × 8480
Shoot captioned and keyworded4 × 8320
Library search2 × 30600
Public galleries reviewed, weekly4 × 4160
Cloud Browser, 30 days1,500
Total3,060
  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • Works on your current PhotoShelter plan

PhotoShelter publishes no usage counts, so the month is our example. Dollars at the $29 pack rate.

Cotlet credit packs: price, credits and calls at 10 credits each
Credits Price, one time Calls at 10 credits Per 1,000 credits
5,000 $29 500 $5.80
15,000 $79 1,500 $5.27
32,000 $149 3,200 $4.66
60,000 $249 6,000 $4.15

Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.

Other options

PhotoShelter MCP server on GitHub, Zapier or hosted: which to use The API needs a key from support.

Other ways to connect PhotoShelter, checked 8 Nov 2026
OptionWhat it doesWhere it stops
PhotoShelter APIGalleries and images for your own developer.Key through support; you build and host the code.
PhotoShelter AI AssistantHelp inside PhotoShelter.Works inside PhotoShelter, not from ChatGPT, Claude or n8n.
By handEvery screen of PhotoShelter.Your editing time.

If your developer already has a PhotoShelter key, building on the API is cheaper for simple reads. To build, caption and share galleries by asking in ChatGPT or Claude, Cotlet works in the PhotoShelter account you already have.

PhotoShelter MCP setup on GitHub and PyPI

Prefer code? Our public repo has a ready PhotoShelter MCP config for Claude Code, ChatGPT and Cursor, an agent skill and a small command-line tool. Add your Cotlet API key and your agent works in your own PhotoShelter account.

cotlet-connect/photoshelter-mcp
  • MCP config for Claude Code, Cursor and Codex
  • Agent skill and Cursor rules for PhotoShelter
  • Clone it and run, Python standard library only
  • Elastic License 2.0, free in your own business
EU company, since 2019

Who runs Cotlet A company you can look up.

Take Group sp. z o.o. runs Cotlet. It is a software company registered in Poland, EU (VAT PL6342984273), in business since 2019, led by its founders Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Questions about the PhotoShelter tools go to contact@cotlet.dev.

PhotoShelter MCP server: questions

How do I get access?

Sign up free at https://cotlet.dev, open PhotoShelter under Integrations in the console and sign in to PhotoShelter in its Cloud Browser. The trial starts with your first app and asks for no card.

How do I connect PhotoShelter to ChatGPT or Claude?

Sign up at cotlet.dev, log in to PhotoShelter once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your PhotoShelter account through Cotlet, in their phone apps too.

What can ChatGPT do in PhotoShelter?

With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in PhotoShelter: build a client gallery of selects; caption and keyword a shoot; find images in the library. You ask in plain words, and anything that reaches other people waits for your OK first.

Is there an official ChatGPT or Claude app for PhotoShelter?

No. PhotoShelter has no ChatGPT or Claude connector of its own and PhotoShelter has no official MCP server (checked 8 Nov 2026). Cotlet is an independent one that works in ChatGPT, Claude, Cursor and any MCP client, on your signed-in account.

Can ChatGPT create galleries in PhotoShelter?

Yes, with Cotlet. ChatGPT creates the gallery, adds the images you describe and shares it with your client after your OK.

Can ChatGPT add captions and keywords in PhotoShelter?

Yes, with Cotlet. ChatGPT writes captions, keywords and credits on a whole gallery at once, so a shoot is searchable the same day.

Can ChatGPT search my PhotoShelter library?

Yes, with Cotlet. Ask in plain words and ChatGPT searches your library by keyword, caption or file name and lists the matches.

Do I need a PhotoShelter API key to use Cotlet?

No. Cotlet works through your own PhotoShelter sign-in, so you skip the support request for a key. It can do what your account can do in PhotoShelter.

Can it upload photos?

No. Upload from Lightroom, the PhotoShelter uploader or the app as you do today. The agent works with images already in your library.

Is the MCP server different from the REST API?

Only in how it is called. Both carry the same 9 tools, inputs, answers, API key and price. Agents use MCP; scripts and HTTP steps use REST.

Is Cotlet affiliated with PhotoShelter?

No. Cotlet is independent and not affiliated with PhotoShelter.

Hand the PhotoShelter delivery work to your agent.

Free 7-day trial with 2,000 credits, no card needed.