foundryvtt-mcp 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +142 -0
  3. package/dist/character/manager.d.ts +92 -0
  4. package/dist/character/manager.d.ts.map +1 -0
  5. package/dist/character/manager.js +208 -0
  6. package/dist/character/manager.js.map +1 -0
  7. package/dist/combat/manager.d.ts +94 -0
  8. package/dist/combat/manager.d.ts.map +1 -0
  9. package/dist/combat/manager.js +373 -0
  10. package/dist/combat/manager.js.map +1 -0
  11. package/dist/config/index.d.ts +114 -0
  12. package/dist/config/index.d.ts.map +1 -0
  13. package/dist/config/index.js +177 -0
  14. package/dist/config/index.js.map +1 -0
  15. package/dist/diagnostics/client.d.ts +193 -0
  16. package/dist/diagnostics/client.d.ts.map +1 -0
  17. package/dist/diagnostics/client.js +314 -0
  18. package/dist/diagnostics/client.js.map +1 -0
  19. package/dist/diagnostics/types.d.ts +414 -0
  20. package/dist/diagnostics/types.d.ts.map +1 -0
  21. package/dist/diagnostics/types.js +94 -0
  22. package/dist/diagnostics/types.js.map +1 -0
  23. package/dist/foundry/auth.d.ts +19 -0
  24. package/dist/foundry/auth.d.ts.map +1 -0
  25. package/dist/foundry/auth.js +135 -0
  26. package/dist/foundry/auth.js.map +1 -0
  27. package/dist/foundry/client.d.ts +95 -0
  28. package/dist/foundry/client.d.ts.map +1 -0
  29. package/dist/foundry/client.js +692 -0
  30. package/dist/foundry/client.js.map +1 -0
  31. package/dist/foundry/types.d.ts +805 -0
  32. package/dist/foundry/types.d.ts.map +1 -0
  33. package/dist/foundry/types.js +13 -0
  34. package/dist/foundry/types.js.map +1 -0
  35. package/dist/index.d.ts +16 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +199 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/resources/index.d.ts +3 -0
  40. package/dist/resources/index.d.ts.map +1 -0
  41. package/dist/resources/index.js +93 -0
  42. package/dist/resources/index.js.map +1 -0
  43. package/dist/tools/base.d.ts +80 -0
  44. package/dist/tools/base.d.ts.map +1 -0
  45. package/dist/tools/base.js +73 -0
  46. package/dist/tools/base.js.map +1 -0
  47. package/dist/tools/definitions.d.ts +414 -0
  48. package/dist/tools/definitions.d.ts.map +1 -0
  49. package/dist/tools/definitions.js +429 -0
  50. package/dist/tools/definitions.js.map +1 -0
  51. package/dist/tools/handlers/actors.d.ts +31 -0
  52. package/dist/tools/handlers/actors.d.ts.map +1 -0
  53. package/dist/tools/handlers/actors.js +76 -0
  54. package/dist/tools/handlers/actors.js.map +1 -0
  55. package/dist/tools/handlers/chat.d.ts +13 -0
  56. package/dist/tools/handlers/chat.d.ts.map +1 -0
  57. package/dist/tools/handlers/chat.js +38 -0
  58. package/dist/tools/handlers/chat.js.map +1 -0
  59. package/dist/tools/handlers/combat.d.ts +11 -0
  60. package/dist/tools/handlers/combat.d.ts.map +1 -0
  61. package/dist/tools/handlers/combat.js +48 -0
  62. package/dist/tools/handlers/combat.js.map +1 -0
  63. package/dist/tools/handlers/diagnostics.d.ts +64 -0
  64. package/dist/tools/handlers/diagnostics.d.ts.map +1 -0
  65. package/dist/tools/handlers/diagnostics.js +182 -0
  66. package/dist/tools/handlers/diagnostics.js.map +1 -0
  67. package/dist/tools/handlers/dice.d.ts +39 -0
  68. package/dist/tools/handlers/dice.d.ts.map +1 -0
  69. package/dist/tools/handlers/dice.js +53 -0
  70. package/dist/tools/handlers/dice.js.map +1 -0
  71. package/dist/tools/handlers/generation.d.ts +44 -0
  72. package/dist/tools/handlers/generation.d.ts.map +1 -0
  73. package/dist/tools/handlers/generation.js +205 -0
  74. package/dist/tools/handlers/generation.js.map +1 -0
  75. package/dist/tools/handlers/items.d.ts +21 -0
  76. package/dist/tools/handlers/items.d.ts.map +1 -0
  77. package/dist/tools/handlers/items.js +50 -0
  78. package/dist/tools/handlers/items.js.map +1 -0
  79. package/dist/tools/handlers/journals.d.ts +22 -0
  80. package/dist/tools/handlers/journals.d.ts.map +1 -0
  81. package/dist/tools/handlers/journals.js +62 -0
  82. package/dist/tools/handlers/journals.js.map +1 -0
  83. package/dist/tools/handlers/resources.d.ts +13 -0
  84. package/dist/tools/handlers/resources.d.ts.map +1 -0
  85. package/dist/tools/handlers/resources.js +188 -0
  86. package/dist/tools/handlers/resources.js.map +1 -0
  87. package/dist/tools/handlers/scenes.d.ts +18 -0
  88. package/dist/tools/handlers/scenes.d.ts.map +1 -0
  89. package/dist/tools/handlers/scenes.js +34 -0
  90. package/dist/tools/handlers/scenes.js.map +1 -0
  91. package/dist/tools/handlers/users.d.ts +11 -0
  92. package/dist/tools/handlers/users.d.ts.map +1 -0
  93. package/dist/tools/handlers/users.js +34 -0
  94. package/dist/tools/handlers/users.js.map +1 -0
  95. package/dist/tools/handlers/utils.d.ts +11 -0
  96. package/dist/tools/handlers/utils.d.ts.map +1 -0
  97. package/dist/tools/handlers/utils.js +24 -0
  98. package/dist/tools/handlers/utils.js.map +1 -0
  99. package/dist/tools/handlers/world.d.ts +26 -0
  100. package/dist/tools/handlers/world.d.ts.map +1 -0
  101. package/dist/tools/handlers/world.js +92 -0
  102. package/dist/tools/handlers/world.js.map +1 -0
  103. package/dist/tools/index.d.ts +19 -0
  104. package/dist/tools/index.d.ts.map +1 -0
  105. package/dist/tools/index.js +22 -0
  106. package/dist/tools/index.js.map +1 -0
  107. package/dist/tools/new-router.d.ts +29 -0
  108. package/dist/tools/new-router.d.ts.map +1 -0
  109. package/dist/tools/new-router.js +97 -0
  110. package/dist/tools/new-router.js.map +1 -0
  111. package/dist/tools/registry.d.ts +51 -0
  112. package/dist/tools/registry.d.ts.map +1 -0
  113. package/dist/tools/registry.js +79 -0
  114. package/dist/tools/registry.js.map +1 -0
  115. package/dist/tools/resources.d.ts +16 -0
  116. package/dist/tools/resources.d.ts.map +1 -0
  117. package/dist/tools/resources.js +63 -0
  118. package/dist/tools/resources.js.map +1 -0
  119. package/dist/tools/router.d.ts +22 -0
  120. package/dist/tools/router.d.ts.map +1 -0
  121. package/dist/tools/router.js +128 -0
  122. package/dist/tools/router.js.map +1 -0
  123. package/dist/utils/cache-instance.d.ts +25 -0
  124. package/dist/utils/cache-instance.d.ts.map +1 -0
  125. package/dist/utils/cache-instance.js +30 -0
  126. package/dist/utils/cache-instance.js.map +1 -0
  127. package/dist/utils/cache.d.ts +80 -0
  128. package/dist/utils/cache.d.ts.map +1 -0
  129. package/dist/utils/cache.js +205 -0
  130. package/dist/utils/cache.js.map +1 -0
  131. package/dist/utils/diagnostics.d.ts +114 -0
  132. package/dist/utils/diagnostics.d.ts.map +1 -0
  133. package/dist/utils/diagnostics.js +330 -0
  134. package/dist/utils/diagnostics.js.map +1 -0
  135. package/dist/utils/logger.d.ts +137 -0
  136. package/dist/utils/logger.d.ts.map +1 -0
  137. package/dist/utils/logger.js +158 -0
  138. package/dist/utils/logger.js.map +1 -0
  139. package/package.json +98 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/foundry/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE/B,EAAE,CAAC,EAAE;QACH,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,EAAE,CAAC,EAAE;QACH,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAChB,MAAM,EACN;QACE,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CACF,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CACb,MAAM,EACN;QACE,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CACF,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAEF,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IAEF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE;QACX,KAAK,EAAE,OAAO,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,SAAS,CAAC,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE;QACR,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,IAAI,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IAEpB,IAAI,CAAC,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE;YACV,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;IACF,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IAEjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnC,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,KAAK,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,OAAO,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IAEjB,UAAU,EAAE,KAAK,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,OAAO,CAAC;QAChB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC,CAAC;IACH,QAAQ,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAGD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAGD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,OAAO;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1C,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACvC,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE;YAAE,IAAI,EAAE,OAAO,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QACzC,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,KAAK,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,MAAM,EAAE,OAAO,CAAC;QAChB,QAAQ,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACvC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1C,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACvC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEtC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @fileoverview TypeScript type definitions for FoundryVTT data structures
3
+ *
4
+ * This module contains comprehensive type definitions for all FoundryVTT entities
5
+ * including actors, items, scenes, tokens, and other game objects. These types
6
+ * provide type safety and intellisense when working with FoundryVTT data.
7
+ *
8
+ * @version 0.1.0
9
+ * @author FoundryVTT MCP Team
10
+ * @see {@link https://foundryvtt.com/api/} FoundryVTT API Documentation
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/foundry/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * FoundryVTT Model Context Protocol Server
4
+ *
5
+ * This server provides integration between FoundryVTT and AI models through the Model Context Protocol (MCP).
6
+ * It enables AI assistants to interact with FoundryVTT instances for RPG campaign management,
7
+ * character handling, and game automation.
8
+ *
9
+ * @fileoverview Main entry point for the FoundryVTT MCP Server
10
+ * @version 0.1.0
11
+ * @author FoundryVTT MCP Team
12
+ * @see {@link https://github.com/anthropics/mcp} Model Context Protocol
13
+ * @see {@link https://foundryvtt.com/} FoundryVTT Virtual Tabletop
14
+ */
15
+ export {};
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG"}
package/dist/index.js ADDED
@@ -0,0 +1,199 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * FoundryVTT Model Context Protocol Server
4
+ *
5
+ * This server provides integration between FoundryVTT and AI models through the Model Context Protocol (MCP).
6
+ * It enables AI assistants to interact with FoundryVTT instances for RPG campaign management,
7
+ * character handling, and game automation.
8
+ *
9
+ * @fileoverview Main entry point for the FoundryVTT MCP Server
10
+ * @version 0.1.0
11
+ * @author FoundryVTT MCP Team
12
+ * @see {@link https://github.com/anthropics/mcp} Model Context Protocol
13
+ * @see {@link https://foundryvtt.com/} FoundryVTT Virtual Tabletop
14
+ */
15
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
16
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
17
+ import { CallToolRequestSchema, ErrorCode, ListResourcesRequestSchema, ListToolsRequestSchema, McpError, ReadResourceRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
18
+ import dotenv from 'dotenv';
19
+ import { config } from './config/index.js';
20
+ import { DiagnosticsClient } from './diagnostics/client.js';
21
+ import { FoundryClient } from './foundry/client.js';
22
+ import { getAllResources, getAllTools, routeResourceRequest, routeToolRequest, } from './tools/index.js';
23
+ import { DiagnosticSystem } from './utils/diagnostics.js';
24
+ import { logger } from './utils/logger.js';
25
+ // Load environment variables
26
+ dotenv.config({ quiet: true });
27
+ /**
28
+ * Main FoundryVTT MCP Server class that handles all communication
29
+ * between AI models and FoundryVTT instances.
30
+ */
31
+ class FoundryMCPServer {
32
+ server;
33
+ foundryClient;
34
+ diagnosticsClient;
35
+ diagnosticSystem;
36
+ /**
37
+ * Creates a new FoundryMCPServer instance.
38
+ * Initializes the MCP server, FoundryVTT client, and sets up all handlers.
39
+ */
40
+ constructor() {
41
+ this.server = new Server({
42
+ name: config.serverName,
43
+ version: config.serverVersion,
44
+ }, {
45
+ capabilities: {
46
+ resources: {},
47
+ tools: {},
48
+ },
49
+ });
50
+ // Initialize FoundryVTT client with configuration
51
+ const clientConfig = {
52
+ baseUrl: config.foundry.url,
53
+ socketPath: config.foundry.socketPath,
54
+ timeout: config.foundry.timeout,
55
+ retryAttempts: config.foundry.retryAttempts,
56
+ retryDelay: config.foundry.retryDelay,
57
+ };
58
+ if (config.foundry.apiKey) {
59
+ clientConfig.apiKey = config.foundry.apiKey;
60
+ }
61
+ if (config.foundry.username) {
62
+ clientConfig.username = config.foundry.username;
63
+ }
64
+ if (config.foundry.password) {
65
+ clientConfig.password = config.foundry.password;
66
+ }
67
+ if (config.foundry.userId) {
68
+ clientConfig.userId = config.foundry.userId;
69
+ }
70
+ this.foundryClient = new FoundryClient(clientConfig);
71
+ // Initialize DiagnosticsClient
72
+ this.diagnosticsClient = new DiagnosticsClient(this.foundryClient);
73
+ // Initialize DiagnosticSystem
74
+ this.diagnosticSystem = new DiagnosticSystem(this.foundryClient);
75
+ this.setupHandlers();
76
+ }
77
+ /**
78
+ * Sets up all MCP request handlers for tools, resources, and functionality.
79
+ * @private
80
+ */
81
+ setupHandlers() {
82
+ // List available tools
83
+ this.server.setRequestHandler(ListToolsRequestSchema, async () => {
84
+ logger.info('Listing available tools');
85
+ return {
86
+ tools: getAllTools(),
87
+ };
88
+ });
89
+ // List available resources
90
+ this.server.setRequestHandler(ListResourcesRequestSchema, async () => {
91
+ logger.info('Listing available resources');
92
+ return {
93
+ resources: getAllResources(),
94
+ };
95
+ });
96
+ // Handle tool calls
97
+ this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
98
+ const { name, arguments: args } = request.params;
99
+ logger.info('Executing tool', { name, args });
100
+ try {
101
+ return (await routeToolRequest(name, args || {}, this.foundryClient, this.diagnosticsClient, this.diagnosticSystem));
102
+ }
103
+ catch (error) {
104
+ logger.error('Tool execution failed:', error);
105
+ if (error instanceof McpError) {
106
+ throw error;
107
+ }
108
+ throw new McpError(ErrorCode.InternalError, `Tool execution failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
109
+ }
110
+ });
111
+ // Handle resource reads
112
+ this.server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
113
+ const { uri } = request.params;
114
+ logger.info('Reading resource', { uri });
115
+ try {
116
+ return await routeResourceRequest(uri, this.foundryClient, this.diagnosticsClient);
117
+ }
118
+ catch (error) {
119
+ logger.error('Resource read failed:', error);
120
+ if (error instanceof McpError) {
121
+ throw error;
122
+ }
123
+ throw new McpError(ErrorCode.InternalError, `Resource read failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
124
+ }
125
+ });
126
+ }
127
+ /**
128
+ * Connects to FoundryVTT and starts the MCP server.
129
+ * @returns Promise that resolves when the server is running
130
+ */
131
+ async start() {
132
+ try {
133
+ // Connect to FoundryVTT
134
+ await this.foundryClient.connect();
135
+ logger.info('Connected to FoundryVTT successfully');
136
+ // Start the MCP server
137
+ const transport = new StdioServerTransport();
138
+ await this.server.connect(transport);
139
+ logger.info('FoundryVTT MCP Server started successfully');
140
+ }
141
+ catch (error) {
142
+ logger.error('Failed to start server:', error);
143
+ throw error;
144
+ }
145
+ }
146
+ /**
147
+ * Gracefully shuts down the server and connections.
148
+ * @returns Promise that resolves when shutdown is complete
149
+ */
150
+ async shutdown() {
151
+ try {
152
+ await this.foundryClient.disconnect();
153
+ logger.info('FoundryVTT MCP Server shutdown completed');
154
+ }
155
+ catch (error) {
156
+ logger.error('Error during shutdown:', error);
157
+ }
158
+ }
159
+ }
160
+ /**
161
+ * Main entry point - creates and starts the server
162
+ */
163
+ async function main() {
164
+ const server = new FoundryMCPServer();
165
+ // Handle graceful shutdown
166
+ process.on('SIGINT', async () => {
167
+ logger.info('Received SIGINT, shutting down gracefully...');
168
+ await server.shutdown();
169
+ process.exit(0);
170
+ });
171
+ process.on('SIGTERM', async () => {
172
+ logger.info('Received SIGTERM, shutting down gracefully...');
173
+ await server.shutdown();
174
+ process.exit(0);
175
+ });
176
+ process.on('uncaughtException', (error) => {
177
+ logger.error('Uncaught exception:', error);
178
+ process.exit(1);
179
+ });
180
+ process.on('unhandledRejection', (reason, promise) => {
181
+ logger.error('Unhandled rejection at:', { promise, reason });
182
+ process.exit(1);
183
+ });
184
+ try {
185
+ await server.start();
186
+ }
187
+ catch (error) {
188
+ logger.error('Failed to start FoundryVTT MCP Server:', error);
189
+ process.exit(1);
190
+ }
191
+ }
192
+ // Start the server if this file is run directly
193
+ if (import.meta.url === `file://${process.argv[1]}`) {
194
+ main().catch((error) => {
195
+ logger.error('Server startup failed:', error);
196
+ process.exit(1);
197
+ });
198
+ }
199
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EAErB,SAAS,EACT,0BAA0B,EAC1B,sBAAsB,EACtB,QAAQ,EACR,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAA4B,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EACL,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,6BAA6B;AAC7B,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAE/B;;;GAGG;AACH,MAAM,gBAAgB;IACZ,MAAM,CAAS;IACf,aAAa,CAAgB;IAC7B,iBAAiB,CAAoB;IACrC,gBAAgB,CAAmB;IAE3C;;;OAGG;IACH;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CACtB;YACE,IAAI,EAAE,MAAM,CAAC,UAAU;YACvB,OAAO,EAAE,MAAM,CAAC,aAAa;SAC9B,EACD;YACE,YAAY,EAAE;gBACZ,SAAS,EAAE,EAAE;gBACb,KAAK,EAAE,EAAE;aACV;SACF,CACF,CAAC;QAEF,kDAAkD;QAClD,MAAM,YAAY,GAAwB;YACxC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;YAC3B,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU;YACrC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;YAC/B,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa;YAC3C,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU;SACtC,CAAC;QACF,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAC9C,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC5B,YAAY,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;QAClD,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC5B,YAAY,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;QAClD,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;QAErD,+BAA+B;QAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEnE,8BAA8B;QAC9B,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEjE,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED;;;OAGG;IACK,aAAa;QACnB,uBAAuB;QACvB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACvC,OAAO;gBACL,KAAK,EAAE,WAAW,EAAE;aACrB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC3C,OAAO;gBACL,SAAS,EAAE,eAAe,EAAE;aAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,oBAAoB;QACpB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACrE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAE9C,IAAI,CAAC;gBACH,OAAO,CAAC,MAAM,gBAAgB,CAC5B,IAAI,EACJ,IAAI,IAAI,EAAE,EACV,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,gBAAgB,CACtB,CAAmB,CAAC;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;gBAE9C,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;oBAC9B,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,aAAa,EACvB,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACrF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,wBAAwB;QACxB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACzE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YAEzC,IAAI,CAAC;gBACH,OAAO,MAAM,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACrF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;gBAE7C,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;oBAC9B,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,aAAa,EACvB,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACpF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC;YACH,wBAAwB;YACxB,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YAEpD,uBAAuB;YACvB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAC/C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAEtC,2BAA2B;IAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAC5D,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC7D,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;QACxC,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;QACnD,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,gDAAgD;AAChD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Resource } from '@modelcontextprotocol/sdk/types.js';
2
+ export declare const resourceDefinitions: Resource[];
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAEnE,eAAO,MAAM,mBAAmB,EAAE,QAAQ,EAyGzC,CAAC"}
@@ -0,0 +1,93 @@
1
+ export const resourceDefinitions = [
2
+ {
3
+ uri: 'foundry://world/info',
4
+ name: 'World Information',
5
+ description: 'Current world/campaign information including title, system, and settings',
6
+ mimeType: 'application/json',
7
+ },
8
+ {
9
+ uri: 'foundry://world/actors',
10
+ name: 'All Actors',
11
+ description: 'Complete list of all actors in the world (characters, NPCs, monsters)',
12
+ mimeType: 'application/json',
13
+ },
14
+ {
15
+ uri: 'foundry://world/items',
16
+ name: 'All Items',
17
+ description: 'Complete list of all items, equipment, and spells in the world',
18
+ mimeType: 'application/json',
19
+ },
20
+ {
21
+ uri: 'foundry://world/scenes',
22
+ name: 'All Scenes',
23
+ description: 'List of all scenes/maps in the world',
24
+ mimeType: 'application/json',
25
+ },
26
+ {
27
+ uri: 'foundry://world/journals',
28
+ name: 'Journal Entries',
29
+ description: 'All journal entries, notes, and handouts',
30
+ mimeType: 'application/json',
31
+ },
32
+ {
33
+ uri: 'foundry://world/macros',
34
+ name: 'Macros',
35
+ description: 'Available macros and scripts',
36
+ mimeType: 'application/json',
37
+ },
38
+ {
39
+ uri: 'foundry://scene/current',
40
+ name: 'Current Scene',
41
+ description: 'Information about the currently active scene',
42
+ mimeType: 'application/json',
43
+ },
44
+ {
45
+ uri: 'foundry://combat/current',
46
+ name: 'Current Combat',
47
+ description: 'Active combat encounter state and initiative order',
48
+ mimeType: 'application/json',
49
+ },
50
+ {
51
+ uri: 'foundry://users/online',
52
+ name: 'Online Users',
53
+ description: 'Currently connected users and their status',
54
+ mimeType: 'application/json',
55
+ },
56
+ {
57
+ uri: 'foundry://system/info',
58
+ name: 'Game System',
59
+ description: 'Information about the current game system and its rules',
60
+ mimeType: 'application/json',
61
+ },
62
+ {
63
+ uri: 'foundry://compendium/spells',
64
+ name: 'Spell Compendium',
65
+ description: 'All available spells from compendium packs',
66
+ mimeType: 'application/json',
67
+ },
68
+ {
69
+ uri: 'foundry://compendium/monsters',
70
+ name: 'Monster Compendium',
71
+ description: 'All available monsters and NPCs from compendium packs',
72
+ mimeType: 'application/json',
73
+ },
74
+ {
75
+ uri: 'foundry://compendium/items',
76
+ name: 'Item Compendium',
77
+ description: 'All available items and equipment from compendium packs',
78
+ mimeType: 'application/json',
79
+ },
80
+ {
81
+ uri: 'foundry://playlists/all',
82
+ name: 'Audio Playlists',
83
+ description: 'All available audio playlists and currently playing tracks',
84
+ mimeType: 'application/json',
85
+ },
86
+ {
87
+ uri: 'foundry://settings/game',
88
+ name: 'Game Settings',
89
+ description: 'Current world and system settings configuration',
90
+ mimeType: 'application/json',
91
+ },
92
+ ];
93
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAe;IAC7C;QACE,GAAG,EAAE,sBAAsB;QAC3B,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,0EAA0E;QACvF,QAAQ,EAAE,kBAAkB;KAC7B;IAED;QACE,GAAG,EAAE,wBAAwB;QAC7B,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,uEAAuE;QACpF,QAAQ,EAAE,kBAAkB;KAC7B;IAED;QACE,GAAG,EAAE,uBAAuB;QAC5B,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,gEAAgE;QAC7E,QAAQ,EAAE,kBAAkB;KAC7B;IAED;QACE,GAAG,EAAE,wBAAwB;QAC7B,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,sCAAsC;QACnD,QAAQ,EAAE,kBAAkB;KAC7B;IAED;QACE,GAAG,EAAE,0BAA0B;QAC/B,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE,kBAAkB;KAC7B;IAED;QACE,GAAG,EAAE,wBAAwB;QAC7B,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,8BAA8B;QAC3C,QAAQ,EAAE,kBAAkB;KAC7B;IAED;QACE,GAAG,EAAE,yBAAyB;QAC9B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,8CAA8C;QAC3D,QAAQ,EAAE,kBAAkB;KAC7B;IAED;QACE,GAAG,EAAE,0BAA0B;QAC/B,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,oDAAoD;QACjE,QAAQ,EAAE,kBAAkB;KAC7B;IAED;QACE,GAAG,EAAE,wBAAwB;QAC7B,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,4CAA4C;QACzD,QAAQ,EAAE,kBAAkB;KAC7B;IAED;QACE,GAAG,EAAE,uBAAuB;QAC5B,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,yDAAyD;QACtE,QAAQ,EAAE,kBAAkB;KAC7B;IAED;QACE,GAAG,EAAE,6BAA6B;QAClC,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,4CAA4C;QACzD,QAAQ,EAAE,kBAAkB;KAC7B;IAED;QACE,GAAG,EAAE,+BAA+B;QACpC,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,uDAAuD;QACpE,QAAQ,EAAE,kBAAkB;KAC7B;IAED;QACE,GAAG,EAAE,4BAA4B;QACjC,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,yDAAyD;QACtE,QAAQ,EAAE,kBAAkB;KAC7B;IAED;QACE,GAAG,EAAE,yBAAyB;QAC9B,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,4DAA4D;QACzE,QAAQ,EAAE,kBAAkB;KAC7B;IAED;QACE,GAAG,EAAE,yBAAyB;QAC9B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,iDAAiD;QAC9D,QAAQ,EAAE,kBAAkB;KAC7B;CACF,CAAC"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @fileoverview Base tool interface and implementation
3
+ *
4
+ * This module provides the foundation for the tool system with automatic
5
+ * schema validation and consistent interface design.
6
+ */
7
+ import type { DiagnosticsClient } from '../diagnostics/client.js';
8
+ import type { FoundryClient } from '../foundry/client.js';
9
+ import type { DiagnosticSystem } from '../utils/diagnostics.js';
10
+ /**
11
+ * Tool execution context containing all necessary dependencies
12
+ */
13
+ export interface ToolContext {
14
+ foundryClient: FoundryClient;
15
+ diagnosticsClient?: DiagnosticsClient;
16
+ diagnosticSystem?: DiagnosticSystem;
17
+ }
18
+ /**
19
+ * Tool execution result matching the MCP CallToolResult shape.
20
+ * Uses a structural interface to avoid pulling in zod-inferred literal types
21
+ * while still enforcing the required content array structure.
22
+ */
23
+ export interface ToolResult {
24
+ content: Array<{
25
+ type: string;
26
+ text?: string;
27
+ data?: string;
28
+ mimeType?: string;
29
+ [key: string]: unknown;
30
+ }>;
31
+ isError?: boolean;
32
+ }
33
+ /**
34
+ * Base interface for all tools
35
+ */
36
+ export interface Tool {
37
+ /** Tool name (must match schema name) */
38
+ readonly name: string;
39
+ /** Tool description */
40
+ readonly description: string;
41
+ /** JSON Schema for input validation */
42
+ readonly inputSchema: object;
43
+ /**
44
+ * Execute the tool with validated arguments
45
+ * @param args - Validated input arguments
46
+ * @param context - Tool execution context
47
+ * @returns Tool execution result
48
+ */
49
+ execute(args: Record<string, unknown>, context: ToolContext): Promise<ToolResult>;
50
+ }
51
+ /**
52
+ * Base tool class with automatic validation
53
+ */
54
+ export declare abstract class BaseTool implements Tool {
55
+ private static readonly ajv;
56
+ abstract readonly name: string;
57
+ abstract readonly description: string;
58
+ abstract readonly inputSchema: object;
59
+ /**
60
+ * Execute the tool with automatic validation
61
+ */
62
+ execute(args: Record<string, unknown>, context: ToolContext): Promise<ToolResult>;
63
+ /**
64
+ * Execute the tool with validated arguments (must be implemented by subclasses)
65
+ */
66
+ protected abstract executeValidated(args: Record<string, unknown>, context: ToolContext): Promise<ToolResult>;
67
+ /**
68
+ * Validate arguments against the tool's schema
69
+ */
70
+ private validateArgs;
71
+ /**
72
+ * Helper method to create a text response
73
+ */
74
+ protected createTextResponse(text: string): ToolResult;
75
+ /**
76
+ * Helper method to create an error response
77
+ */
78
+ protected createErrorResponse(error: Error): ToolResult;
79
+ }
80
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/tools/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,aAAa,CAAC;IAC7B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,uBAAuB;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,uCAAuC;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACnF;AAED;;GAEG;AACH,8BAAsB,QAAS,YAAW,IAAI;IAC5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAIxB;IAEH,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAEtC;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAsBvF;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,YAAY;IAoBpB;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAWtD;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU;CAGxD"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @fileoverview Base tool interface and implementation
3
+ *
4
+ * This module provides the foundation for the tool system with automatic
5
+ * schema validation and consistent interface design.
6
+ */
7
+ import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
8
+ import Ajv from 'ajv';
9
+ import { logger } from '../utils/logger.js';
10
+ /**
11
+ * Base tool class with automatic validation
12
+ */
13
+ export class BaseTool {
14
+ static ajv = new Ajv({
15
+ allErrors: true,
16
+ verbose: true,
17
+ strict: true,
18
+ });
19
+ /**
20
+ * Execute the tool with automatic validation
21
+ */
22
+ async execute(args, context) {
23
+ logger.debug(`Executing tool: ${this.name}`, { args });
24
+ // Validate input arguments against schema
25
+ this.validateArgs(args);
26
+ try {
27
+ return await this.executeValidated(args, context);
28
+ }
29
+ catch (error) {
30
+ logger.error(`Tool execution failed: ${this.name}`, error);
31
+ if (error instanceof McpError) {
32
+ throw error;
33
+ }
34
+ throw new McpError(ErrorCode.InternalError, `Tool execution failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
35
+ }
36
+ }
37
+ /**
38
+ * Validate arguments against the tool's schema
39
+ */
40
+ validateArgs(args) {
41
+ const validate = BaseTool.ajv.compile(this.inputSchema);
42
+ const valid = validate(args);
43
+ if (!valid) {
44
+ const errors = validate.errors
45
+ ?.map((err) => {
46
+ const instancePath = err.instancePath || 'root';
47
+ return `${instancePath}: ${err.message}`;
48
+ })
49
+ .join(', ') || 'Unknown validation error';
50
+ throw new McpError(ErrorCode.InvalidParams, `Invalid parameters for tool '${this.name}': ${errors}`);
51
+ }
52
+ }
53
+ /**
54
+ * Helper method to create a text response
55
+ */
56
+ createTextResponse(text) {
57
+ return {
58
+ content: [
59
+ {
60
+ type: 'text',
61
+ text,
62
+ },
63
+ ],
64
+ };
65
+ }
66
+ /**
67
+ * Helper method to create an error response
68
+ */
69
+ createErrorResponse(error) {
70
+ return this.createTextResponse(`❌ **Error**: ${error.message}`);
71
+ }
72
+ }
73
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/tools/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,GAAG,MAAM,KAAK,CAAC;AAItB,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAiD5C;;GAEG;AACH,MAAM,OAAgB,QAAQ;IACpB,MAAM,CAAU,GAAG,GAAG,IAAI,GAAG,CAAC;QACpC,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IAMH;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,IAA6B,EAAE,OAAoB;QAC/D,MAAM,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvD,0CAA0C;QAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAExB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,0BAA0B,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;YAE3D,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;gBAC9B,MAAM,KAAK,CAAC;YACd,CAAC;YAED,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,aAAa,EACvB,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACrF,CAAC;QACJ,CAAC;IACH,CAAC;IAUD;;OAEG;IACK,YAAY,CAAC,IAA6B;QAChD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,MAAM,GACV,QAAQ,CAAC,MAAM;gBACb,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACZ,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC;gBAChD,OAAO,GAAG,YAAY,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;YAC3C,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,IAAI,0BAA0B,CAAC;YAE9C,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,aAAa,EACvB,gCAAgC,IAAI,CAAC,IAAI,MAAM,MAAM,EAAE,CACxD,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACO,kBAAkB,CAAC,IAAY;QACvC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI;iBACL;aACF;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,mBAAmB,CAAC,KAAY;QACxC,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC"}