Scryfall MCP Server
Scryfall MCP Server
MCP-сервер на базе Scryfall для поиска карт Magic: The Gathering, просмотра правил, цен, поиска сетов и рабочих процессов по составлению колод.
В настоящее время проект поддерживает:
stdioв качестве основного транспорта для локальных MCP-клиентовлокальный потоковый HTTP через
src/http.ts14 инструментов MCP, 2 ресурса и 2 промпта
Что он предоставляет
Инструменты
search_cards: Выполнение поиска карт Scryfall с постраничным выводом, сортировкой и опциональной фильтрацией по цене.get_card: Получение одной карты по имени, сету/коллекционному номеру или ID Scryfall.get_card_prices: Возврат данных о ценах с опциональным контекстом формата и альтернативами.random_card: Получение случайной карты с опциональными фильтрами.search_sets: Поиск и фильтрация сетов Magic.query_rules: Поиск по локальному файлу полных правил с контекстом.build_scryfall_query: Преобразование естественного языка в понятный запрос Scryfall.search_format_staples: Поиск стейплов и ключевых карт для формата.search_alternatives: Поиск более дешевых, улучшенных или похожих карт.find_synergistic_cards: Поиск синергичных карт для конкретной карты, темы или архетипа.batch_card_analysis: Анализ нескольких карт на легальность, цены, синергию или состав.validate_brawl_commander: Проверка легальности командира в форматах Brawl и Standard Brawl.analyze_deck_composition: Оценка списков колод на кривую маны, цвета и структурные проблемы.suggest_mana_base: Рекомендация количества земель и пакетов стабилизации на основе цветовых требований.
Ресурсы
card-database://bulk: Кэшированный полный снимок Oracle.set-database://all: Кэшированный снимок списка сетов.
Промпты
analyze_cardbuild_deck
Related MCP server: MTG-MCP
Транспорты
STDIO
Рекомендуется для Claude Desktop, Codex, MCP Inspector и большинства локальных MCP-клиентов.
npm run devnpm startПотоковый HTTP
Доступен как отдельная точка входа для локальных или контролируемых сред.
npm run dev:httpnpm run start:httpДля локального тестирования MCP:
npm run dev:http:local
npm run smoke:httpДымовой тест проверяет /health, выполняет initialize в MCP, отправляет notifications/initialized и проверяет tools/list.
Он также выполняет репрезентативные вызовы инструментов validate_brawl_commander и search_cards, чтобы проверить локальную HTTP-точку доступа помимо простого обнаружения.
Текущее поведение HTTP:
по умолчанию привязывается к
127.0.0.1обслуживает
POST|GET|DELETEпо пути/mcpобслуживает
GET /healthпо умолчанию отклоняет заголовки
Origin, не относящиеся к loopback, если не заданHTTP_ALLOWED_ORIGINS
HTTP-точка входа полезна сегодня, но документация по ней пока носит консервативный характер. Она не представлена здесь как решение для публичного хостинга.
Настройка
Предварительные требования
Node.js 18+
npm
Установка
git clone https://github.com/bmurdock/scryfall-mcp.git
cd scryfall-mcp
npm install
cp .env.example .envПроверка
npm run lint
npm run type-check
npm testСборка
npm run buildОбщие команды
npm run dev
npm run dev:http
npm start
npm run start:http
npm test
npm run test:watch
npm run test:ui
npm run lint
npm run type-check
npm run inspectorКонфигурация
См. .env.example для канонических значений. Основные переменные, используемые в работе:
SCRYFALL_USER_AGENTRATE_LIMIT_MSRATE_LIMIT_QUEUE_MAXSCRYFALL_TIMEOUT_MSCACHE_MAX_SIZECACHE_MAX_MEMORY_MBLOG_LEVELNODE_ENVHEALTHCHECK_DEEPHTTP_HOSTHTTP_PORTHTTP_MCP_PATHHTTP_HEALTH_PATHHTTP_ALLOWED_ORIGINS
Операционные заметки:
Вызовы API Scryfall глобально сериализуются общим ограничителем частоты запросов (rate limiter). Пакетные инструменты могут планировать несколько локальных поисков, но завершение запросов к вышестоящему Scryfall по дизайну остается последовательным.
Ответы HTTP 429 не повторяются автоматически. Сервер записывает окно ограничения Scryfall и задерживает начало следующего запроса, чтобы вызывающая сторона могла решить, стоит ли повторять попытку.
CACHE_MAX_MEMORY_MBконтролирует, могут ли сохраняться большие снимки в памяти, включаяcard-database://bulk. Слишком большие снимки все еще могут быть возвращены для текущего чтения, но метаданные будут сообщать, что они не были кэшированы.Анализ списка колоды сначала точно сопоставляет имена карт, затем переходит к нечеткому поиску при отсутствии точных совпадений и сообщает о любых нечетких разрешениях в ответе.
Инструменты для работы с колодами могут возвращать частичный анализ или явное сообщение о необходимости повторной попытки, если Scryfall ограничивает базовые поиски карт.
Пример запуска локального HTTP:
HTTP_HOST=127.0.0.1 HTTP_PORT=3000 npm run start:httpПримеры вызова инструментов
build_scryfall_query
{
"natural_query": "blue counterspells under $20 for modern",
"optimize_for": "precision"
}search_cards
{
"query": "c:r t:instant mv=1",
"limit": 10,
"order": "name"
}search_sets
{
"type": "expansion",
"released_after": "2020-01-01"
}find_synergistic_cards
{
"focus_card": "Obeka, Splitter of Seconds",
"synergy_type": "theme",
"format": "commander",
"color_identity": "UBR",
"limit": 12
}Для рабочих процессов, подобных командиру, передавайте color_identity, когда фокус направлен на тему, а не на конкретную карту. Когда фокус разрешается в карту, инструмент выводит цветовую идентичность этой карты и фильтрует конечные результаты по запрошенной легальности, доступности в Arena и цветовой идентичности.
analyze_deck_composition
{
"deck_list": "4 Lightning Bolt\n4 Monastery Swiftspear\n20 Mountain",
"format": "modern",
"strategy": "aggro"
}Интеграция с Claude Desktop
Добавьте собранную точку входа stdio в конфигурацию Claude Desktop.
Путь для macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Путь для Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"scryfall": {
"command": "node",
"args": ["/absolute/path/to/scryfall-mcp/dist/index.js"]
}
}
}Операционные заметки
Ограничение частоты запросов (rate limiting) принудительно выполняется внутри процесса с минимальным интервалом по умолчанию в 100 мс между запросами к Scryfall.
Ответы на поиск, детали карт, цены, сеты и полные снимки кэшируются с ограниченными лимитами памяти.
Ресурс полных карт хранит предварительно сериализованный снимок, чтобы повторные чтения были дешевыми.
Фильтрация сетов основана на одном каноническом кэшированном наборе данных
/sets, чтобы избежать некорректного повторного использования отфильтрованного кэша.Проверки работоспособности доступны через
ScryfallMCPServer.healthCheck()и HTTP-эндпоинт/health.Если коннектор MCP сообщает об ошибке десериализации JSON-RPC/SSE, сравните ее с необработанным путем дымового теста HTTP:
npm run dev:http:local
npm run smoke:httpЕсли команда дымового теста проходит успешно, захватите текст ошибки коннектора и вывод дымового теста вместе; это отделит локальное формирование эндпоинта от парсинга, специфичного для коннектора.
Карта документации
Текущие источники достоверной информации:
Лицензия
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for I Want My MTG that enables conversational search of Magic: The Gathering cards/sets and inventory management via API tools.60881MIT
- AlicenseNot gradedqualityCmaintenanceA comprehensive Model Context Protocol server that provides AI assistants with rich Magic: The Gathering information, including card data, comprehensive rules, EDHREC recommendations, combo interactions, and intelligent Commander deck generation.1MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for searching and retrieving Magic: The Gathering card information via the Scryfall API, with support for field presets, multiple output formats, and automatic rate limiting.29MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that searches and retrieves Magic: The Gathering card data from the Scryfall API.29MIT
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bmurdock/scryfall-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server