FrameAnyPhoto
Framed prints of public-domain art and NASA photos: search works, price prints, get checkout links.
Should I use this
Quality & Safety
Findings (1)
- LOWin get_work
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"prints": {
"url": "https://frameanyphoto.com/mcp"
}
}
}Remote endpoints
https://frameanyphoto.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (8)
🟢search_works(query, limit)
Search works by title, artist, series, NASA ID, or keywords. Returns compact records sorted by PPI.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search text, for example Bierstadt or Earthrise"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25,
"default": 12
}
},
"required": [
"query"
]
}🟢get_work(query)
Return one work by id, title, accession number, or NASA ID.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Exact id, title, accession, or NASA ID"
}
},
"required": [
"query"
]
}🟢list_series
List collection rows and how many works each contains.
Input Schema
{
"type": "object",
"properties": {}
}🟢get_policies
Store policies as JSON: shipping (free, US only, 14–21 days), returns (30-day money back by mail; buyer pays return shipping), payment (Stripe Checkout), sales tax, and contact.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢get_print_options(work)
Sizes, frames, and prices the site offers for one work. Sizes respect the scan's resolution (100 PPI minimum). Prices include the frame and shipping; tax is added at checkout.
Input Schema
{
"type": "object",
"properties": {
"work": {
"type": "string",
"maxLength": 200,
"description": "Prefer ascii_id (the slug) from search_works or get_work; the id with or without its en dash, a /w/ URL, exact title, accession, or NASA ID also work"
}
},
"required": [
"work"
],
"additionalProperties": false
}🟢quote_order(work, size, frame, quantity, ship_to)
Price a framed print: unit price, subtotal, shipping, and total before tax, with a summary of the store policies. Ships to the US only; tax is calculated by Stripe at checkout.
Input Schema
{
"type": "object",
"properties": {
"work": {
"type": "string",
"maxLength": 200,
"description": "Prefer ascii_id (the slug) from search_works or get_work; the id with or without its en dash, a /w/ URL, exact title, accession, or NASA ID also work"
},
"size": {
"type": "string",
"maxLength": 40,
"description": "size_id from get_print_options, or Small, Medium, Large. Default: the site default (Large when the scan allows)"
},
"frame": {
"type": "string",
"maxLength": 120,
"description": "frame_id from get_print_options. Default: the work's default frame"
},
"quantity": {
"type": "integer",
"minimum": 1,
"maximum": 6,
"default": 1
},
"ship_to": {
"type": "object",
"description": "Optional. Checks that we ship there.",
"properties": {
"country": {
"type": "string",
"description": "ISO country code. Only US is accepted."
},
"state": {
"type": "string",
"description": "2-letter state code"
},
"zip": {
"type": "string",
"description": "US ZIP code"
}
},
"additionalProperties": false
}
},
"required": [
"work"
],
"additionalProperties": false
}🟡create_checkout(work, size, frame, quantity, email)
Create a Stripe Checkout link for this order and return checkout_url, order_ref, and a summary of the store policies. Give the link to the buyer; they enter the address and pay on Stripe. This never charges a card. Rate-limited.
Input Schema
{
"type": "object",
"properties": {
"work": {
"type": "string",
"maxLength": 200,
"description": "Prefer ascii_id (the slug) from search_works or get_work; the id with or without its en dash, a /w/ URL, exact title, accession, or NASA ID also work"
},
"size": {
"type": "string",
"maxLength": 40,
"description": "size_id from get_print_options, or Small, Medium, Large. Default: the site default (Large when the scan allows)"
},
"frame": {
"type": "string",
"maxLength": 120,
"description": "frame_id from get_print_options. Default: the work's default frame"
},
"quantity": {
"type": "integer",
"minimum": 1,
"maximum": 6,
"default": 1
},
"email": {
"type": "string",
"maxLength": 254,
"description": "Optional buyer email to prefill"
}
},
"required": [
"work"
],
"additionalProperties": false
}🟢get_order_status(order_ref)
Checkout, payment, and shipping status for an order_ref from create_checkout. Returns no personal data.
Input Schema
{
"type": "object",
"properties": {
"order_ref": {
"type": "string",
"maxLength": 255,
"description": "order_ref from create_checkout"
}
},
"required": [
"order_ref"
],
"additionalProperties": false
}Community
Evidence