Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

BuyPopArt Art Search & Quotation

REMOTE · DIRECT.BUYPOPART.COM

Find bold pop and street art and price prints and paintings.

69 Trust /100

Last scanned (22 hours ago)

Scores higher than 54% of remote servers

Reachable. Last reached 4 Nov 2026.

Category Design and Media

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security80
Transport & Reachability100
Schema Quality & AI Usability61
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 4958 tokens (~354/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability check failed: schema churn in the 1 day we've observed: 1 tool removals, 0 breaking changes, 0 auth/transport breaks, 0 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 14 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
  • Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 0
    • Stability: unverified → fail ▼ security
    • A breaking change shipped without a version bump: still 1.0.0 ▼ security
    • Tool “search_article_sections” was removed ▼ security
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “search_fts” rewrote its description, which is the text the model reads security
    • Tool “search_objects_semantically” rewrote its description, which is the text the model reads security
    • Tool “search_sections_semantically” rewrote its description, which is the text the model reads security
    • Tool “search_fts” changed its title: Search everything → Find artworks, artists, museums and articles by name or keywords cosmetic
  • 3 Nov 26 69

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Probed https://direct.buypopart.com/mcp/

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=direct.wahooart.com CN=YE2,O=Let's Encrypt,C=US 11 Sept 2026 10 Dec 2026 ECDSA 256 ECDSA-SHA384 6e5b7ef228dd139d2de77b09573f9f6f6fb
SANs: direct.allpaintingsstore.com, direct.artsdot.com, direct.buypopart.com, direct.most-famous-paintings.com, direct.originaluniqueart.com, direct.topimpressionists.com, direct.wahooart.com, direct.wikioo.org
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of direct.buypopart.com. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
buypopart.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=31536000; includeSubDomains; preload
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://direct.buypopart.com/mcp/ Verified 200
http (plaintext) http://direct.buypopart.com/mcp/ HTTPS enforced 301 https://direct.buypopart.com/mcp/
MCP tools · 14 exposed · ~4,638 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
get_a_custom_reproduction_quotation ~693

Price quotation for a CUSTOM reproduction — one made from an image the customer supplies (their own photo, or an artwork that is not in the catalog) — as an art print or a hand-painted oil painting. No artwork identification is needed or accepted: the price depends only on the size, the reproduction type and the currency. Use this whenever the artwork cannot be found in the catalog (the search tools return nothing relevant, or get_a_quotation fails with artwork_not_found), or the customer wants their own picture reproduced. Optional frame_code ("WhiteWrap" = stretched on stretcher bars, "default" = a decorative frame chosen for you, or a catalog code) adds the frame price to quotation_price; optional senior_artist (oil painting only) adds the "Elite Senior Artist" upgrade — more detail and finesse, extra production time. Each side must be 25-250 cm (about 10-98 inches). Returns quotation_price (the base price: options chosen on the order form, like varnish or urgent delivery, cost extra — see "notes"), currency, frame_code (+ frame_description, frame_delivery), width_cm/height_cm, notes, and order_page_url — the page where the customer uploads their image and orders the reproduction. Give order_page_url to the user as the link to place this order. For a hand-painted portrait the price covers up to 3 faces; the per-extra-face surcharge is stated in notes.

NameTypeReqDescription
currencystringyesISO currency code, e.g. "USD", "EUR", "GBP".
frame_codestring–Optional frame; when set, quotation_price includes it. Omit it (or "NoFrame") for the canvas rolled in a tube. "WhiteWrap" = the canvas stretched on wooden stretcher bars, white edges, no outer frame…
heightnumber–Height in the given unit.
languagestring–Site language code (2 letters, e.g. "en", "fr"). Default "en".
senior_artistboolean–Oil painting only: have an Elite Senior Artist paint it (more detail, finesse and extra production time). When true, quotation_price includes the upgrade; the customer selects the option on the order…
typestringyesReproduction type: "print" (art print) or "oil painting" (hand-painted).
unitstringyesUnit of width/height.
widthnumber–Width in the given unit.

No output schema declared.

No examples provided.

get_a_quotation ~1,161

Price quotation for a reproduction of an artwork, as an art print or a hand-painted oil painting, at a given size and in a given currency. Leave type out to get BOTH in one call: the result then holds "quotations" (one full quotation per type the artwork sells, each with its own price, buy_url and offer_text) and "types_not_available". Every quotation carries offer_text, one ready-to-paste line (type, size, frame, price, order link): give it to the user as is, translating its words if needed but never changing its numbers or link. Optional frame_code adds the frame price to quotation_price ("WhiteWrap" = stretched on stretcher bars, "default" = a decorative frame chosen for the artwork, or a catalog code); optional senior_artist (oil painting only) adds the "Elite Senior Artist" upgrade — more detail and finesse, extra production time — to quotation_price. Identify the artwork by pk, or by title and/or artist_name (an exact title match wins; otherwise the first good-confidence search match is used, and its relevance is returned in "score"). A fuzzy match can be a different painting than the one asked for: when the result carries a "warning", verify the returned title before using the price, as the warning instructs. width/height need not match the artwork's own proportions: when its aspect ratio is known, the quoted size is snapped to that ratio while keeping the same surface area (width x height) you requested, so the reproduction is never stretched or distorted; the actual quoted size is returned as width_cm/height_cm (vs. your original requested_width_cm/requested_height_cm), with size_ratio_adjusted set to true when this happened. Give only width OR only height (e.g. "25 cm high", "smallest side 25 cm") to keep that side exactly: the other side is then derived from the artwork's aspect ratio and size_derived_from names the side you gave (fails with invalid_size when the ratio is unknown - then give both). Each side must be 25-250 cm (about 10-98 inches): a size…

NameTypeReqDescription
artist_namestring–Artist name (used when pk is not given).
currencystringyesISO currency code, e.g. "USD", "EUR", "GBP".
frame_codestring–Optional frame; when set, quotation_price includes it. Omit it (or "NoFrame") for the canvas rolled in a tube. "WhiteWrap" = the canvas stretched on wooden stretcher bars, white edges, no outer frame…
heightnumber–Height in the given unit. Omit to derive it from width.
languagestring–Site language code (2 letters, e.g. "en", "fr"). Default "en".
pkinteger–Artwork pk (from a search tool).
senior_artistboolean–Oil painting only: have an Elite Senior Artist paint it (more detail, finesse and extra production time). When true, quotation_price includes the upgrade and buy_url pre-selects it.
titlestring–Artwork title (used when pk is not given).
typestring–Reproduction type: "print" (art print) or "oil painting" (hand-painted). Omit to quote both at once.
unitstringyesUnit of width/height.
widthnumber–Width in the given unit. Omit to derive it from height.

No output schema declared.

No examples provided.

get_artwork_availability ~580

Every way to buy ONE artwork right now, on every sales channel it sells: the physical objects first — a ready-made oil painting in stock ("Stock Discount Oil Painting", a real canvas that ships within 48 hours), an auction lot (current bid, minimum next bid, closing time), an original sold by its owner, a studio collectible — each with available_now, stock_quantity, price (fixed, shipping included) in your currency, size, buy_url and offer_text (one ready-to-paste line: give it to the customer as is, numbers and link untouched); then the made-to-order channels (hand-painted oil reproduction, art print: price by size through get_a_quotation) and the digital image licence. available_now is true only when the artwork ITSELF can be bought or bid on today; available_now_summary says it in one sentence. Call it whenever a customer asks whether something is available, in stock, ready to ship, discounted, on auction, or what it costs as a real object — and before any "yes, it is available". Identify the artwork by pk, or by title and/or artist_name (exact title first, then a surname-guarded search whose relevance comes back in "score"; a "warning" means check the returned title). Without pk or title, give channel to LIST the objects of that channel for sale now (cheapest first; optional artist_name, query words from the title, max_price in your currency, limit 1-10): "what do you have in stock under 200 euros?", "which auctions are open?". Prices follow the strict no-fallback currency rule of the quotation tools.

NameTypeReqDescription
artist_namestring–Artist name: with title/pk it identifies the artwork; in the list mode it filters the objects by artist.
channelstring–List mode (no pk, no title): which physical channel to list — PaintingReady (ready-made oil paintings in stock), ProductAuction (auction lots), SellerProduct (originals sold by their owner), FactoryP…
currencystringyesISO currency code, e.g. "USD", "EUR", "GBP".
languagestring–Site language code (2 letters, e.g. "en", "fr"). Default "en".
limitinteger–List mode: how many objects (default 10).
max_pricenumber–List mode: highest price, in the given currency.
pkinteger–Artwork pk (from a search tool or the page).
querystring–List mode: words from the title (e.g. "flowers", "sunset").
titlestring–Artwork title (used when pk is not given).

No output schema declared.

No examples provided.

get_detail_article ~178

Full data of ONE article identified by pk (use a search tool first to find the pk). Always returns: pk, title, meta_description, meta_keywords (first 5), description_html (the full article content as HTML), url (the article page), image_url, and "links" — up to 5 ready-to-give absolute URLs of the most useful related pages (articles_by_category_page, all_articles_page, rss_feed). article_not_found when no such article is published. The result is capped at 25000 characters: when description_html had to be shortened to fit, "truncated" is true.

NameTypeReqDescription
languagestring–Site language code (2 letters, e.g. "en", "fr"). Default "en".
pkintegeryesThe object pk, as returned by a search tool.

No output schema declared.

No examples provided.

get_detail_artist ~189

Full data of ONE artist identified by pk (use a search tool first to find the pk). Always returns: pk, title, meta_description, meta_keywords (first 5), description_html (the artist biography as HTML), url (the artist page), image_url, and "links" — up to 5 ready-to-give absolute URLs of the most useful related pages (artwork_timeline_page, all_artworks_page, chronicle_page, subject_atlas_page, mood_room_page). artist_not_found when no such artist is published. The result is capped at 25000 characters: when description_html had to be shortened to fit, "truncated" is true.

NameTypeReqDescription
languagestring–Site language code (2 letters, e.g. "en", "fr"). Default "en".
pkintegeryesThe object pk, as returned by a search tool.

No output schema declared.

No examples provided.

get_detail_artwork ~237

Full data of ONE artwork identified by pk (use a search tool first to find the pk). Always returns: pk, title, meta_description, meta_keywords (first 5), description_html (the artwork description as HTML), url (the artwork page), image_url, and "links" — up to 5 ready-to-give absolute URLs of the most useful related pages (download_page, buy_print_page, buy_oil_painting_page (only for channels on sale), student_guide_page, similar_artworks_page, preview_in_room_page). Also for every caller: "museum" - where the original is kept (pk, name, url of its page on this site, city, country), null when unknown. artwork_not_found when no such artwork is published. The result is capped at 25000 characters: when description_html had to be shortened to fit, "truncated" is true.

NameTypeReqDescription
languagestring–Site language code (2 letters, e.g. "en", "fr"). Default "en".
pkintegeryesThe object pk, as returned by a search tool.

No output schema declared.

No examples provided.

get_detail_museum ~187

Full data of ONE museum identified by pk (use a search tool first to find the pk). Always returns: pk, title, meta_description, meta_keywords (first 5), description_html (the museum description as HTML), url (the museum page), image_url, and "links" — up to 5 ready-to-give absolute URLs of the most useful related pages (city_museums_page, museums_by_country_page, official_website, all_museums_page). museum_not_found when no such museum is published. The result is capped at 25000 characters: when description_html had to be shortened to fit, "truncated" is true.

NameTypeReqDescription
languagestring–Site language code (2 letters, e.g. "en", "fr"). Default "en".
pkintegeryesThe object pk, as returned by a search tool.

No output schema declared.

No examples provided.

search_articles ~125

Full-text search of website articles, optionally filtered by category code. Returns pk, title, url, image_url (absolute URL of the large article image, null when there is none), category_code, meta_description and relevance score.

NameTypeReqDescription
category_codestring–Optional article category filter.
languagestring–Site language code (2 letters, e.g. "en", "fr"). Default "en".
limitinteger–Maximum number of results (1-10, default 10).
querystringyesWords to search in the article texts.

No output schema declared.

No examples provided.

search_artists ~194

Full-text search of artists by name and biography, optionally narrowed by birth city/country and by a year the artist was alive (born <= year <= died, or born + 80 years when the death year is unknown). Returns pk, artist_name, url, image_url (absolute URL of the large artist portrait, null when there is none), city, country, date_born, date_death and score.

NameTypeReqDescription
alive_in_yearinteger–Optional year the artist was alive, e.g. 1503.
citystring–Optional birth city.
countrystring–Optional birth country.
languagestring–Site language code (2 letters, e.g. "en", "fr"). Default "en".
limitinteger–Maximum number of results (1-10, default 10).
querystringyesArtist name or words from the biography.

No output schema declared.

No examples provided.

search_artworks ~125

Full-text search of the artwork catalog by title, artist name and description. Returns only good-confidence matches with pk, artist_name, title, url, image_url (absolute URL of the large artwork image, null when the artwork has no image) and relevance score.

NameTypeReqDescription
languagestring–Site language code (2 letters, e.g. "en", "fr"). Default "en".
limitinteger–Maximum number of results (1-10, default 10).
querystringyesWords from the artwork title, artist name and/or description.

No output schema declared.

No examples provided.

search_fts ~151

Full-text search across artworks, artists, museums and articles at once (maximum 10 results per model, merged by relevance). Use it when you know a name or keywords and want the objects; to answer a question from what our texts say, use search_sections_semantically. Each result carries pk, model, title, artist_name, city, country, date_born, date_death, url, image_url (absolute URL of the large image, null when there is none), meta_description and score.

NameTypeReqDescription
languagestring–Site language code (2 letters, e.g. "en", "fr"). Default "en".
querystringyesWords to search across all four catalogs.

No output schema declared.

No examples provided.

search_museums ~145

Full-text search of museums by name, optionally narrowed by city and country. Returns only good-confidence matches with pk, name, url, image_url (absolute URL of the large museum image, null when there is none), city, country and relevance score.

NameTypeReqDescription
citystring–Optional city to narrow the search.
countrystring–Optional country to narrow the search.
languagestring–Site language code (2 letters, e.g. "en", "fr"). Default "en".
limitinteger–Maximum number of results (1-10, default 10).
querystringyesMuseum name or words from it.

No output schema declared.

No examples provided.

search_objects_semantically ~318

Semantic search returning OBJECTS, not passages: the artworks, artists, museums or articles whose texts are closest in meaning to a text (a question, a paragraph, a section of an article). Each result: model, object_pk (use it with the matching get_detail_* tool), object_title, object_url, best_score (cosine of the object's single best passage; higher is closer), score_sum (its matching passages added up) and matched_vectors_count. rank_by "score_sum" (default) favours objects matching in many passages; "best_score" favours the one passage closest to the text - use it to find the exact work a text is about. Any language works (the texts are in English). Use it when you have a text and want the objects it is about; with a name or keywords, use search_fts; for the passages that answer a question, use search_sections_semantically. Error index_unavailable: fall back to the search_* full-text tools.

NameTypeReqDescription
languagestring–Site language code (2 letters, e.g. "en", "fr"). Default "en".
limitinteger–Maximum number of objects (1-20, default 10).
modelsarray–Which objects to search (default: artwork, artist, museum).
querystringyesThe text to find objects for (up to 2000 characters).
rank_bystring–Ranking: sum of the matching passages (default) or the single best one.

No output schema declared.

No examples provided.

search_sections_semantically ~355

Semantic search of the texts of our site: returns the sections that answer the question best, by meaning rather than shared words, each WHOLE (section_text is never cut), from the requested models - "article" (our articles: how reproductions are made, policies, art history), "museum", "artist", "artwork" (their descriptions / biographies); default all models indexed on this server. Each result: model, object_pk (use it with the matching get_detail_* tool), object_title, object_url, category_code (articles), section_heading, section_text, is_faq_question, score (cosine; higher is closer). Ask in a full sentence; any language works (the texts are in English). Sections are packed best first into about 9,000 characters: sections_omitted_for_size says how many more matched. Use it to answer a question from what our texts say; to find a work, artist or museum by name or keywords, use search_fts; to find the objects a text is about, use search_objects_semantically. Error index_unavailable: fall back to the search_* full-text tools.

NameTypeReqDescription
category_codestring–Optional article category filter (Support / Website for service and policy questions); applies to articles only.
languagestring–Site language code (2 letters, e.g. "en", "fr"). Default "en".
limitinteger–Maximum number of sections (1-10, default 5).
modelsarray–Which texts to search (default: every model indexed on this server).
querystringyesThe question or text to find passages for (up to 2000 characters).

No output schema declared.

No examples provided.

Install

How do I install the BuyPopArt Art Search & Quotation MCP server?

BuyPopArt Art Search & Quotation is a hosted endpoint at https://direct.buypopart.com/mcp/, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · direct.buypopart.com

# add to Claude Code
claude mcp add --transport http com-buypopart-art-search 'https://direct.buypopart.com/mcp/'
Common questions

What is the BuyPopArt Art Search & Quotation MCP server?

BuyPopArt Art Search & Quotation is an MCP server listed in the public MCP registry as com.buypopart/art-search. Find bold pop and street art and price prints and paintings. This page covers its hosted endpoint (https://direct.buypopart.com/mcp/).

Is the BuyPopArt Art Search & Quotation MCP server safe to use?

BuyPopArt Art Search & Quotation scores 69 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the BuyPopArt Art Search & Quotation MCP server expose?

BuyPopArt Art Search & Quotation exposes 14 tools: search_artworks, search_museums, search_artists, search_articles, search_sections_semantically, and 9 more. Their descriptions and schemas cost roughly 4,638 tokens of context every time the server is loaded.

Does the BuyPopArt Art Search & Quotation MCP server require authentication?

No. We connected to BuyPopArt Art Search & Quotation without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the BuyPopArt Art Search & Quotation MCP server still maintained?

BuyPopArt Art Search & Quotation is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.