Skip to main content
Glama

FindMe Photo MCP Server

Official Model Context Protocol server for FindMe Photo — the AI-powered wedding gallery platform.

Drive your FindMe galleries from Claude, ChatGPT Codex, Cursor, and any other MCP-compatible AI client. Create events, upload photos, pull analytics — all in natural language.

What it does

"Create a FindMe event for the Sarah & Mike wedding on April 22, upload every photo in ~/Pictures/Sarah-Mike to it, then show me the QR code."

The AI uses this MCP server to do all three steps in one turn.

Related MCP server: Wedding Invitation Builder MCP

Tools

Tool

Purpose

create_event

Create a new gallery.

list_events

List your events (paginated).

get_event

Get event details + stats.

update_event

Rename, re-date, or change access code.

delete_event

Soft-delete with 7-day recovery.

restore_event

Un-delete within 7 days.

upload_photos_from_paths

Upload local files or folders. Primary upload tool.

upload_photos_from_urls

Upload from public URLs (Dropbox, direct Drive links, etc.).

upload_photos_from_drive_folder

Import from Google Drive (partial in v1).

get_event_qr

PNG QR code pointing to the public gallery.

get_event_analytics

Guest visits, unique visitors, downloads, selfie searches.

get_usage

Current-month API usage, storage, event totals.

Requirements

Install

The easiest way: let the AI install itself. Paste a prompt, the AI edits its own config. No hidden files.

For a step-by-step walkthrough aimed at non-technical photographers, see the full install guide.

Claude Desktop

Open Claude Desktop, click the Code tab (not Chat), then paste this prompt (replace the key):

Install the FindMe MCP server for me.

- Server name: findme
- Command: npx
- Args: -y findme-mcp
- Env var: FINDME_API_KEY = fm_live_PASTE_YOUR_KEY_HERE

Edit my claude_desktop_config.json under mcpServers, then tell me to fully quit and reopen Claude.

Claude Code (CLI)

claude mcp add findme --scope user --env FINDME_API_KEY=fm_live_xxxxx -- npx -y findme-mcp

ChatGPT Codex

codex mcp add findme --env FINDME_API_KEY=fm_live_xxxxx -- npx -y findme-mcp

Cursor / Windsurf / VS Code / Cline

Use the tool's built-in MCP install UI with:

  • Command: npx

  • Args: -y findme-mcp

  • Env: FINDME_API_KEY=fm_live_xxxxx

ChatGPT web / mobile

Coming soon — requires a hosted MCP endpoint. We're shipping mcp.findme.photo next. In the meantime, use Claude Desktop or Codex.

Any other MCP client

FINDME_API_KEY=fm_live_xxxxx npx findme-mcp

Verify

After restart, you should see findme in your client's tool list (12 tools). Try:

Create a FindMe event called "My First Gallery" for today, then show me the QR code.

Troubleshooting

"MCP server failed to start"

  • Ensure Node.js 18+: node --version

  • First run downloads the package via npx; allow it through your firewall

  • Check the JSON is valid if you edited manually (no trailing commas)

"Your FindMe API key is invalid or has been revoked"

"API access requires Free+, Growth, or Pro"

API access is a paid-tier feature. Upgrade at https://findme.photo/pricing.

Upload fails with "can't find folder" on macOS

macOS privacy protection. Open System Settings → Privacy & Security → Full Disk Access and add your AI client (Claude Desktop, Terminal, etc.). Then quit and reopen.

Upload partially failed

The tool never errors a whole batch for one bad file — it returns a summary showing which files succeeded and which didn't. Ask the AI to retry the failed ones specifically.

Limits

Tier

Rate limit

Monthly quota

Free+

10 req/min

500 / month

Growth

60 req/min

10,000 / month

Pro

300 req/min

Unlimited

Per file: 50 MB photos, 500 MB videos, 50 files per upload batch.

v1 limitations

  • upload_photos_from_drive_folder requires an existing Drive import created via the findme.photo web UI; the MCP can poll status but not create imports yet.

  • The MCP runs locally on the same machine as your AI client; it only sees files on that machine.

Resources

License

MIT — © 2026 FindMe Photo

Available Tools

14 tools
create_eventA

Create a new FindMe event (a wedding/photo gallery). Returns the event id, a shareable access code, and gallery + QR URLs. Use when the photographer says things like "create an event for Sarah & Mike on April 22" or "make a new gallery called Johnson Wedding". CRITICAL — three album settings are user preferences: album_quality (storage resolution; tier-capped), enable_downloads (guest downloads on/off), is_collaborative (others can upload). DO NOT guess, infer, or fill in defaults for these three fields yourself — you have no way to know what the photographer prefers. On the FIRST call, omit all three of these fields (only pass name + optional date/description/tag). The tool will respond with either an interactive form (clients with elicitation support) or a structured needs_input JSON listing tier-allowed options and recommended defaults — surface those options to the photographer as a numbered multiple-choice list, never as an open-ended question, and wait for their answer. Only then call create_event again with the photographer's chosen values. The only exception: if the photographer explicitly states a preference in their initial message (e.g. "make it collaborative" or "use 4000px quality"), you may include those specific stated preferences. FindMe has a playful, confident voice — when the event is created, give a short upbeat reaction that names the gallery and its access code, and mention the album_quality (e.g. "stored at 4000px, your plan's top setting"). Do not use the same phrasing twice. AFTER the album is created, if the photographer wants to add photos (e.g. they said "create an album and upload the photos in my Smith folder"), immediately call get_upload_link and hand them the link — tell them to tap it and pick their photos or their whole folder in the browser. You cannot read their local folder in this chat, so never ask for a file path; the folder/photos are chosen on the upload page.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoOptional tag/category (e.g. "wedding", "corporate").
nameYesEvent name, e.g. "Sarah & Mike Wedding"
event_dateNoEvent date in YYYY-MM-DD format. Optional.
descriptionNoOptional description.
album_qualityNoStorage resolution. Tier-capped — call without this and the tool will return your allowed options.
enable_downloadsNoWhether guests can download photos from the gallery.
is_collaborativeNoWhether the album is shareable/collaborative — other people can upload photos to it.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Reveals critical behavioral traits: returns interactive form or needs_input JSON, tier-capped album_quality, multi-step workflow, and post-creation photo upload guidance. Since no annotations exist, the description carries full burden and does so thoroughly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with a clear flow, but notably long (multiple paragraphs). Each sentence serves a purpose, but some procedural details could be condensed without losing clarity. Still, it's well-organized and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Comprehensive given the absence of output schema: describes return values (event id, access code, URLs). Covers the multi-step interaction for album settings and integration with upload workflow. No missing elements apparent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Adds significant meaning beyond schema by explaining that album_quality, enable_downloads, is_collaborative are user preferences not to be guessed, and provides the proper elicitation workflow. Schema already covers 100% of parameters with descriptions, but the tool description enriches their contextual usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it creates a new FindMe event (wedding/photo gallery) and specifies return values (event id, access code, URLs). Distinguished from sibling tools like get_event, update_event.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use instructions (photographer requests to create an event), detailed step-by-step process for first call vs. subsequent calls, how to handle defaults, and when to include explicit preferences. Also advises calling get_upload_link after creation if photos are involved.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_eventA

Soft-delete an event. The event is hidden immediately and photos stop appearing in the gallery, but the data is kept for 7 days so it can be restored with restore_event if needed. After 7 days, the data is permanently purged.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description fully discloses behavior: soft-delete, immediate hiding, 7-day retention before permanent purge. This conveys the crucial mutation and data lifecycle aspects clearly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences, front-loaded with purpose and followed by key behavioral details. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 1-param tool with no output schema, the description covers behavior thoroughly: soft-delete, immediate effects, data retention, permanent purge. It misses only a mention of return value or error conditions, but overall is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds no meaning to the single parameter event_id beyond what the schema provides (just a string type). The description could have explained that event_id identifies the event to delete, but it did not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Soft-delete an event,' using a specific verb and resource. It distinguishes from sibling tools like restore_event by explaining the soft-delete behavior and data retention policy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use (soft-delete), what immediately happens (event hidden, photos stop appearing), and that it can be restored within 7 days. It mentions restore_event as a recovery option, but does not explicitly discuss when not to use this tool vs alternatives like update_event.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_account_infoA

Confirm which FindMe account and Google Drive connection this MCP session is operating on. Returns the FindMe email, plan tier, active event count, and the Google email that Drive is connected with (or null if not connected). ALWAYS call this once at the start of any conversation that involves listing events, uploading photos, importing from Drive, or any account-scoped action — and surface the result to the photographer in one short sentence so they can confirm or correct before any action is taken. If the FindMe email and the Drive Google email differ, name both explicitly. If Drive is not connected and the user asks to import, point them at https://findme.photo/profile to connect it.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It implies a read-only operation by saying 'confirm' and 'returns', but does not explicitly state that no data is modified or that it is safe to call multiple times. However, for a simple info retrieval tool, this level of transparency is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph that efficiently packs purpose, return values, usage instructions, and error handling. It could be slightly shorter, but every sentence serves a clear function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, no annotations, and zero parameters, the description fully covers what an agent needs: what the tool does, what it returns, when to call it, and how to handle results. No important gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so schema coverage is 100%. The description adds no parameter information, but none is needed. Per guidelines, 0 parameters yields a baseline of 4, and the description does not detract from that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to confirm the FindMe account and Google Drive connection. It lists the specific pieces of information returned (email, plan tier, event count, Google email) and distinguishes itself from sibling tools like get_event or get_usage by focusing on session-level context rather than individual resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance: 'ALWAYS call this once at the start of any conversation that involves listing events, uploading photos, importing from Drive, or any account-scoped action'. It also advises surfacing the result to the photographer and gives instructions for handling mismatched emails or missing Drive connections.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_eventA

Get full details for one event — includes stats: photo_count, video_count, total storage, guest visits, selfie searches. Use when the photographer asks about the status or stats of a specific gallery.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYesUUID of the event.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description mentions returned stats (photo_count, etc.) but does not explicitly state that it is a non-destructive read operation or disclose any other behavioral traits like authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences that are concise and front-loaded. First sentence states purpose and output, second sentence provides usage guidance. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequately complete for a simple 1-parameter tool with no output schema. Description covers purpose, when to use, and key output fields. However, it could mention that the tool is read-only or that the event_id must be valid.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter (event_id). The description adds value by explaining what the tool returns (stats), but does not add beyond the schema for the parameter itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Get full details for one event' with a specific verb and resource. Distinguishes from siblings because it's the only tool that retrieves a single event's full details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use when the photographer asks about the status or stats of a specific gallery.' Provides clear context for use but does not explicitly mention when not to use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_event_analyticsA

Get aggregated analytics for an event: guest visits, unique visitors, photos downloaded, selfie searches, and per-day breakdown. Default window is event creation to now. Use when the photographer asks things like "how many people viewed the Johnson wedding?" or "what was the download count?"

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoYYYY-MM-DD end date
fromNoYYYY-MM-DD start date
event_idYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears the burden. It discloses the default time window but does not state whether the operation is read-only, requires authentication, or other behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences that front-load the tool's purpose and list of metrics, then provide usage context. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, no output schema, and no annotations, the description adequately covers the tool's functionality, default behavior, and use cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%, and the description clarifies that the 'from' and 'to' parameters are optional with a default window of 'event creation to now', adding value beyond the schema's date format descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves aggregated analytics for an event, listing specific metrics (guest visits, unique visitors, etc.) and the default time window. It also gives example user queries, distinguishing it from sibling tools like get_event or get_usage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides example use cases (e.g., 'how many people viewed the Johnson wedding?') but does not mention when not to use the tool or suggest alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_event_qrB

Get a QR code image (PNG) for an event's public gallery URL. Returns the image so the AI can display it to the photographer or save it. Useful for printing signage at events.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoPixel size per side (128-2048). Default 512.
event_idYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It states that the tool returns a PNG image that the AI can display or save, implying a read-only operation. However, it does not discuss potential errors, required permissions, rate limits, or what happens if the event ID is invalid. For a missing annotation scenario, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two concise sentences. The first states the primary function, and the second adds the value (display/save) and use case (signage). There is no redundancy or fluff; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 parameters, no output schema, no annotations), the description covers the core purpose and output format. However, it omits error conditions, input constraints (e.g., event must be public), and details on how the image is returned (binary vs. URL). The description is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50% (only 'size' has a description). The tool description adds no additional meaning beyond the schema. It does not clarify the 'event_id' parameter's format or source. The description should compensate for the schema's lack of detail, but it does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get a QR code image (PNG) for an event's public gallery URL.' The verb 'Get' and resource 'QR code image' are specific and unambiguous. It distinguishes itself from sibling tools like 'get_event' (event details) and 'get_event_analytics' (analytics), making the purpose immediately clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'Useful for printing signage at events,' which provides a concrete use case. However, it lacks explicit guidance on when not to use the tool, prerequisites (e.g., event must have a public gallery), or alternatives. The context is implied but not thorough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_usageA

Get the current-month usage for your FindMe account: API requests used/limit, rate limit per minute, storage used/limit, and active event count. Use when the photographer asks about their usage, quota, remaining requests, or plan limits.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description fully bears the burden. It discloses the data returned without any contradiction. Since it's a get operation, no side effects are expected, but explicit mention of read-only nature would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences only, front-loaded with purpose and usage instructions. No extraneous text, every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description fully covers all returned fields (API requests, rate limit, storage, active event count). The description is complete for a simple read-only quota tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in schema, so baseline is 4. Description adds value by explaining what the response contains, which helps the agent understand the tool's purpose even though no parameters are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the exact action ('Get current-month usage') and lists the specific metrics returned (API requests used/limit, rate limit, storage used/limit, active event count). It clearly distinguishes from sibling tools that deal with events or uploads.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: when the photographer asks about usage, quota, remaining requests, or plan limits. No exclusions or alternatives mentioned, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_eventsA

List the photographer's events, most recent first. Returns up to 20 by default; use cursor for pagination. Filter with created_after (ISO date) to only show recent events.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax 100. Default 20.
cursorNoPagination cursor from a previous response.
created_afterNoISO datetime. Only show events created after this.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It describes default limit, pagination using cursor, and filtering with created_after. However, it does not disclose whether the operation is read-only, any rate limits, or the return format. This is adequate but leaves some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, with three short sentences. It front-loads the main purpose and then adds details, with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool is a simple list operation with no output schema, the description covers the essential behaviors: default limit, pagination, and filtering. It could mention return format but is sufficient for common use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds value by explaining ordering ('most recent first') and usage of cursor for pagination, which goes beyond the schema's individual parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (list), resource (events), scope (photographer's), ordering (most recent first), default limit, pagination mechanism, and a filter option. It distinguishes well from sibling tools like get_event (single event) and create_event.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it (to list events with optional pagination and filtering) but does not explicitly state when not to use it or compare to alternatives. However, the context of sibling tools makes it adequately clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restore_eventA

Restore a soft-deleted event within the 7-day recovery window. Fails if the event is already active or past the 7-day cutoff.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses failure conditions (active or past cutoff) but does not describe the return value or success behavior (e.g., returns restored event object). Lacks detail on idempotency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no fluff. Every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given low complexity (single param, no output schema, no annotations), the description covers purpose, constraints, and failure conditions. Minor gap: missing return value or success behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the only parameter `event_id` is a string. The description does not add any additional meaning beyond the schema (e.g., format or validation). Minimal extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Restore a soft-deleted event' with a specific resource (event) and verb (restore). It distinguishes from siblings like delete_event (which deletes) and create_event (creates new).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description tells when to use (within 7-day recovery window) and when not (if already active or past cutoff). It provides clear context but does not explicitly mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_eventA

Update fields on an existing event: name, event_date, description, tag, access_code, album_quality (storage resolution; changeable only before the first photo is uploaded, and tier-capped), enable_downloads (toggle guest downloads on/off), or is_collaborative (toggle whether other people can upload). Only include the fields you want to change. Use when the photographer wants to rename, re-date, re-code, change quality (pre-upload), or flip the downloads/collaborative toggles. If the photographer asks to change album_quality on an album that already has photos, the API will return a conflict error — relay that politely and explain they'd need to delete photos first.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
nameNo
event_idYes
event_dateNoYYYY-MM-DD or null to clear
access_codeNo4-12 uppercase alphanumeric characters
descriptionNo
album_qualityNoStorage resolution. Changeable only before the first photo is uploaded; tier-capped.
enable_downloadsNoWhether guests can download photos.
is_collaborativeNoWhether other people can upload to this album.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, but the description fully discloses behavioral traits: field constraints (album_quality changeable only pre-upload, tier-capped), toggling behavior for booleans, nullability for clearing values, and conflict errors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is thorough and well-structured, but slightly verbose. Every sentence adds value; no fluff, but could be tightened slightly without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 parameters and no output schema, the description covers almost everything: parameter behavior, constraints, error scenarios. Missing only a note on what the API returns on success, but it's minor given the thoroughness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant meaning beyond the schema, such as explaining album_quality constraints, toggle behavior for enable_downloads and is_collaborative, and error handling. Schema coverage is 56%, but description compensates fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Update fields on an existing event' and lists all modifiable fields, making the purpose explicit. It is distinct from sibling tools like create_event and delete_event.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage guidance: 'Only include the fields you want to change' and 'Use when the photographer wants to...'. Also includes a specific when-not scenario for album_quality and error handling advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upload_photos_from_drive_folderA

Attempt to import photos from a Google Drive folder. IMPORTANT: this is not supported in chat-based AI assistants because Google's drive.file scope (the only Drive scope FindMe is verified for) does not allow apps to list folder contents. The tool always returns a redirect message pointing the photographer at the FindMe web app, where the Google Picker handles authorization in one click. Surface the message verbatim — do not retry or guess folder contents.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idNo
folder_idNoGoogle Drive folder ID (optional, ignored).
folder_urlNoGoogle Drive folder URL (optional, ignored).
folder_nameNoOptional folder name for display.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool always returns a redirect message instead of actual photos, explains the Drive scope limitation, and instructs the agent on proper handling. This is highly transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the purpose, then warnings, then actionable instruction. Every sentence is essential, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (unsupported in chat, Drive scope limitation) and lack of output schema, the description covers all needed information: what it does, why it fails, how to handle the result. Parameter behavior is contextualized appropriately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, and the description adds value by implying that folder_id and folder_url are ignored (since the tool always returns a redirect). It also clarifies that folder_name is for display. While not explicit for all parameters, it provides meaningful context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool attempts to import photos from a Google Drive folder, using a specific verb and resource. It distinguishes from sibling tools like upload_photos_from_paths and upload_photos_from_urls by focusing solely on Drive folders.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the tool is not supported in chat-based AI assistants due to Drive scope limitations, and instructs the agent to surface the redirect message verbatim and not to retry or guess. This provides clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upload_photos_from_pathsA

Upload photos or videos from local file paths on the photographer's computer to a FindMe event. Each path can be a file, a directory (all supported files inside are uploaded), or a glob (basic). Supported formats: .jpg .jpeg .png .webp .mp4 .mov .webm. Max 50 files per call; auto-chunks if more are found. Max size per file: 50 MB for photos, 500 MB for videos. Photos are automatically resized to the album's storage quality before upload (full-size albums keep originals). This is the primary upload tool — prefer it when the photographer says things like "upload all photos in ~/Pictures/Sarah" or "add these files to the Johnson event". On success the response includes rich stats (duration, size, photo/video counts, faces indexing). FindMe has a playful, confident voice — present completions with a specific, upbeat one-liner that cites real numbers. Do not use the same phrasing twice.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYesFile paths or directory paths. `~` expansion supported. Directories upload all supported files inside (non-recursive by default).
event_idYesUUID of the target event.
recursiveNoIf true, recurse into subdirectories (max depth 10). Default false.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses auto-chunking (max 50 files), file size limits, photo resizing behavior, supported formats, and response stats. It does not mention error handling or prerequisites, but the coverage is strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with essential info. Some sentences (e.g., the voice instruction) could be moved to a system prompt, but overall each sentence contributes value. Slightly longer than minimal but not wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex upload tool, it covers formats, limits, recursion, resizing, auto-chunking, and response stats. Missing error behavior and explicit permission requirements, but overall comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds significant value: explains that paths can be files, directories, or globs, mentions recursion (though `recursive` param is in schema), and adds context about file limits and supported formats beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Upload photos or videos from local file paths') and the target resource ('to a FindMe event'). It distinguishes from siblings by explicitly mentioning it is the 'primary upload tool' and contrasting with upload_photos_from_urls and upload_photos_from_drive_folder.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on when to prefer this tool: 'prefer it when the photographer says things like...'. It does not specify when not to use it, but the context of sibling tools implies alternatives for non-local uploads.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upload_photos_from_urlsA

Upload photos/videos from public URLs to a FindMe event. Useful when the photographer shares Dropbox links, direct Drive download URLs, or similar. The MCP server downloads each URL to a temp buffer and streams it to the event. Photos are automatically resized to the album's storage quality before upload (full-size albums keep originals). Max 50 URLs per call. On success the response includes rich stats (duration, size, photo/video counts). FindMe has a playful, confident voice — celebrate completions with a specific, upbeat one-liner that cites real numbers. Do not use the same phrasing twice.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlsYesPublic URLs returning image/video bytes.
event_idYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Details download to temp buffer, streaming, auto-resize behavior based on album type, max 50 URLs, response with rich stats, and even style guidance for the AI's output (playful one-liner). No contradictions with annotations since none exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Six concise sentences, front-loaded with purpose, then procedural details, then a behavioral note. No fluff; every sentence adds unique value. Structured logically from what to how.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, description explains response includes stats, mentions limits (50 URLs), and resizing behavior. Missing error handling or specific URL requirements, but given sibling tools and context, this is sufficiently complete for an AI agent to use effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (only urls items described). Description adds context for event_id by linking it to 'FindMe event' and repeats urls description. While it doesn't provide detailed syntax for event_id, the overall usage is clear. Slightly above baseline due to compensating contextual information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Upload photos/videos from public URLs to a FindMe event' with specific verb and resource. It distinguishes from sibling tools like upload_photos_from_paths and upload_photos_from_drive_folder by explicitly mentioning URLs and giving usage examples (Dropbox, Drive links).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Directly states when to use: 'when the photographer shares Dropbox links, direct Drive download URLs, or similar.' Implicitly excludes local files (paths) and Google Drive folders (drive_folder) by contrasting with sibling tool names. Provides clear context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 14 tool updatesv0.7.1
    • First observedcreate_event
    • First observeddelete_event
    • First observedget_account_info
    • First observedget_event
    • First observedget_event_analytics
    • First observedget_event_qr
    • First observedget_upload_link
    • First observedget_usage
    • First observedlist_events
    • First observedrestore_event
    • First observedupdate_event
    • First observedupload_photos_from_drive_folder
    • First observedupload_photos_from_paths
    • First observedupload_photos_from_urls

TDQS

A4.2/5.0
Disambiguation5/5

Each tool targets a distinct action or resource: usage, event CRUD, QR code, analytics, account info, upload link, and three upload methods. No overlap; an agent can clearly differentiate them.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern using snake_case (e.g., get_event, update_event, upload_photos_from_paths). No deviations or mixed conventions.

Tool Count5/5

14 tools is well-scoped for a photo gallery management server. It covers account info, event lifecycle, analytics, QR codes, and multiple upload methods without being excessive.

Completeness4/5

Covers the core lifecycle: create, read, update, delete, restore events, plus uploads and analytics. Missing photo-level operations (e.g., list/delete individual photos) but these are not essential for the server's stated purpose.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/findmephoto/findme-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server