findme-mcp
OfficialAllows uploading photos from public Dropbox URLs to a FindMe gallery.
Allows importing photos from a Google Drive folder (partial support in v1).
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@findme-mcpCreate a wedding gallery for Lee & Park on March 20 and upload photos from the 'LeePark' folder."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-Miketo 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 a new gallery. |
| List your events (paginated). |
| Get event details + stats. |
| Rename, re-date, or change access code. |
| Soft-delete with 7-day recovery. |
| Un-delete within 7 days. |
| Upload local files or folders. Primary upload tool. |
| Upload from public URLs (Dropbox, direct Drive links, etc.). |
| Import from Google Drive (partial in v1). |
| PNG QR code pointing to the public gallery. |
| Guest visits, unique visitors, downloads, selfie searches. |
| Current-month API usage, storage, event totals. |
Requirements
Node.js 18+
A FindMe Photo account on Free+, Growth, or Pro
A personal API key from https://findme.photo/settings/api
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-mcpChatGPT Codex
codex mcp add findme --env FINDME_API_KEY=fm_live_xxxxx -- npx -y findme-mcpCursor / Windsurf / VS Code / Cline
Use the tool's built-in MCP install UI with:
Command:
npxArgs:
-y findme-mcpEnv:
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-mcpVerify
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 --versionFirst run downloads the package via
npx; allow it through your firewallCheck the JSON is valid if you edited manually (no trailing commas)
"Your FindMe API key is invalid or has been revoked"
Generate a fresh key at https://findme.photo/settings/api
Paste the full key including the
fm_live_prefixFully quit and restart your AI client
"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_folderrequires 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 toolscreate_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.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Optional tag/category (e.g. "wedding", "corporate"). | |
| name | Yes | Event name, e.g. "Sarah & Mike Wedding" | |
| event_date | No | Event date in YYYY-MM-DD format. Optional. | |
| description | No | Optional description. | |
| album_quality | No | Storage resolution. Tier-capped — call without this and the tool will return your allowed options. | |
| enable_downloads | No | Whether guests can download photos from the gallery. | |
| is_collaborative | No | Whether the album is shareable/collaborative — other people can upload photos to it. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes | UUID of the event. |
TDQS
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.
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.
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.
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.
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.
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?"
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | YYYY-MM-DD end date | |
| from | No | YYYY-MM-DD start date | |
| event_id | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Pixel size per side (128-2048). Default 512. | |
| event_id | Yes |
TDQS
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.
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.
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.
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.
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.
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_upload_linkA
Get a no-login "tap-to-upload" link for an event. Returns a URL the photographer opens on any device (phone or computer) to upload photos through the browser's native picker — no account or login required. THIS IS THE WAY TO UPLOAD when you can't read the photographer's local files (i.e. always, in ChatGPT and in Claude web/mobile — anywhere except a locally-installed Claude Desktop with the findme-mcp filesystem tool). When the photographer asks to add or upload photos, call this, then give them the link and tell them to tap it and pick their photos — or their whole folder (the page has a 'Choose a whole folder' option on desktop). The link is reusable and scoped to this one event; photos are resized to the album's quality automatically. FindMe has a playful, confident voice — hand over the link with a short, specific one-liner.
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes | UUID of the event to upload to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description fully discloses behavioral traits: the link requires no login, is reusable, scoped to one event, and photos are automatically resized. It also describes the workflow for the photographer, including the folder upload option. No annotations exist to contradict.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and returns a clear explanation. While relatively long, each sentence provides necessary context or guidance. A slight reduction in detail could improve conciseness, but structure remains effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, no annotations), the description is nearly complete. It covers purpose, behavior, usage workflow, and even hints at alternative scenarios. Minor missing details (e.g., error handling for invalid event ID) do not significantly detract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter (event_id) with 100% schema coverage description. The tool's description adds minimal additional meaning beyond the schema (e.g., 'scoped to this one event'), but baseline for high coverage is 3. No significant extra semantic value is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get a no-login "tap-to-upload" link for an event.' It distinguishes itself from sibling upload tools (upload_photos_from_paths, etc.) by providing a link for the photographer to upload, rather than uploading directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('THIS IS THE WAY TO UPLOAD when you can't read the photographer's local files') and when not to ('anywhere except a locally-installed Claude Desktop with the findme-mcp filesystem tool'). It provides clear instructions on how to use the returned link.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max 100. Default 20. | |
| cursor | No | Pagination cursor from a previous response. | |
| created_after | No | ISO datetime. Only show events created after this. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | ||
| name | No | ||
| event_id | Yes | ||
| event_date | No | YYYY-MM-DD or null to clear | |
| access_code | No | 4-12 uppercase alphanumeric characters | |
| description | No | ||
| album_quality | No | Storage resolution. Changeable only before the first photo is uploaded; tier-capped. | |
| enable_downloads | No | Whether guests can download photos. | |
| is_collaborative | No | Whether other people can upload to this album. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | No | ||
| folder_id | No | Google Drive folder ID (optional, ignored). | |
| folder_url | No | Google Drive folder URL (optional, ignored). | |
| folder_name | No | Optional folder name for display. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| paths | Yes | File paths or directory paths. `~` expansion supported. Directories upload all supported files inside (non-recursive by default). | |
| event_id | Yes | UUID of the target event. | |
| recursive | No | If true, recurse into subdirectories (max depth 10). Default false. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | Public URLs returning image/video bytes. | |
| event_id | Yes |
TDQS
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.
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.
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.
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.
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.
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.
14 tool updates
v0.7.1- First observed
create_event - First observed
delete_event - First observed
get_account_info - First observed
get_event - First observed
get_event_analytics - First observed
get_event_qr - First observed
get_upload_link - First observed
get_usage - First observed
list_events - First observed
restore_event - First observed
update_event - First observed
upload_photos_from_drive_folder - First observed
upload_photos_from_paths - First observed
upload_photos_from_urls
TDQS
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.
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.
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.
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
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
Connect AnyFile to AI clients to manage files, share links, file requests, and analytics.
- FotifyOAuthapp.fotify
Create events, collect guest photos and manage RSVP invitations for weddings and parties.
Upload, organize, search, and transform images, videos, and files with AI-powered tools.
Create and manage QR codes on me-qr.com from AI clients like Claude and ChatGPT.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to search, browse, and retrieve metadata and images from your Google Photos library. It supports content-based filtering, album listing, and location extraction via STDIO and HTTP transports.41-
- AlicenseNot gradedqualityCmaintenanceEnables creating and customizing mobile wedding invitations through natural language, with support for multiple designs, RSVP, maps, gallery, and share tokens.Creative Commons Attribution Non Commercial 4.0 International
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to manage Cloudinary media assets, including uploading, searching, transforming, and organizing images and videos through natural language.219MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to access, tag, describe, and manage a Flickr photo library, including automated batch processing.50MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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