FoundryVTT MCP Server
FoundryVTT MCP Server
Сервер Model Context Protocol (MCP), который интегрируется с FoundryVTT, позволяя ИИ-ассистентам взаимодействовать с вашими настольными игровыми сессиями через естественный язык.
Возможности
Бросок кубиков — стандартная RPG-нотация с любой формулой
Запросы данных — поиск и просмотр актёров, предметов, сцен, журналов
Состояние игры — отслеживание боя, сообщения чата, присутствие пользователей
Генерация контента — NPC, таблицы добычи, поиск правил
Поиск по миру — полнотекстовый поиск по всем игровым сущностям
Живое подключение — Socket.IO загружает полное состояние мира при подключении
MCP-ресурсы — URI
foundry://для прямого доступа к даннымДиагностика — необязательный мониторинг состояния сервера (требуется модуль REST API)
Related MCP server: FoundryVTT MCP Server
Быстрый старт
Предварительные требования
Node.js 18+ (или Bun)
Запущенный сервер FoundryVTT с активным миром
MCP-совместимый ИИ-клиент (Claude Desktop, Claude Code, VS Code и т.д.)
Рекомендуется: создайте отдельного API-пользователя
Рекомендуется создать отдельную учётную запись пользователя FoundryVTT для MCP-сервера, а не использовать вашу собственную учётную запись GM или игрока. Это обеспечивает лучшую безопасность и аудируемость.
В FoundryVTT:
Перейдите в Configuration → User Management
Нажмите Create User
Укажите имя пользователя (например,
mcp-api) и надёжный парольНазначьте роль Assistant GM (необходима для чтения данных мира и бросков кубиков)
Используйте учётные данные этой учётной записи в вашей конфигурации MCP
Преимущества:
Сообщения чата и действия от MCP-сервера чётко приписываются отдельному пользователю
Вы можете отозвать доступ, отключив API-пользователя, не затрагивая свою собственную учётную запись
Ограничивает радиус поражения, если учётные данные когда-либо будут раскрыты
Установка
Запуск напрямую без установки — клонирование не требуется:
bunx foundryvtt-mcpИли с помощью npx:
npx -y foundryvtt-mcpКонфигурация клиента
Claude Desktop / Claude Code
Добавьте в вашу конфигурацию MCP (claude_desktop_config.json или .mcp.json):
{
"mcpServers": {
"foundryvtt": {
"command": "bunx",
"args": ["foundryvtt-mcp"],
"env": {
"FOUNDRY_URL": "http://localhost:30000",
"FOUNDRY_USERNAME": "your_username",
"FOUNDRY_PASSWORD": "your_password"
}
}
}
}VS Code
Добавьте в настройки MCP вашего VS Code:
{
"servers": {
"foundryvtt": {
"command": "bunx",
"args": ["foundryvtt-mcp"],
"env": {
"FOUNDRY_URL": "http://localhost:30000",
"FOUNDRY_USERNAME": "your_username",
"FOUNDRY_PASSWORD": "your_password"
}
}
}
}Настройка разработки
Для локальной разработки или внесения вклада:
git clone https://github.com/laurigates/foundryvtt-mcp.git
cd foundryvtt-mcp
bun install
bun run setup-wizardМастер настройки обнаружит ваш сервер FoundryVTT, проверит подключение и сгенерирует вашу конфигурацию .env.
Для ручной настройки см. Руководство по конфигурации.
Переменные окружения
Variable | Required | Description |
| Да | URL сервера FoundryVTT (например, |
| Да | Учётная запись пользователя FoundryVTT |
| Да | Пароль пользователя FoundryVTT |
| Нет | Обход разрешения имени пользователя в ID |
| Нет | Ключ модуля REST API (включает инструменты диагностики) |
| Нет | Включить изменения состояния игры — |
| Нет |
|
| Нет | Тайм-аут запроса в мс (по умолчанию: |
Использование
Спросите вашего ИИ-ассистента, например:
«Брось 1d20+5 для атаки»
«Покажи всех NPC в этой сцене»
«Какой текущий порядок инициативы в бою?»
«Найди в мире всё, что связано с драконами»
«Сгенерируй случайного NPC-торговца»
Доступные инструменты
Доступ к данным
search_actors— поиск персонажей, NPC, монстровget_actor_details— подробная информация о персонажеsearch_items— поиск снаряжения, заклинаний, расходниковget_scene_info— детали текущей сценыsearch_journals— поиск заметок и раздаточных материаловget_journal— получение конкретной записи журналаget_users— список пользователей, ролей и статуса онлайнget_combat_state— состояние боя и порядок инициативыget_chat_messages— недавняя история чата
Операции записи (требуют FOUNDRY_WRITE_ENABLED=true)
Изменения состояния игры отключены по умолчанию. Они используют протокол Socket.IO modifyDocument через аутентифицированную сессию, и подключённому пользователю требуется разрешение GM/владельца. Установите FOUNDRY_WRITE_ENABLED=true, чтобы включить их.
start_combat— начать новое столкновение, заполняя участников из токенов (не проверяет наличие существующего боя — вызов во время активного создаёт второе столкновение)next_turn— перейти к следующему ходу в активном бою (переходит к следующему раунду)end_combat— завершить (удалить) активное боевое столкновениеset_initiative— установить инициативу участника в активном бою, перемещая маркер хода вместе с действующим участником, если перестановка сдвигает ихmove_token— переместить токен на новые координаты x/y на его сценеapply_status_effect— применить или снять статусное состояние (например, лежачий, оглушённый) на актёре токенаupdate_actor_attributes— изменить атрибутыsystemактёра (HP, валюта, ячейки заклинаний и т.д.)create_actor_item— добавить встроенный предмет актёруupdate_actor_item— применить JSON-патч слияния к предмету актёраdelete_actor_item— удалить предмет у актёраcreate_journal_entry— создать запись журнала с одной или несколькими текстовыми страницами (по умолчанию только для GM; передайтеvisibility, чтобы игроки могли её читать)
Мир
search_world— полнотекстовый поиск по всем игровым сущностямget_world_summary— обзор текущего состояния мираrefresh_world_data— перезагрузить данные мира из FoundryVTT; необходимо после разорванного соединения, пропущенные обновления которого никогда не воспроизводятся в кэше
Игровая механика
roll_dice— бросок кубиков; термины кубиков (NdS) и целые числа, соединённые+/-, с отклонением неподдерживаемой нотации (4d6kh3,1d20r1,*) вместо её игнорирования. Скобки — единственное различие в транспорте: FoundryVTT вычисляет их, когда установленFOUNDRY_API_KEY, локальный роллер отклоняет их в противном случаеlookup_rule— заглушка: возвращает шаблонный заполнитель, не обращается к источникам правил
Генерация контента
generate_npc— генерация текста NPC (не записывается в мир)generate_loot— генерация текста сокровищ для уровня (не записывается в мир)
Диагностика (требуется модуль REST API)
get_recent_logs— получение отфильтрованных журналов FoundryVTTsearch_logs— поиск журналов по шаблону, вывод соответствующих записейget_system_health— состояние здоровья сервера с версиями, количеством пользователей/модулей, памятью и количеством ошибок журнала (без метрик CPU или диска)diagnose_errors— заглушка: возвращает фиксированное резюме «ошибок не обнаружено»get_health_status— комплексная диагностика здоровья; помечает снимок мира, когда кэш перестал следовать за живыми изменениями
Доступные ресурсы
foundry://actors— все актёры в миреfoundry://items— все предметы в миреfoundry://scenes— все сценыfoundry://scenes/current— текущая активная сценаfoundry://journals— все записи журналаfoundry://users— онлайн-пользователиfoundry://combat— активное состояние боя;combatantsнаходятся в порядке инициативы, поэтомуcombat.turnиндексирует их напрямуюfoundry://world/settings— настройки мира и кампанииfoundry://system/diagnostics— системная диагностика (требуется модуль REST API)
Устранение неполадок
Средства проверки подключения и настройки поставляются в дереве исходников (не в опубликованном bin), поэтому запускайте их из dev-копии:
git clone https://github.com/laurigates/foundryvtt-mcp.git
cd foundryvtt-mcp && bun install
bun run test-connection # Probe FoundryVTT connectivity
bun run setup-wizard # Re-run interactive setupПодробное руководство: TROUBLESHOOTING.md
Разработка
bun run build # Compile TypeScript and make dist/index.js executable
bun run dev # Development mode with hot reload
bun test # Unit tests (Vitest)
bun run test:e2e # E2E tests (Playwright)
bun run lint # Lint code (Biome)
bun run smoke # Startup smoke test against the local build
bun run smoke:pack # Pack-and-install smoke test (mirrors what npx consumers get)См. Руководство по разработке для структуры проекта, добавления инструментов, тестирования и сборки.
Дорожная карта
См. Трекер функций для завершённых и запланированных функций.
Вклад
См. CONTRIBUTING.md.
Лицензия
Лицензия MIT — см. LICENSE для подробностей.
Поддержка
Проблемы: GitHub Issues
Discord: FoundryVTT Discord #api-development
Документация: FoundryVTT API
Благодарности
Команда FoundryVTT за отличную VTT-платформу
Anthropic за Model Context Protocol
Сообщество настольных игр за вдохновение и обратную связь
This server cannot be installed
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
- AlicenseBqualityDmaintenanceA comprehensive Model Context Protocol server for managing Dungeons & Dragons campaigns with tools for characters, NPCs, locations, quests, combat encounters, and session tracking.3012MIT
- FlicenseNot gradedqualityNot gradedmaintenanceIntegrates with FoundryVTT tabletop gaming sessions, allowing AI assistants to query game data, roll dice, generate content (NPCs, loot, encounters), manage combat, and provide tactical suggestions through natural language.12
- AlicenseAqualityCmaintenanceAn immersive Role-Playing Game server built on the Model Context Protocol for interactive storytelling with AI assistants like Claude.74515MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that provides random dice rolling capabilities for AI assistants.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2
Official remote MCP server for Archivist AI TTRPG campaign memory: characters, sessions, and more.
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/laurigates/foundryvtt-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server