FoundryVTT MCP Server
FoundryVTT MCP Server
Un servidor de Model Context Protocol (MCP) que se integra con FoundryVTT, permitiendo a los asistentes de IA interactuar con tus sesiones de juegos de mesa mediante lenguaje natural.
Características
Lanzamiento de dados — notación estándar de RPG con cualquier fórmula
Consulta de datos — busca e inspecciona actores, objetos, escenas, diarios
Estado del juego — seguimiento de combate, mensajes de chat, presencia de usuarios
Generación de contenido — PNJs, tablas de botín, consultas de reglas
Búsqueda en el mundo — búsqueda de texto completo en todas las entidades del juego
Conexión en vivo — Socket.IO carga el estado completo del mundo al conectar
Recursos MCP — URIs
foundry://para acceso directo a datosDiagnósticos — monitoreo opcional de salud del servidor (requiere módulo de API REST)
Related MCP server: FoundryVTT MCP Server
Inicio rápido
Requisitos previos
Node.js 18+ (o Bun)
Servidor de FoundryVTT en ejecución con un mundo activo
Cliente de IA compatible con MCP (Claude Desktop, Claude Code, VS Code, etc.)
Recomendado: Crear un usuario de API dedicado
Se recomienda crear una cuenta de usuario de FoundryVTT separada para el servidor MCP en lugar de usar tu propia cuenta de GM o de jugador. Esto proporciona mejor seguridad y auditabilidad.
En FoundryVTT:
Ve a Configuración → Gestión de usuarios
Haz clic en Crear usuario
Establece un nombre de usuario (por ejemplo,
mcp-api) y una contraseña seguraAsigna el rol de GM asistente (necesario para leer datos del mundo y lanzar dados)
Usa las credenciales de esta cuenta en tu configuración de MCP
Beneficios:
Los mensajes de chat y las acciones del servidor MCP se atribuyen claramente a un usuario separado
Puedes revocar el acceso deshabilitando el usuario de API sin afectar tu propia cuenta
Limita el radio de impacto si las credenciales alguna vez se exponen
Instalación
Ejecuta directamente sin instalar — no se necesita clonar:
bunx foundryvtt-mcpO con npx:
npx -y foundryvtt-mcpConfiguración del cliente
Claude Desktop / Claude Code
Añade a tu configuración de MCP (claude_desktop_config.json o .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
Añade a tu configuración de MCP de VS Code:
{
"servers": {
"foundryvtt": {
"command": "bunx",
"args": ["foundryvtt-mcp"],
"env": {
"FOUNDRY_URL": "http://localhost:30000",
"FOUNDRY_USERNAME": "your_username",
"FOUNDRY_PASSWORD": "your_password"
}
}
}
}Configuración de desarrollo
Para desarrollo local o contribuciones:
git clone https://github.com/laurigates/foundryvtt-mcp.git
cd foundryvtt-mcp
bun install
bun run setup-wizardEl asistente de configuración detectará tu servidor de FoundryVTT, probará la conectividad y generará tu configuración .env.
Para configurar manualmente, consulta la Guía de configuración.
Variables de entorno
Variable | Requerido | Descripción |
| Sí | URL del servidor de FoundryVTT (p. ej., |
| Sí | Cuenta de usuario de FoundryVTT |
| Sí | Contraseña de usuario de FoundryVTT |
| No | Omite la resolución de nombre de usuario a ID |
| No | Clave del módulo de API REST (habilita herramientas de diagnóstico) |
| No | Habilita mutaciones del estado del juego — se requiere |
| No |
|
| No | Tiempo de espera de solicitud en ms (por defecto: |
Uso
Pregunta a tu asistente de IA cosas como:
"Lanza 1d20+5 para una tirada de ataque"
"Muéstrame todos los PNJs en esta escena"
"¿Cuál es el orden de iniciativa actual del combate?"
"Busca en el mundo cualquier cosa relacionada con dragones"
"Genera un mercader PNJ aleatorio"
Herramientas disponibles
Acceso a datos
search_actors— encuentra personajes, PNJs, monstruosget_actor_details— información detallada del personajesearch_items— encuentra equipo, hechizos, consumiblesget_scene_info— detalles de la escena actualsearch_journals— busca notas y documentosget_journal— recupera una entrada de diario específicaget_users— lista usuarios, roles y estado en línea en vivoget_combat_state— estado del combate y orden de iniciativaget_chat_messages— historial de chat reciente
Operaciones de escritura (requieren FOUNDRY_WRITE_ENABLED=true)
Las mutaciones del estado del juego están deshabilitadas por defecto. Usan el protocolo Socket.IO modifyDocument sobre una sesión autenticada, y el usuario conectado necesita permiso de GM/propietario. Establece FOUNDRY_WRITE_ENABLED=true para habilitarlas.
start_combat— inicia un nuevo encuentro, sembrando combatientes desde tokens (no comprueba si hay un combate existente — llamarlo durante uno activo crea un segundo encuentro)next_turn— avanza el combate activo al siguiente turno (vuelve a la siguiente ronda)end_combat— finaliza (elimina) el encuentro de combate activoset_initiative— establece la iniciativa de un combatiente en el combate activo, moviendo el marcador de turno con el combatiente actuante si el reordenamiento los desplazamove_token— mueve un token a nuevas coordenadas x/y en su escenaapply_status_effect— aplica o elimina una condición de estado (p. ej., tumbado, aturdido) en el actor de un tokenupdate_actor_attributes— parchea los atributossystemde un actor (PG, moneda, espacios de conjuro, …)create_actor_item— añade un objeto en línea a un actorupdate_actor_item— aplica un parche de fusión JSON al objeto de un actordelete_actor_item— elimina un objeto de un actorcreate_journal_entry— crea una entrada de diario con una o más páginas de texto (solo GM por defecto; pasavisibilitypara permitir que los jugadores la lean)
Mundo
search_world— búsqueda de texto completo en todas las entidades del juegoget_world_summary— resumen del estado actual del mundorefresh_world_data— recarga los datos del mundo desde FoundryVTT; necesario después de una conexión caída, cuyas actualizaciones perdidas nunca se reproducen en la caché
Mecánicas del juego
roll_dice— lanza dados; términos de dados (NdS) y números enteros unidos por+/-, con notación no soportada (4d6kh3,1d20r1,*) rechazada en lugar de ignorada. Los paréntesis son la única diferencia de transporte: FoundryVTT los evalúa cuandoFOUNDRY_API_KEYestá configurada, el lanzador local los rechaza en caso contrariolookup_rule— stub: devuelve un marcador de posición con plantilla, no consulta ninguna fuente de reglas
Generación de contenido
generate_npc— genera texto de PNJ (no se escribe en el mundo)generate_loot— genera texto de tesoro para un nivel (no se escribe en el mundo)
Diagnósticos (requiere módulo de API REST)
get_recent_logs— recupera registros de FoundryVTT filtradossearch_logs— busca registros por patrón, listando las entradas coincidentesget_system_health— estado de salud del servidor con versiones, recuentos de usuarios/módulos, memoria y recuentos de errores de registro (sin métricas de CPU o disco)diagnose_errors— stub: devuelve un resumen fijo de "no se detectaron errores"get_health_status— diagnósticos de salud completos; marca la instantánea del mundo cuando la caché ha dejado de seguir los cambios en vivo
Recursos disponibles
foundry://actors— todos los actores del mundofoundry://items— todos los objetos del mundofoundry://scenes— todas las escenasfoundry://scenes/current— escena activa actualfoundry://journals— todas las entradas de diariofoundry://users— usuarios en líneafoundry://combat— estado del combate activo;combatantsestán en orden de iniciativa, por lo quecombat.turnlos indexa directamentefoundry://world/settings— configuración del mundo y de la campañafoundry://system/diagnostics— diagnósticos del sistema (requiere módulo de API REST)
Solución de problemas
Los ayudantes de conectividad y configuración se incluyen en el árbol de fuentes (no en el bin publicado), así que ejecútalos desde un checkout de desarrollo:
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 setupGuía detallada: TROUBLESHOOTING.md
Desarrollo
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)Consulta la Guía de desarrollo para la estructura del proyecto, añadir herramientas, pruebas y compilación.
Hoja de ruta
Consulta el Seguimiento de funciones para funciones completadas y planificadas.
Contribuciones
Consulta CONTRIBUTING.md.
Licencia
Licencia MIT — consulta LICENSE para más detalles.
Soporte
Problemas: GitHub Issues
Discord: FoundryVTT Discord #api-development
Documentación: FoundryVTT API
Agradecimientos
Equipo de FoundryVTT por la excelente plataforma VTT
Anthropic por el Model Context Protocol
La comunidad de juegos de mesa por la inspiración y los comentarios
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