Skip to content

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.

Changes · 4

8 tools: 4 change things and 4 only read.

Scanned Oct 21, 2026

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/mcp

Findings

Matches of fixed checks, with the text they matched.

2 warn
  • The server marks "get_policies" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "get_policies" says "get": a word for reading.

    What this check looks for
  • The server marks "get_order_status" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "get_order_status" says "get": a word for reading.

    What this check looks for

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".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "get_order_status" says "get": a word for reading.

      What this check looks for
    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".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "get_policies" says "get": a word for reading.

      What this check looks for
    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/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.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.