cfpramod/open-museum-mcp

cfpramod/open-museum-mcp

от cfpramod
Сервер для единого поиска по пяти музейным коллекциям (Мет, Кливленд, Чикаго, Wikimedia Commons, Europeana) с верификацией прав на открытый доступ. Возвращает нормализованные метаданные, готовые ци...

open-museum-mcp

CI npm open-museum-mcp MCP server contributions welcome

One search across open-access museum collections worldwide, with strict per-museum rights verification and ready-to-use citations.

The Met, Rijksmuseum, the Smithsonian, Cleveland Museum of Art, the Art Institute of Chicago, SMK (National Gallery of Denmark), the Walters, Wellcome Collection, Wikimedia Commons, and Europeana — searched together, returned in one normalized shape, with the rights gate enforced per museum so you never receive a record whose open-access status is missing or ambiguous. The list keeps growing.

See it in action first → pramod.ch/open-museum-mcp — three worked examples (cross-tradition pairing, date-windowed scan, counterpoint discovery), real records, real citations, no install required.

Watch the 60-second walkthrough on YouTube — install, ask in plain English, citations form on screen

Who this is for

  • Art-history students and researchers who need cited references and rights-cleared images for papers, slides, and theses — across institutions, in one query.
  • Writers, educators, and journalists who want reuse-safe artwork to pair with essays, lessons, or articles, with pre-formatted attributions.
  • MCP / agent builders who want a small set of high-value tools (search_artworks, get_artwork, cite) with consistent schemas across sources, instead of installing one MCP per museum.
cite

Сформировать ссылку на произведение искусства. Стили: "full" (художник, название, дата, музей, лицензия, URL), "caption" (форма подписи к изображению), "short" (встроенная ссылка).

Сформировать ссылку на произведение искусства. Стили: "full" (художник, название, дата, музей, лицензия, URL), "caption" (форма подписи к изображению), "short" (встроенная ссылка).

Параметры

  • idstringобязательный

    Normalized artwork ID.

  • styleenum
    shortfullcaption
clearance_record

Выдаёт портативный, отказоустойчивый Clearance Manifest (проверка прав + происхождение + цитирование) для идентификатора произведения, упакованный в побайтово точный конверт целостности Tier-0: манифест передаётся как точная UTF-8 JSON строка в `payload`, с SHA-256 по этим точным байтам в `integrity.hash`. Потребители хешируют строку payload дословно, затем парсят её через JSON.parse для чтения. Непроверенная работа - отклонённая шлюзом прав, неизвестным музеем или неверным id - возвращает окончательный манифест DENY, а не ошибку: отказ - это корректный ответ. Соответствует спецификации Clearance Manifest в репозитории по пути spec/clearance/v0.1 (openclearance.org/v0.1).

Выдаёт портативный, отказоустойчивый Clearance Manifest (проверка прав + происхождение + цитирование) для идентификатора произведения, упакованный в побайтово точный конверт целостности Tier-0: манифест передаётся как точная UTF-8 JSON строка в `payload`, с SHA-256 по этим точным байтам в `integrity.hash`. Потребители хешируют строку payload дословно, затем парсят её через JSON.parse для чтения. Непроверенная работа - отклонённая шлюзом прав, неизвестным музеем или неверным id - возвращает окончательный манифест DENY, а не ошибку: отказ - это корректный ответ. Соответствует спецификации Clearance Manifest в репозитории по пути spec/clearance/v0.1 (openclearance.org/v0.1).

Параметры

  • idstringобязательный

    Normalized artwork ID, format museumcode:id (e.g. met:436535).

discover_random

Выбирает одно случайное произведение из локального кэша, подходящее под заданные ограничения. Пригодится, чтобы вырваться из однотипного поиска (например, показать случайную работу периода Эдо, чтобы не нарушать правило «нельзя подряд два европейских произведения до 1900 года»). Если кэш холодный и указаны ограничения `region` или `period`, инструмент сам наполняет кэш: делает маленький поиск через `search_artworks` на основе этих ограничений, а потом выбирает случайный образец — то есть работает с первого раза, без ручного разогрева кэша. Если ограничений нет, возвращает подсказку сначала запустить `search_artworks`.

Выбирает одно случайное произведение из локального кэша, подходящее под заданные ограничения. Пригодится, чтобы вырваться из однотипного поиска (например, показать случайную работу периода Эдо, чтобы не нарушать правило «нельзя подряд два европейских произведения до 1900 года»). Если кэш холодный и указаны ограничения `region` или `period`, инструмент сам наполняет кэш: делает маленький поиск через `search_artworks` на основе этих ограничений, а потом выбирает случайный образец — то есть работает с первого раза, без ручного разогрева кэша. Если ограничений нет, возвращает подсказку сначала запустить `search_artworks`.

Параметры

  • regionstring

    Normalized region tag (e.g. "china", "japan", "netherlands"). Exact match.

  • periodstring

    Normalized period tag (e.g. "tang dynasty", "edo", "safavid"). Exact match.

  • not_artiststring[]

    Artist names to exclude (exact match against the canonical artist name field).

  • museumstring

    Optional museum code to restrict to (e.g. met, rijksmuseum, smk, wellcome, walters).

facets

Возвращает доступные значения фасетов и их количество для запроса: категории медиума, вековые временные интервалы, ведущие художники и цветовые семейства. Количество вычисляется в ОГРАНИЧЕННОМ окне кандидатов — до ~150 записей с подтверждёнными правами на музей (НЕ по всему корпусу), поэтому отражается только начало результирующего набора, а не исчерпывающие итоги. Возвращаются только те значения, которые действительно присутствуют в этом окне (пустых корзин нет). Используйте полученные значения medium/colorFamily с search_artworks({ ..., medium, color_family }) для фильтрации.

Возвращает доступные значения фасетов и их количество для запроса: категории медиума, вековые временные интервалы, ведущие художники и цветовые семейства. Количество вычисляется в ОГРАНИЧЕННОМ окне кандидатов — до ~150 записей с подтверждёнными правами на музей (НЕ по всему корпусу), поэтому отражается только начало результирующего набора, а не исчерпывающие итоги. Возвращаются только те значения, которые действительно присутствуют в этом окне (пустых корзин нет). Используйте полученные значения medium/colorFamily с search_artworks({ ..., medium, color_family }) для фильтрации.

Параметры

  • querystringобязательный

    Free-text query.

  • museumstring

    Optional museum code to restrict to.

  • has_imageboolean

    Restrict to records with an image URL.

  • year_mininteger

    Optional inclusive lower bound on creation year (negative = BCE).

  • year_maxinteger

    Optional inclusive upper bound on creation year (negative = BCE).

get_artwork

Получить одно произведение искусства по его нормализованному ID (например, met:436533).

Получить одно произведение искусства по его нормализованному ID (например, met:436533).

Параметры

  • idstringобязательный

    Normalized artwork ID, format museumcode:numericid

list_traditions

Перечисляет регионы и периоды, присутствующие в неистекших кэшированных записях, с количеством записей по каждому музею. Помогает увидеть, какие традиции хорошо представлены перед поиском, а где коллекций мало. Возвращает { regions, periods }, где каждая запись содержит { tag, label, coverage: { museumCode: count } }. При пустом кэше возвращает подсказку сначала запустить search_artworks — list_traditions это мета-инструмент, работающий с уже собранными данными, а не триггер поиска.

Перечисляет регионы и периоды, присутствующие в неистекших кэшированных записях, с количеством записей по каждому музею. Помогает увидеть, какие традиции хорошо представлены перед поиском, а где коллекций мало. Возвращает { regions, periods }, где каждая запись содержит { tag, label, coverage: { museumCode: count } }. При пустом кэше возвращает подсказку сначала запустить search_artworks — list_traditions это мета-инструмент, работающий с уже собранными данными, а не триггер поиска.

Параметры

Без параметров.

search_artworks

Ищет по зарегистрированным открытым музейным коллекциям. Возвращает записи произведений, прошедшие проверку прав с учётом особенностей источника (неоднозначные записи по умолчанию исключаются). Поддерживает необязательный фильтр по диапазону дат: для исследовательских запросов вроде «голландская жанровая живопись 1640–1680».

Ищет по зарегистрированным открытым музейным коллекциям. Возвращает записи произведений, прошедшие проверку прав с учётом особенностей источника (неоднозначные записи по умолчанию исключаются). Поддерживает необязательный фильтр по диапазону дат: для исследовательских запросов вроде «голландская жанровая живопись 1640–1680».

Параметры

  • querystringобязательный

    Free-text query.

  • museumstring

    Optional museum code. Always available: met, cleveland, aic, rijksmuseum, walters, smk, wellcome, wikimedia (Commons). Key-gated: europeana (EUROPEANA_API_KEY), smithsonian (SMITHSONIAN_API_KEY). Omit to search every registered source.

  • has_imageboolean

    Restrict to records with an image URL. Defaults to true. Note: some museums (e.g. The Met) only expose images-only search server-side.

  • limitinteger
  • year_mininteger

    Optional inclusive lower bound on artwork creation year. Negative for BCE (e.g. -500 = 500 BCE). Records with no parseable date are excluded when any year bound is set.

  • year_maxinteger

    Optional inclusive upper bound on artwork creation year. Negative for BCE. Records with no parseable date are excluded when any year bound is set.

  • mediumenum

    Optional medium-category filter. One of the controlled values (painting, drawing, print, photograph, sculpture, textile, ceramic, metalwork, furniture, manuscript, other). Like the year filter, it is applied after rights verification over a bounded candidate window — so a medium that is rare for the query may return fewer than `limit` results. Use the facets tool to see which values are present for a query.

    paintingdrawingprintphotographsculpturetextileceramicmetalworkfurnituremanuscriptother
  • colorstring

    Optional hex colour (#rrggbb). Re-ranks results by perceptual (CIEDE2000) nearness to this colour, nearest first. Colour is precomputed Node-side from the thumbnail; records without colour (not yet enriched) are excluded from a colour-ranked search.

  • color_familyenum

    Optional coarse colour-family filter (red, orange, yellow, green, blue, purple, pink, brown, neutral, black, white). Post-fetch over the bounded window, so a rare family may return fewer than `limit`. Use the facets tool to see which families are present.

    redorangeyellowgreenbluepurplepinkbrownneutralblackwhite

Другие проверенные MCP-сервера

cjo4m06/mcp-shrimp-task-manager

cjo4m06/mcp-shrimp-task-manager

Shrimp Task Manager — это MCP-сервер для умного управления задачами в AI-разработке. Он разбивает сложные проекты на атомарные подзадачи, отслеживает зависимости и сохраняет контекст между сессиями. Отлично подходит разработчикам, работающим с ИИ-агентами.

JavaScript2135
optuna/optuna-mcp

optuna/optuna-mcp

официальный

MCP сервер для автоматизации оптимизации и анализа с помощью Optuna. Он позволяет LLM подбирать гиперпараметры, визуализировать результаты через чат или запускать дашборд. Упрощает работу ML-инжене...

Python81
zilliztech/mcp-server-milvus

zilliztech/mcp-server-milvus

официальный

MCP-сервер для векторной базы Milvus. Предоставляет LLM-приложениям векторный и гибридный поиск, управление коллекциями, операции с данными. Полезен разработчикам, интегрирующим AI с Claude Desktop...

Python237
scrapeless-ai/scrapeless-mcp-server

scrapeless-ai/scrapeless-mcp-server

официальный

Scrapeless MCP Server подключает LLM и AI-агентов к вебу: поиск Google, тренды, браузерная автоматизация, скрапинг (HTML, Markdown, скриншоты). Применяется для AI-ассистентов, копилотов и веб-агентов.

TypeScript166
apecloud/ApeRAG

apecloud/ApeRAG

ApeRAG — production-ready RAG-платформа с Graph RAG, векторным и полнотекстовым поиском, а также AI-агентами. Подходит для построения баз знаний и контекстной инженерии. Включает гибридный поиск, м...

Python1280
zcaceres/markdownify-mcp

zcaceres/markdownify-mcp

MCP-сервер Markdownify конвертирует файлы (PDF, изображения, аудио, Office) и веб-контент (YouTube, Bing, страницы) в Markdown. Полезен разработчикам для интеграции разнородных данных в MCP-среду.

TypeScript2884
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин