Skip to content

Art Spotter - Eye of the Beholder

by GoodTurnStudio · remote · no sign-in to list tools · v1.0.0 · published by GitHub user GoodTurnStudio

Original art and prints from independent artists, fair prices, and help for artists to sell.

Changes · 8

12 tools: 8 change things and 4 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http artspotter https://goodturn-mcp.pages.dev/artspotter/mcp

Findings

Matches of fixed checks, with the text they matched.

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

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "list_open_calls" says "list": 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.

12 tools

Changes things 8Claude Code: ask
  • calculate_resale_royaltyUK Artist's Resale Right on a resale.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
    UK Artist's Resale Right on a resale. The royalty owed to an artist on a UK resale through a gallery, dealer or auction house, by band, with the cap and who collects it.

    Annotations the server declares

    • title: UK Artist's Resale Right on a resale
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • check_art_listingCheck an art listing before buying.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
    Check an art listing before buying. Whether a link is an independent artist in the index or a marketplace with buyer protection, reverse image search links for the picture, and the checks that catch stolen images, AI work sold as hand-made and payment scams.

    Annotations the server declares

    • title: Check an art listing before buying
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • check_artworks_feedCheck an artist's artworks.json.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
    Check an artist's artworks.json. Reads an artist's artworks.json (the open format at artspotter.pages.dev/artworks that lets assistants find work sold direct) and lists anything to fix.

    Annotations the server declares

    • title: Check an artist's artworks.json
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_open_callsOpen calls, prizes and residencies for artists.1 finding

    Why it is in this group

    • The name "list_open_calls" says "list": a word for reading.
    • The description's first verb is "open": 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 "list_open_calls" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "list_open_calls" says "list": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Open calls, prizes and residencies for artists. Recurring open exhibitions, prizes, residencies and listing sites in the UK, US and Canada, with entry fees, usual closing month, media and official links.

    Annotations the server declares

    • title: Open calls, prizes and residencies for artists
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • make_artwork_passportA free artwork passport for an artist's work.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
    A free artwork passport for an artist's work. Makes a certificate for a work (title, artist, year, medium, size, edition) with a fingerprint of its picture, as printable text and schema.org data the artist can publish, so anyone can later check the picture is unchanged.

    Annotations the server declares

    • title: A free artwork passport for an artist's work
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • price_commissionPrice and terms for commissioning a piece.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 and terms for commissioning a piece. A price guide for a commissioned piece by size and the artist's level, what similar finished originals sell for, the usual deposit, revision rounds, cancellation fees, copyright and a contract checklist for buyer and artist.

    Annotations the server declares

    • title: Price and terms for commissioning a piece
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • size_art_for_wallWhat size art fits a wall and how high to hang it.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
    What size art fits a wall and how high to hang it. Art width for the furniture or wall, the hanging height, the gap above furniture and gallery wall spacing, with a ready search for works in that size range.

    Annotations the server declares

    • title: What size art fits a wall and how high to hang it
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • verify_artwork_passportCheck a picture matches an artwork passport.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
    Check a picture matches an artwork passport. Recomputes the picture's fingerprint and says whether it matches the one in the passport.

    Annotations the server declares

    • title: Check a picture matches an artwork passport
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Only reads 4Claude Code: allow
  • compare_where_to_sellWhat an artist keeps on each selling platform.No findings

    Why it is in this group

    • The name "compare_where_to_sell" says "compare": a word for reading.
    Description, as the server wrote it
    What an artist keeps on each selling platform. For a sale price, what the artist keeps after fees on Etsy, eBay, Saatchi Art, Artfinder, Singulart, their own Shopify shop and direct card payments, sorted by money kept, with print-on-demand options for prints. US and UK fee tables.

    Annotations the server declares

    • title: What an artist keeps on each selling platform
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_artist_fundingGrants, buyer finance, royalties and copyright for artists.No findings

    Why it is in this group

    • The name "get_artist_funding" says "get": a word for reading.
    Description, as the server wrote it
    Grants, buyer finance, royalties and copyright for artists. For the UK: arts council grants, Own Art 0% buyer finance and the Artist's Resale Right. For the US: grants and the $85 group copyright registration for 2 to 20 artworks.

    Annotations the server declares

    • title: Grants, buyer finance, royalties and copyright for artists
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_fair_art_priceFair price for a new artwork by size and medium.No findings

    Why it is in this group

    • The name "get_fair_art_price" says "get": a word for reading.
    Description, as the server wrote it
    Fair price for a new artwork by size and medium. What original work or prints of about this size and kind sell for in independent artists' own shops: the typical price, the middle half of prices and the price per square inch, from comparable works for sale.

    Annotations the server declares

    • title: Fair price for a new artwork by size and medium
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • search_artFind art for sale from independent artists.No findings

    Why it is in this group

    • The name "search_art" says "search": a word for reading.
    Description, as the server wrote it
    Find art for sale from independent artists. Searches works in independent artists' own shops and eBay art by words (subject, style, place, artist), kind, original or print, price, size and colour. Results show title, artist, size, price, where it ships from, an image and a link to buy straight from the artist.

    Annotations the server declares

    • title: Find art for sale from independent artists
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true

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.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http artspotter https://goodturn-mcp.pages.dev/artspotter/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__artspotter__search_art",
      "mcp__artspotter__get_fair_art_price",
      "mcp__artspotter__compare_where_to_sell",
      "mcp__artspotter__get_artist_funding"
    ],
    "ask": [
      "mcp__artspotter__price_commission",
      "mcp__artspotter__size_art_for_wall",
      "mcp__artspotter__list_open_calls",
      "mcp__artspotter__calculate_resale_royalty",
      "mcp__artspotter__check_art_listing",
      "mcp__artspotter__make_artwork_passport",
      "mcp__artspotter__verify_artwork_passport",
      "mcp__artspotter__check_artworks_feed"
    ],
    "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 artspotter. Review it before you use it.