FrameAnyPhoto
by frameanyphoto.com · remote · no sign-in to list tools · v1.1.0 · published by com.frameanyphoto
Framed prints of public-domain art and NASA photos: search works, price prints, get checkout links.
8 tools: 4 change things and 4 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things4Claude Code: ask: see these tools
- Only reads4Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http prints https://frameanyphoto.com/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnget_policies
The server marks "get_policies" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "get_policies" says "get": a word for reading.
- Warnget_order_status
The server marks "get_order_status" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "get_order_status" says "get": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
8 tools
Changes things 4Claude Code: ask
create_checkoutCreate a Stripe Checkout link for this order and return checkout_url, order_ref, and a summary of the store policies.No findings
Why it is in this group
- The name "create_checkout" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create checkout link
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
get_order_statusCheckout, payment, and shipping status for an order_ref from create_checkout.1 finding
Why it is in this group
- The name "get_order_status" says "get": a word for reading.
- The description's first verb is "checkout": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "get_order_status" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "get_order_status" says "get": a word for reading.
Description, as the server wrote it Checkout, payment, and shipping status for an order_ref from create_checkout. Returns no personal data.
Annotations the server declares
- title: Order status
- readOnlyHint: true
- openWorldHint: true
get_policiesStore 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.1 finding
Why it is in this group
- The name "get_policies" says "get": a word for reading.
- The description's first verb is "store": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "get_policies" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "get_policies" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Store policies
- readOnlyHint: true
- openWorldHint: false
quote_orderPrice a framed print: unit price, subtotal, shipping, and total before tax, with a summary of the store policies.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- title: Quote order
- readOnlyHint: true
- openWorldHint: false
Only reads 4Claude Code: allow
get_print_optionsSizes, frames, and prices the site offers for one work.No findings
Why it is in this group
- The name "get_print_options" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Print options
- readOnlyHint: true
- openWorldHint: false
get_workReturn one work by id, title, accession number, or NASA ID.No findings
Why it is in this group
- The name "get_work" says "get": a word for reading.
Description, as the server wrote it Return one work by id, title, accession number, or NASA ID.
Annotations the server declares
- title: Get work
- readOnlyHint: true
- openWorldHint: false
list_seriesList collection rows and how many works each contains.No findings
Why it is in this group
- The name "list_series" says "list": a word for reading.
Description, as the server wrote it List collection rows and how many works each contains.
Annotations the server declares
- title: List series
- readOnlyHint: true
- openWorldHint: false
search_worksSearch works by title, artist, series, NASA ID, or keywords.No findings
Why it is in this group
- The name "search_works" says "search": a word for reading.
Description, as the server wrote it Search works by title, artist, series, NASA ID, or keywords. Returns compact records sorted by PPI.
Annotations the server declares
- title: Search works
- readOnlyHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.1.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http prints https://frameanyphoto.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__prints__search_works",
"mcp__prints__get_work",
"mcp__prints__list_series",
"mcp__prints__get_print_options"
],
"ask": [
"mcp__prints__get_policies",
"mcp__prints__quote_order",
"mcp__prints__create_checkout",
"mcp__prints__get_order_status"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as prints. Review it before you use it.