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" (встроенная ссылка).

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

    Нормализованный ID арт-объекта.

  • styleenum
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).

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

    Нормализованный ID произведения искусства, формат museumcode:id (например, met:436535).

discover_random

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

Параметры
  • museumstring

    Необязательный код музея для ограничения (например, met, rijksmuseum, smk, wellcome, walters).

  • not_artiststring[]

    Имена исполнителей для исключения (точное совпадение с каноническим полем имени исполнителя).

  • periodstring

    Нормализованный тег периода (например, «tang dynasty», «edo», «safavid»). Точное совпадение.

  • regionstring

    Нормализованный тег региона (например, "china", "japan", "netherlands"). Точное совпадение.

facets

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

Параметры
  • has_imageboolean

    Ограничь записи, у которых есть URL изображения.

  • museumstring

    Необязательный код музея для ограничения.

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

    Свободный текстовый запрос.

  • year_maxinteger

    Необязательная включающая верхняя граница года создания (отрицательные значения = BCE).

  • year_mininteger

    Необязательная включающая нижняя граница года создания (отрицательное значение = до н. э.).

get_artwork

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

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

    Нормализованный идентификатор произведения искусства, формат museumcode:numericid

list_traditions

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

Параметры

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

search_artworks

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

Параметры
  • colorstring

    Необязательный шестнадцатеричный цвет (#rrggbb). Заново ранжирует результаты по перцептивной близости (CIEDE2000) к этому цвету, ближайшие первыми. Цвет заранее вычисляется на стороне Node из миниатюры; записи без цвета (ещё не обогащённые) исключаются из поиска с ранжированием по цвету.

  • color_familyenum

    Необязательный фильтр по укрупнённым цветовым семействам (red, orange, yellow, green, blue, purple, pink, brown, neutral, black, white). Применяется после выборки в пределах ограниченного окна, поэтому редкое семейство может вернуть меньше, чем limit. Используйте инструмент facets, чтобы увидеть, какие семейства присутствуют.

  • has_3dboolean

    Необязательный фильтр для записей хотя бы с одним 3D-сканом под открытой лицензией (Cleveland Museum of Art через Sketchfab, пока единственный источник). Работает после выборки в пределах ограниченного окна, поэтому записей может вернуться меньше, чем limit.

  • has_imageboolean

    Ограничивает выборку записями с URL изображения. По умолчанию: true. Примечание: некоторые музеи (например, The Met) поддерживают поиск только по изображениям, и он доступен лишь на стороне сервера.

  • limitinteger
  • mediumenum

    Необязательный фильтр по категории техники. Одно из контролируемых значений: живопись, рисунок, эстамп, фотография, скульптура, текстиль, керамика, металл, мебель, рукопись, другое. Как и фильтр по году, он применяется после проверки прав в пределах ограниченного окна кандидатов, поэтому редкая для запроса техника может вернуть меньше результатов, чем limit. Используйте инструмент facets, чтобы посмотреть, какие значения присутствуют для запроса.

  • museumstring

    Необязательный код музея. Всегда доступны: met, cleveland, aic, rijksmuseum, walters, smk, wellcome, nga, getty, wikimedia (Commons). Доступны по ключу: europeana (EUROPEANA_API_KEY), smithsonian (SMITHSONIAN_API_KEY), harvard (HARVARD_API_KEY). Если не указать, поиск идёт по всем зарегистрированным источникам.

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

    Свободный текстовый запрос.

  • year_maxinteger

    Необязательная включающая верхняя граница года создания произведения. Отрицательное значение для дат до нашей эры. Записи без распознаваемой даты исключаются, когда задана любая граница года.

  • year_mininteger

    Необязательная нижняя граница года создания произведения, включительно. Отрицательное значение для до н.э. (например, -500 = 500 г. до н.э.). Записи без распознаваемой даты исключаются, если задана любая граница года.

0.21.0основная
0.16.0
0.15.0
0.13.0
0.12.0
0.11.0
0.10.2
0.10.1
0.10.0
0.9.0
0.7.0
0.6.0
0.5.0
0.4.1
0.4.0
0.2.0
0.1.0

Выберите клиент, чтобы установить cfpramod/open-museum-mcp:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "cfpramod-open-museum-mcp-kyjm1vpmvc": {
      "command": "npx",
      "args": [
        "-y",
        "open-museum-mcp"
      ]
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "cfpramod-open-museum-mcp-kyjm1vpmvc": {
      "command": "npx",
      "args": [
        "-y",
        "open-museum-mcp"
      ]
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "cfpramod-open-museum-mcp-kyjm1vpmvc": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "open-museum-mcp"
      ]
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"cfpramod-open-museum-mcp-kyjm1vpmvc\",\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"-y\",\"open-museum-mcp\"]}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "cfpramod-open-museum-mcp-kyjm1vpmvc": {
      "command": "npx",
      "args": [
        "-y",
        "open-museum-mcp"
      ]
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add cfpramod-open-museum-mcp-kyjm1vpmvc -- npx -y open-museum-mcp

Либо через JSON-конфиг:

claude mcp add-json cfpramod-open-museum-mcp-kyjm1vpmvc "{\"command\":\"npx\",\"args\":[\"-y\",\"open-museum-mcp\"]}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add cfpramod-open-museum-mcp-kyjm1vpmvc -- npx -y open-museum-mcp

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.cfpramod-open-museum-mcp-kyjm1vpmvc]
command = "npx"
args = ["-y", "open-museum-mcp"]
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите cfpramod/open-museum-mcp, а в поле команды запуска — строку ниже:
npx -y open-museum-mcp

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "cfpramod-open-museum-mcp-kyjm1vpmvc": {
      "command": "npx",
      "args": [
        "-y",
        "open-museum-mcp"
      ]
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "cfpramod-open-museum-mcp-kyjm1vpmvc": {
      "command": "npx",
      "args": [
        "-y",
        "open-museum-mcp"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например cfpramod-open-museum-mcp-kyjm1vpmvc.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: cfpramod-open-museum-mcp-kyjm1vpmvc
    command: npx
    args:
      - "-y"
      - "open-museum-mcp"
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "cfpramod-open-museum-mcp-kyjm1vpmvc": {
      "command": "npx",
      "args": [
        "-y",
        "open-museum-mcp"
      ]
    }
  }
}

Похожие MCP-сервера

r-huijts/rijksmuseum-mcp

r-huijts/rijksmuseum-mcp

от r-huijts

MCP-сервер для доступа к коллекции Рейксмузеума: поиск картин, подробные детали и изображения, коллекции и временные шкалы художников. Помогает AI-моделям изучать искусство.

JavaScript⭐ 72
mikechao/metmuseum-mcp

mikechao/metmuseum-mcp

от mikechao

MCP сервер для доступа к коллекции Метрополитен Музея. Ищите произведения искусства через естественные запросы, получайте изображения и детали объектов. Полезен искусствоведам, разработчикам и любителям искусства.

TypeScript⭐ 35
molanojustin/smithsonian-mcp

molanojustin/smithsonian-mcp

от molanojustin

MCP-сервер для AI-ассистентов, открывающий доступ к 3+ миллионам объектов Смитсоновского института. Поиск, детальная информация о предметах, изображения и данные о выставках через единый протокол. ...

Python⭐ 10
leonardoca1/aesthetics-wiki-mcp

leonardoca1/aesthetics-wiki-mcp

от leonardoca1

Сервер MCP для Aesthetics Wiki - ищи, читай и открывай тысячи эстетик (cottagecore, y2k). Готовые инструменты поиска, изображений, случайной подборки. Полезен дизайнерам, писателям, креаторам для m...

Python⭐ 10
delmas41/gradusnotation

delmas41/gradusnotation

от delmas41

Рендерит нотную запись (SVG, MusicXML, MIDI), валидирует партитуры, ищет по базе теории музыки и анализирует гармонию. Полезен AI-агентам, работающим с музыкой без графического интерфейса.

JavaScript⭐ 3
AIDataNordic/alexandria-mcp

AIDataNordic/alexandria-mcp

от aidatanordic

MCP сервер для семантического поиска по 4,6 млн фрагментов классической философии и гуманитарных наук (20 000+ текстов). Поддерживает фильтрацию по автору, языку и теме с гибридным ранжированием. Идеально для исследователей философии и AI-агентов.

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

Лука Никитин