mcp · phototology-ai — Claude Code MCP server: a photo analysis registry
Persistent memory for visual work: a photo gets analyzed once, then every later lookup on it is free. Useful when an agent reads the same image twice.
claude mcp add --env PHOTOTOLOGY_API_KEY=<PHOTOTOLOGY_API_KEY> --env PHOTOTOLOGY_BASE_URL=<PHOTOTOLOGY_BASE_URL> --env PHOTOTOLOGY_MCP_NO_TELEMETRY=<PHOTOTOLOGY_MCP_NO_TELEMETRY> --env DO_NOT_TRACK=<DO_NOT_TRACK> --env PHOTOTOLOGY_MCP_ALLOWED_DIRS=<PHOTOTOLOGY_MCP_ALLOWED_DIRS> --transport stdio mcp -- npx -y @phototology/mcpWhat mcp does
This MCP server from Phototology wires an agent into an image registry. The first pass over a photo bills 1 credit per lens; after that the stored result comes back at no cost, because entries are keyed by perceptual hash and sha256. It starts with npx -y @phototology/mcp and speaks stdio.
Seven tools ship inside. lookup_photo tells you whether an image is already known, analyze_photo handles a single file, analyze_batch takes 1 to 200 at a time, and enrich_photo writes the findings into EXIF, IPTC and XMP. Three free helpers round it out: list_lenses, get_credits, purchase_credits. Run analyze_batch with dryRun: true first if you want the price before committing.
No PHOTOTOLOGY_API_KEY, no server — every analyze call reaches the hosted Phototology API, and there is no local model to fall back on. Identity matching is out of scope: the people lens counts heads and notes physical traits, it does not match faces. C2PA signing is missing too, so formats: ["c2pa"] gets rejected.
What it helps with
- reuse one photo analysis across agent calls
- price a batch before spending credits
- bake structured fields into a file's metadata
- spot near-duplicate images by perceptual hash
- get dates, text and location off a photo as JSON
Example prompts for the agent
- Check
lookup_photofor this image before spending anything on it - Run
analyze_batchwithdryRun: trueover the folder and tell me the cost - Write the analysis into the EXIF of
photo.jpgwithenrich_photo
How to install mcp
Platform CLI
claude mcp add --env PHOTOTOLOGY_API_KEY=<PHOTOTOLOGY_API_KEY> --env PHOTOTOLOGY_BASE_URL=<PHOTOTOLOGY_BASE_URL> --env PHOTOTOLOGY_MCP_NO_TELEMETRY=<PHOTOTOLOGY_MCP_NO_TELEMETRY> --env DO_NOT_TRACK=<DO_NOT_TRACK> --env PHOTOTOLOGY_MCP_ALLOWED_DIRS=<PHOTOTOLOGY_MCP_ALLOWED_DIRS> --transport stdio mcp -- npx -y @phototology/mcpReplace <…> with your own values
Platform CLI
codex mcp add mcp --env PHOTOTOLOGY_API_KEY=<PHOTOTOLOGY_API_KEY> --env PHOTOTOLOGY_BASE_URL=<PHOTOTOLOGY_BASE_URL> --env PHOTOTOLOGY_MCP_NO_TELEMETRY=<PHOTOTOLOGY_MCP_NO_TELEMETRY> --env DO_NOT_TRACK=<DO_NOT_TRACK> --env PHOTOTOLOGY_MCP_ALLOWED_DIRS=<PHOTOTOLOGY_MCP_ALLOWED_DIRS> -- npx -y @phototology/mcpReplace <…> with your own values
Config file
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@phototology/mcp"
],
"env": {
"PHOTOTOLOGY_API_KEY": "<PHOTOTOLOGY_API_KEY>",
"PHOTOTOLOGY_BASE_URL": "<PHOTOTOLOGY_BASE_URL>",
"PHOTOTOLOGY_MCP_NO_TELEMETRY": "<PHOTOTOLOGY_MCP_NO_TELEMETRY>",
"DO_NOT_TRACK": "<DO_NOT_TRACK>",
"PHOTOTOLOGY_MCP_ALLOWED_DIRS": "<PHOTOTOLOGY_MCP_ALLOWED_DIRS>"
}
}
}
}Replace <…> with your own values
Config file
{
"servers": {
"mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@phototology/mcp"
],
"env": {
"PHOTOTOLOGY_API_KEY": "<PHOTOTOLOGY_API_KEY>",
"PHOTOTOLOGY_BASE_URL": "<PHOTOTOLOGY_BASE_URL>",
"PHOTOTOLOGY_MCP_NO_TELEMETRY": "<PHOTOTOLOGY_MCP_NO_TELEMETRY>",
"DO_NOT_TRACK": "<DO_NOT_TRACK>",
"PHOTOTOLOGY_MCP_ALLOWED_DIRS": "<PHOTOTOLOGY_MCP_ALLOWED_DIRS>"
}
}
}
}Replace <…> with your own values
Platform CLI
gemini mcp add -e PHOTOTOLOGY_API_KEY=<PHOTOTOLOGY_API_KEY> -e PHOTOTOLOGY_BASE_URL=<PHOTOTOLOGY_BASE_URL> -e PHOTOTOLOGY_MCP_NO_TELEMETRY=<PHOTOTOLOGY_MCP_NO_TELEMETRY> -e DO_NOT_TRACK=<DO_NOT_TRACK> -e PHOTOTOLOGY_MCP_ALLOWED_DIRS=<PHOTOTOLOGY_MCP_ALLOWED_DIRS> mcp npx -y @phototology/mcpReplace <…> with your own values
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about mcp
How do I install mcp in Claude Code?
Run claude mcp add mcp -e PHOTOTOLOGY_API_KEY=<PHOTOTOLOGY_API_KEY> -- npx -y @phototology/mcp, replacing the key with your own.
What does mcp do?
It connects an agent to the Phototology registry, where a photo is analyzed once and later reads come from cache for free. Output is structured fields per lens.
Does it need an API key and a network connection?
Both. There is no local model, so each analyze call goes to the hosted Phototology API and the server will not start without PHOTOTOLOGY_API_KEY.
Similar MCP servers
All MCP servers for Agent setup: memory, context, orchestration →mcp by other authors comes first.