@cyanheads/mcp-ts-core 0.1.0-beta.12

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 (485) hide show
  1. package/CLAUDE.md +583 -0
  2. package/LICENSE +201 -0
  3. package/README.md +287 -0
  4. package/biome.json +103 -0
  5. package/dist/app.d.ts +82 -0
  6. package/dist/app.d.ts.map +1 -0
  7. package/dist/app.js +222 -0
  8. package/dist/app.js.map +1 -0
  9. package/dist/cli/init.d.ts +8 -0
  10. package/dist/cli/init.d.ts.map +1 -0
  11. package/dist/cli/init.js +161 -0
  12. package/dist/cli/init.js.map +1 -0
  13. package/dist/config/index.d.ts +349 -0
  14. package/dist/config/index.d.ts.map +1 -0
  15. package/dist/config/index.js +464 -0
  16. package/dist/config/index.js.map +1 -0
  17. package/dist/context.d.ts +119 -0
  18. package/dist/context.d.ts.map +1 -0
  19. package/dist/context.js +144 -0
  20. package/dist/context.js.map +1 -0
  21. package/dist/index.d.ts +8 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +9 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/mcp-server/prompts/prompt-registration.d.ts +33 -0
  26. package/dist/mcp-server/prompts/prompt-registration.d.ts.map +1 -0
  27. package/dist/mcp-server/prompts/prompt-registration.js +91 -0
  28. package/dist/mcp-server/prompts/prompt-registration.js.map +1 -0
  29. package/dist/mcp-server/prompts/utils/newPromptDefinition.d.ts +49 -0
  30. package/dist/mcp-server/prompts/utils/newPromptDefinition.d.ts.map +1 -0
  31. package/dist/mcp-server/prompts/utils/newPromptDefinition.js +39 -0
  32. package/dist/mcp-server/prompts/utils/newPromptDefinition.js.map +1 -0
  33. package/dist/mcp-server/prompts/utils/promptDefinition.d.ts +37 -0
  34. package/dist/mcp-server/prompts/utils/promptDefinition.d.ts.map +1 -0
  35. package/dist/mcp-server/prompts/utils/promptDefinition.js +2 -0
  36. package/dist/mcp-server/prompts/utils/promptDefinition.js.map +1 -0
  37. package/dist/mcp-server/resources/resource-registration.d.ts +27 -0
  38. package/dist/mcp-server/resources/resource-registration.d.ts.map +1 -0
  39. package/dist/mcp-server/resources/resource-registration.js +85 -0
  40. package/dist/mcp-server/resources/resource-registration.js.map +1 -0
  41. package/dist/mcp-server/resources/utils/newResourceDefinition.d.ts +84 -0
  42. package/dist/mcp-server/resources/utils/newResourceDefinition.d.ts.map +1 -0
  43. package/dist/mcp-server/resources/utils/newResourceDefinition.js +40 -0
  44. package/dist/mcp-server/resources/utils/newResourceDefinition.js.map +1 -0
  45. package/dist/mcp-server/resources/utils/newResourceHandlerFactory.d.ts +32 -0
  46. package/dist/mcp-server/resources/utils/newResourceHandlerFactory.d.ts.map +1 -0
  47. package/dist/mcp-server/resources/utils/newResourceHandlerFactory.js +103 -0
  48. package/dist/mcp-server/resources/utils/newResourceHandlerFactory.js.map +1 -0
  49. package/dist/mcp-server/resources/utils/resourceDefinition.d.ts +94 -0
  50. package/dist/mcp-server/resources/utils/resourceDefinition.d.ts.map +1 -0
  51. package/dist/mcp-server/resources/utils/resourceDefinition.js +2 -0
  52. package/dist/mcp-server/resources/utils/resourceDefinition.js.map +1 -0
  53. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts +14 -0
  54. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -0
  55. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +111 -0
  56. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -0
  57. package/dist/mcp-server/roots/roots-registration.d.ts +22 -0
  58. package/dist/mcp-server/roots/roots-registration.d.ts.map +1 -0
  59. package/dist/mcp-server/roots/roots-registration.js +25 -0
  60. package/dist/mcp-server/roots/roots-registration.js.map +1 -0
  61. package/dist/mcp-server/server.d.ts +34 -0
  62. package/dist/mcp-server/server.d.ts.map +1 -0
  63. package/dist/mcp-server/server.js +62 -0
  64. package/dist/mcp-server/server.js.map +1 -0
  65. package/dist/mcp-server/tasks/core/sessionAwareTaskStore.d.ts +42 -0
  66. package/dist/mcp-server/tasks/core/sessionAwareTaskStore.d.ts.map +1 -0
  67. package/dist/mcp-server/tasks/core/sessionAwareTaskStore.js +70 -0
  68. package/dist/mcp-server/tasks/core/sessionAwareTaskStore.js.map +1 -0
  69. package/dist/mcp-server/tasks/core/storageBackedTaskStore.d.ts +109 -0
  70. package/dist/mcp-server/tasks/core/storageBackedTaskStore.d.ts.map +1 -0
  71. package/dist/mcp-server/tasks/core/storageBackedTaskStore.js +209 -0
  72. package/dist/mcp-server/tasks/core/storageBackedTaskStore.js.map +1 -0
  73. package/dist/mcp-server/tasks/core/taskManager.d.ts +103 -0
  74. package/dist/mcp-server/tasks/core/taskManager.d.ts.map +1 -0
  75. package/dist/mcp-server/tasks/core/taskManager.js +144 -0
  76. package/dist/mcp-server/tasks/core/taskManager.js.map +1 -0
  77. package/dist/mcp-server/tasks/core/taskTypes.d.ts +11 -0
  78. package/dist/mcp-server/tasks/core/taskTypes.d.ts.map +1 -0
  79. package/dist/mcp-server/tasks/core/taskTypes.js +13 -0
  80. package/dist/mcp-server/tasks/core/taskTypes.js.map +1 -0
  81. package/dist/mcp-server/tasks/utils/taskToolDefinition.d.ts +108 -0
  82. package/dist/mcp-server/tasks/utils/taskToolDefinition.d.ts.map +1 -0
  83. package/dist/mcp-server/tasks/utils/taskToolDefinition.js +14 -0
  84. package/dist/mcp-server/tasks/utils/taskToolDefinition.js.map +1 -0
  85. package/dist/mcp-server/tools/tool-registration.d.ts +49 -0
  86. package/dist/mcp-server/tools/tool-registration.d.ts.map +1 -0
  87. package/dist/mcp-server/tools/tool-registration.js +269 -0
  88. package/dist/mcp-server/tools/tool-registration.js.map +1 -0
  89. package/dist/mcp-server/tools/utils/newToolDefinition.d.ts +73 -0
  90. package/dist/mcp-server/tools/utils/newToolDefinition.d.ts.map +1 -0
  91. package/dist/mcp-server/tools/utils/newToolDefinition.js +45 -0
  92. package/dist/mcp-server/tools/utils/newToolDefinition.js.map +1 -0
  93. package/dist/mcp-server/tools/utils/newToolHandlerFactory.d.ts +33 -0
  94. package/dist/mcp-server/tools/utils/newToolHandlerFactory.d.ts.map +1 -0
  95. package/dist/mcp-server/tools/utils/newToolHandlerFactory.js +107 -0
  96. package/dist/mcp-server/tools/utils/newToolHandlerFactory.js.map +1 -0
  97. package/dist/mcp-server/tools/utils/toolDefinition.d.ts +118 -0
  98. package/dist/mcp-server/tools/utils/toolDefinition.d.ts.map +1 -0
  99. package/dist/mcp-server/tools/utils/toolDefinition.js +2 -0
  100. package/dist/mcp-server/tools/utils/toolDefinition.js.map +1 -0
  101. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +34 -0
  102. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -0
  103. package/dist/mcp-server/tools/utils/toolHandlerFactory.js +68 -0
  104. package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -0
  105. package/dist/mcp-server/transports/ITransport.d.ts +15 -0
  106. package/dist/mcp-server/transports/ITransport.d.ts.map +1 -0
  107. package/dist/mcp-server/transports/ITransport.js +2 -0
  108. package/dist/mcp-server/transports/ITransport.js.map +1 -0
  109. package/dist/mcp-server/transports/auth/authFactory.d.ts +11 -0
  110. package/dist/mcp-server/transports/auth/authFactory.d.ts.map +1 -0
  111. package/dist/mcp-server/transports/auth/authFactory.js +43 -0
  112. package/dist/mcp-server/transports/auth/authFactory.js.map +1 -0
  113. package/dist/mcp-server/transports/auth/authMiddleware.d.ts +24 -0
  114. package/dist/mcp-server/transports/auth/authMiddleware.d.ts.map +1 -0
  115. package/dist/mcp-server/transports/auth/authMiddleware.js +69 -0
  116. package/dist/mcp-server/transports/auth/authMiddleware.js.map +1 -0
  117. package/dist/mcp-server/transports/auth/lib/authContext.d.ts +34 -0
  118. package/dist/mcp-server/transports/auth/lib/authContext.d.ts.map +1 -0
  119. package/dist/mcp-server/transports/auth/lib/authContext.js +25 -0
  120. package/dist/mcp-server/transports/auth/lib/authContext.js.map +1 -0
  121. package/dist/mcp-server/transports/auth/lib/authTypes.d.ts +19 -0
  122. package/dist/mcp-server/transports/auth/lib/authTypes.d.ts.map +1 -0
  123. package/dist/mcp-server/transports/auth/lib/authTypes.js +2 -0
  124. package/dist/mcp-server/transports/auth/lib/authTypes.js.map +1 -0
  125. package/dist/mcp-server/transports/auth/lib/authUtils.d.ts +18 -0
  126. package/dist/mcp-server/transports/auth/lib/authUtils.d.ts.map +1 -0
  127. package/dist/mcp-server/transports/auth/lib/authUtils.js +64 -0
  128. package/dist/mcp-server/transports/auth/lib/authUtils.js.map +1 -0
  129. package/dist/mcp-server/transports/auth/lib/checkScopes.d.ts +25 -0
  130. package/dist/mcp-server/transports/auth/lib/checkScopes.d.ts.map +1 -0
  131. package/dist/mcp-server/transports/auth/lib/checkScopes.js +34 -0
  132. package/dist/mcp-server/transports/auth/lib/checkScopes.js.map +1 -0
  133. package/dist/mcp-server/transports/auth/lib/claimParser.d.ts +34 -0
  134. package/dist/mcp-server/transports/auth/lib/claimParser.d.ts.map +1 -0
  135. package/dist/mcp-server/transports/auth/lib/claimParser.js +58 -0
  136. package/dist/mcp-server/transports/auth/lib/claimParser.js.map +1 -0
  137. package/dist/mcp-server/transports/auth/lib/withAuth.d.ts +25 -0
  138. package/dist/mcp-server/transports/auth/lib/withAuth.d.ts.map +1 -0
  139. package/dist/mcp-server/transports/auth/lib/withAuth.js +30 -0
  140. package/dist/mcp-server/transports/auth/lib/withAuth.js.map +1 -0
  141. package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts +18 -0
  142. package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts.map +1 -0
  143. package/dist/mcp-server/transports/auth/strategies/authStrategy.js +2 -0
  144. package/dist/mcp-server/transports/auth/strategies/authStrategy.js.map +1 -0
  145. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts +14 -0
  146. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts.map +1 -0
  147. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js +86 -0
  148. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js.map +1 -0
  149. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts +14 -0
  150. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts.map +1 -0
  151. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js +113 -0
  152. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js.map +1 -0
  153. package/dist/mcp-server/transports/http/httpErrorHandler.d.ts +25 -0
  154. package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -0
  155. package/dist/mcp-server/transports/http/httpErrorHandler.js +112 -0
  156. package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -0
  157. package/dist/mcp-server/transports/http/httpTransport.d.ts +47 -0
  158. package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -0
  159. package/dist/mcp-server/transports/http/httpTransport.js +396 -0
  160. package/dist/mcp-server/transports/http/httpTransport.js.map +1 -0
  161. package/dist/mcp-server/transports/http/httpTypes.d.ts +17 -0
  162. package/dist/mcp-server/transports/http/httpTypes.d.ts.map +1 -0
  163. package/dist/mcp-server/transports/http/httpTypes.js +2 -0
  164. package/dist/mcp-server/transports/http/httpTypes.js.map +1 -0
  165. package/dist/mcp-server/transports/http/protectedResourceMetadata.d.ts +21 -0
  166. package/dist/mcp-server/transports/http/protectedResourceMetadata.d.ts.map +1 -0
  167. package/dist/mcp-server/transports/http/protectedResourceMetadata.js +44 -0
  168. package/dist/mcp-server/transports/http/protectedResourceMetadata.js.map +1 -0
  169. package/dist/mcp-server/transports/http/sessionIdUtils.d.ts +33 -0
  170. package/dist/mcp-server/transports/http/sessionIdUtils.d.ts.map +1 -0
  171. package/dist/mcp-server/transports/http/sessionIdUtils.js +54 -0
  172. package/dist/mcp-server/transports/http/sessionIdUtils.js.map +1 -0
  173. package/dist/mcp-server/transports/http/sessionStore.d.ts +87 -0
  174. package/dist/mcp-server/transports/http/sessionStore.d.ts.map +1 -0
  175. package/dist/mcp-server/transports/http/sessionStore.js +209 -0
  176. package/dist/mcp-server/transports/http/sessionStore.js.map +1 -0
  177. package/dist/mcp-server/transports/manager.d.ts +22 -0
  178. package/dist/mcp-server/transports/manager.d.ts.map +1 -0
  179. package/dist/mcp-server/transports/manager.js +62 -0
  180. package/dist/mcp-server/transports/manager.js.map +1 -0
  181. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts +44 -0
  182. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts.map +1 -0
  183. package/dist/mcp-server/transports/stdio/stdioTransport.js +63 -0
  184. package/dist/mcp-server/transports/stdio/stdioTransport.js.map +1 -0
  185. package/dist/services/graph/core/GraphService.d.ts +205 -0
  186. package/dist/services/graph/core/GraphService.d.ts.map +1 -0
  187. package/dist/services/graph/core/GraphService.js +231 -0
  188. package/dist/services/graph/core/GraphService.js.map +1 -0
  189. package/dist/services/graph/core/IGraphProvider.d.ts +295 -0
  190. package/dist/services/graph/core/IGraphProvider.d.ts.map +1 -0
  191. package/dist/services/graph/core/IGraphProvider.js +8 -0
  192. package/dist/services/graph/core/IGraphProvider.js.map +1 -0
  193. package/dist/services/graph/types.d.ts +107 -0
  194. package/dist/services/graph/types.d.ts.map +1 -0
  195. package/dist/services/graph/types.js +8 -0
  196. package/dist/services/graph/types.js.map +1 -0
  197. package/dist/services/llm/core/ILlmProvider.d.ts +86 -0
  198. package/dist/services/llm/core/ILlmProvider.d.ts.map +1 -0
  199. package/dist/services/llm/core/ILlmProvider.js +2 -0
  200. package/dist/services/llm/core/ILlmProvider.js.map +1 -0
  201. package/dist/services/llm/providers/openrouter.provider.d.ts +187 -0
  202. package/dist/services/llm/providers/openrouter.provider.d.ts.map +1 -0
  203. package/dist/services/llm/providers/openrouter.provider.js +302 -0
  204. package/dist/services/llm/providers/openrouter.provider.js.map +1 -0
  205. package/dist/services/llm/types.d.ts +16 -0
  206. package/dist/services/llm/types.d.ts.map +1 -0
  207. package/dist/services/llm/types.js +9 -0
  208. package/dist/services/llm/types.js.map +1 -0
  209. package/dist/services/speech/core/ISpeechProvider.d.ts +92 -0
  210. package/dist/services/speech/core/ISpeechProvider.d.ts.map +1 -0
  211. package/dist/services/speech/core/ISpeechProvider.js +34 -0
  212. package/dist/services/speech/core/ISpeechProvider.js.map +1 -0
  213. package/dist/services/speech/core/SpeechService.d.ts +87 -0
  214. package/dist/services/speech/core/SpeechService.d.ts.map +1 -0
  215. package/dist/services/speech/core/SpeechService.js +135 -0
  216. package/dist/services/speech/core/SpeechService.js.map +1 -0
  217. package/dist/services/speech/providers/elevenlabs.provider.d.ts +77 -0
  218. package/dist/services/speech/providers/elevenlabs.provider.d.ts.map +1 -0
  219. package/dist/services/speech/providers/elevenlabs.provider.js +199 -0
  220. package/dist/services/speech/providers/elevenlabs.provider.js.map +1 -0
  221. package/dist/services/speech/providers/whisper.provider.d.ts +94 -0
  222. package/dist/services/speech/providers/whisper.provider.d.ts.map +1 -0
  223. package/dist/services/speech/providers/whisper.provider.js +240 -0
  224. package/dist/services/speech/providers/whisper.provider.js.map +1 -0
  225. package/dist/services/speech/types.d.ts +173 -0
  226. package/dist/services/speech/types.d.ts.map +1 -0
  227. package/dist/services/speech/types.js +8 -0
  228. package/dist/services/speech/types.js.map +1 -0
  229. package/dist/storage/core/IStorageProvider.d.ts +159 -0
  230. package/dist/storage/core/IStorageProvider.d.ts.map +1 -0
  231. package/dist/storage/core/IStorageProvider.js +2 -0
  232. package/dist/storage/core/IStorageProvider.js.map +1 -0
  233. package/dist/storage/core/StorageService.d.ts +22 -0
  234. package/dist/storage/core/StorageService.d.ts.map +1 -0
  235. package/dist/storage/core/StorageService.js +151 -0
  236. package/dist/storage/core/StorageService.js.map +1 -0
  237. package/dist/storage/core/storageFactory.d.ts +66 -0
  238. package/dist/storage/core/storageFactory.d.ts.map +1 -0
  239. package/dist/storage/core/storageFactory.js +122 -0
  240. package/dist/storage/core/storageFactory.js.map +1 -0
  241. package/dist/storage/core/storageValidation.d.ts +77 -0
  242. package/dist/storage/core/storageValidation.d.ts.map +1 -0
  243. package/dist/storage/core/storageValidation.js +303 -0
  244. package/dist/storage/core/storageValidation.js.map +1 -0
  245. package/dist/storage/providers/cloudflare/d1Provider.d.ts +94 -0
  246. package/dist/storage/providers/cloudflare/d1Provider.d.ts.map +1 -0
  247. package/dist/storage/providers/cloudflare/d1Provider.js +347 -0
  248. package/dist/storage/providers/cloudflare/d1Provider.js.map +1 -0
  249. package/dist/storage/providers/cloudflare/kvProvider.d.ts +21 -0
  250. package/dist/storage/providers/cloudflare/kvProvider.d.ts.map +1 -0
  251. package/dist/storage/providers/cloudflare/kvProvider.js +183 -0
  252. package/dist/storage/providers/cloudflare/kvProvider.js.map +1 -0
  253. package/dist/storage/providers/cloudflare/r2Provider.d.ts +28 -0
  254. package/dist/storage/providers/cloudflare/r2Provider.d.ts.map +1 -0
  255. package/dist/storage/providers/cloudflare/r2Provider.js +222 -0
  256. package/dist/storage/providers/cloudflare/r2Provider.js.map +1 -0
  257. package/dist/storage/providers/fileSystem/fileSystemProvider.d.ts +20 -0
  258. package/dist/storage/providers/fileSystem/fileSystemProvider.d.ts.map +1 -0
  259. package/dist/storage/providers/fileSystem/fileSystemProvider.js +282 -0
  260. package/dist/storage/providers/fileSystem/fileSystemProvider.js.map +1 -0
  261. package/dist/storage/providers/inMemory/inMemoryProvider.d.ts +21 -0
  262. package/dist/storage/providers/inMemory/inMemoryProvider.d.ts.map +1 -0
  263. package/dist/storage/providers/inMemory/inMemoryProvider.js +139 -0
  264. package/dist/storage/providers/inMemory/inMemoryProvider.js.map +1 -0
  265. package/dist/storage/providers/supabase/supabase.types.d.ts +49 -0
  266. package/dist/storage/providers/supabase/supabase.types.d.ts.map +1 -0
  267. package/dist/storage/providers/supabase/supabase.types.js +8 -0
  268. package/dist/storage/providers/supabase/supabase.types.js.map +1 -0
  269. package/dist/storage/providers/supabase/supabaseProvider.d.ts +24 -0
  270. package/dist/storage/providers/supabase/supabaseProvider.d.ts.map +1 -0
  271. package/dist/storage/providers/supabase/supabaseProvider.js +209 -0
  272. package/dist/storage/providers/supabase/supabaseProvider.js.map +1 -0
  273. package/dist/testing/index.d.ts +53 -0
  274. package/dist/testing/index.d.ts.map +1 -0
  275. package/dist/testing/index.js +132 -0
  276. package/dist/testing/index.js.map +1 -0
  277. package/dist/types-global/errors.d.ts +83 -0
  278. package/dist/types-global/errors.d.ts.map +1 -0
  279. package/dist/types-global/errors.js +113 -0
  280. package/dist/types-global/errors.js.map +1 -0
  281. package/dist/utils/formatting/diffFormatter.d.ts +227 -0
  282. package/dist/utils/formatting/diffFormatter.d.ts.map +1 -0
  283. package/dist/utils/formatting/diffFormatter.js +369 -0
  284. package/dist/utils/formatting/diffFormatter.js.map +1 -0
  285. package/dist/utils/formatting/index.d.ts +9 -0
  286. package/dist/utils/formatting/index.d.ts.map +1 -0
  287. package/dist/utils/formatting/index.js +9 -0
  288. package/dist/utils/formatting/index.js.map +1 -0
  289. package/dist/utils/formatting/markdownBuilder.d.ts +543 -0
  290. package/dist/utils/formatting/markdownBuilder.d.ts.map +1 -0
  291. package/dist/utils/formatting/markdownBuilder.js +674 -0
  292. package/dist/utils/formatting/markdownBuilder.js.map +1 -0
  293. package/dist/utils/formatting/tableFormatter.d.ts +261 -0
  294. package/dist/utils/formatting/tableFormatter.d.ts.map +1 -0
  295. package/dist/utils/formatting/tableFormatter.js +456 -0
  296. package/dist/utils/formatting/tableFormatter.js.map +1 -0
  297. package/dist/utils/formatting/treeFormatter.d.ts +344 -0
  298. package/dist/utils/formatting/treeFormatter.d.ts.map +1 -0
  299. package/dist/utils/formatting/treeFormatter.js +400 -0
  300. package/dist/utils/formatting/treeFormatter.js.map +1 -0
  301. package/dist/utils/internal/encoding.d.ts +42 -0
  302. package/dist/utils/internal/encoding.d.ts.map +1 -0
  303. package/dist/utils/internal/encoding.js +87 -0
  304. package/dist/utils/internal/encoding.js.map +1 -0
  305. package/dist/utils/internal/error-handler/errorHandler.d.ts +140 -0
  306. package/dist/utils/internal/error-handler/errorHandler.d.ts.map +1 -0
  307. package/dist/utils/internal/error-handler/errorHandler.js +318 -0
  308. package/dist/utils/internal/error-handler/errorHandler.js.map +1 -0
  309. package/dist/utils/internal/error-handler/helpers.d.ts +98 -0
  310. package/dist/utils/internal/error-handler/helpers.d.ts.map +1 -0
  311. package/dist/utils/internal/error-handler/helpers.js +214 -0
  312. package/dist/utils/internal/error-handler/helpers.js.map +1 -0
  313. package/dist/utils/internal/error-handler/mappings.d.ts +85 -0
  314. package/dist/utils/internal/error-handler/mappings.d.ts.map +1 -0
  315. package/dist/utils/internal/error-handler/mappings.js +234 -0
  316. package/dist/utils/internal/error-handler/mappings.js.map +1 -0
  317. package/dist/utils/internal/error-handler/types.d.ts +160 -0
  318. package/dist/utils/internal/error-handler/types.d.ts.map +1 -0
  319. package/dist/utils/internal/error-handler/types.js +6 -0
  320. package/dist/utils/internal/error-handler/types.js.map +1 -0
  321. package/dist/utils/internal/health.d.ts +60 -0
  322. package/dist/utils/internal/health.d.ts.map +1 -0
  323. package/dist/utils/internal/health.js +46 -0
  324. package/dist/utils/internal/health.js.map +1 -0
  325. package/dist/utils/internal/logger.d.ts +300 -0
  326. package/dist/utils/internal/logger.d.ts.map +1 -0
  327. package/dist/utils/internal/logger.js +573 -0
  328. package/dist/utils/internal/logger.js.map +1 -0
  329. package/dist/utils/internal/performance.d.ts +78 -0
  330. package/dist/utils/internal/performance.d.ts.map +1 -0
  331. package/dist/utils/internal/performance.js +227 -0
  332. package/dist/utils/internal/performance.js.map +1 -0
  333. package/dist/utils/internal/requestContext.d.ts +200 -0
  334. package/dist/utils/internal/requestContext.d.ts.map +1 -0
  335. package/dist/utils/internal/requestContext.js +163 -0
  336. package/dist/utils/internal/requestContext.js.map +1 -0
  337. package/dist/utils/internal/runtime.d.ts +49 -0
  338. package/dist/utils/internal/runtime.d.ts.map +1 -0
  339. package/dist/utils/internal/runtime.js +90 -0
  340. package/dist/utils/internal/runtime.js.map +1 -0
  341. package/dist/utils/internal/startupBanner.d.ts +23 -0
  342. package/dist/utils/internal/startupBanner.d.ts.map +1 -0
  343. package/dist/utils/internal/startupBanner.js +34 -0
  344. package/dist/utils/internal/startupBanner.js.map +1 -0
  345. package/dist/utils/metrics/tokenCounter.d.ts +97 -0
  346. package/dist/utils/metrics/tokenCounter.d.ts.map +1 -0
  347. package/dist/utils/metrics/tokenCounter.js +162 -0
  348. package/dist/utils/metrics/tokenCounter.js.map +1 -0
  349. package/dist/utils/network/fetchWithTimeout.d.ts +91 -0
  350. package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -0
  351. package/dist/utils/network/fetchWithTimeout.js +305 -0
  352. package/dist/utils/network/fetchWithTimeout.js.map +1 -0
  353. package/dist/utils/pagination/pagination.d.ts +157 -0
  354. package/dist/utils/pagination/pagination.d.ts.map +1 -0
  355. package/dist/utils/pagination/pagination.js +191 -0
  356. package/dist/utils/pagination/pagination.js.map +1 -0
  357. package/dist/utils/parsing/csvParser.d.ts +84 -0
  358. package/dist/utils/parsing/csvParser.d.ts.map +1 -0
  359. package/dist/utils/parsing/csvParser.js +132 -0
  360. package/dist/utils/parsing/csvParser.js.map +1 -0
  361. package/dist/utils/parsing/dateParser.d.ts +103 -0
  362. package/dist/utils/parsing/dateParser.d.ts.map +1 -0
  363. package/dist/utils/parsing/dateParser.js +142 -0
  364. package/dist/utils/parsing/dateParser.js.map +1 -0
  365. package/dist/utils/parsing/frontmatterParser.d.ts +91 -0
  366. package/dist/utils/parsing/frontmatterParser.d.ts.map +1 -0
  367. package/dist/utils/parsing/frontmatterParser.js +163 -0
  368. package/dist/utils/parsing/frontmatterParser.js.map +1 -0
  369. package/dist/utils/parsing/index.d.ts +15 -0
  370. package/dist/utils/parsing/index.d.ts.map +1 -0
  371. package/dist/utils/parsing/index.js +15 -0
  372. package/dist/utils/parsing/index.js.map +1 -0
  373. package/dist/utils/parsing/jsonParser.d.ts +115 -0
  374. package/dist/utils/parsing/jsonParser.d.ts.map +1 -0
  375. package/dist/utils/parsing/jsonParser.js +177 -0
  376. package/dist/utils/parsing/jsonParser.js.map +1 -0
  377. package/dist/utils/parsing/pdfParser.d.ts +563 -0
  378. package/dist/utils/parsing/pdfParser.d.ts.map +1 -0
  379. package/dist/utils/parsing/pdfParser.js +775 -0
  380. package/dist/utils/parsing/pdfParser.js.map +1 -0
  381. package/dist/utils/parsing/thinkBlock.d.ts +31 -0
  382. package/dist/utils/parsing/thinkBlock.d.ts.map +1 -0
  383. package/dist/utils/parsing/thinkBlock.js +31 -0
  384. package/dist/utils/parsing/thinkBlock.js.map +1 -0
  385. package/dist/utils/parsing/xmlParser.d.ts +69 -0
  386. package/dist/utils/parsing/xmlParser.d.ts.map +1 -0
  387. package/dist/utils/parsing/xmlParser.js +140 -0
  388. package/dist/utils/parsing/xmlParser.js.map +1 -0
  389. package/dist/utils/parsing/yamlParser.d.ts +64 -0
  390. package/dist/utils/parsing/yamlParser.d.ts.map +1 -0
  391. package/dist/utils/parsing/yamlParser.js +129 -0
  392. package/dist/utils/parsing/yamlParser.js.map +1 -0
  393. package/dist/utils/scheduling/scheduler.d.ts +174 -0
  394. package/dist/utils/scheduling/scheduler.d.ts.map +1 -0
  395. package/dist/utils/scheduling/scheduler.js +248 -0
  396. package/dist/utils/scheduling/scheduler.js.map +1 -0
  397. package/dist/utils/security/idGenerator.d.ts +189 -0
  398. package/dist/utils/security/idGenerator.d.ts.map +1 -0
  399. package/dist/utils/security/idGenerator.js +301 -0
  400. package/dist/utils/security/idGenerator.js.map +1 -0
  401. package/dist/utils/security/index.d.ts +8 -0
  402. package/dist/utils/security/index.d.ts.map +1 -0
  403. package/dist/utils/security/index.js +8 -0
  404. package/dist/utils/security/index.js.map +1 -0
  405. package/dist/utils/security/rateLimiter.d.ts +171 -0
  406. package/dist/utils/security/rateLimiter.d.ts.map +1 -0
  407. package/dist/utils/security/rateLimiter.js +294 -0
  408. package/dist/utils/security/rateLimiter.js.map +1 -0
  409. package/dist/utils/security/sanitization.d.ts +430 -0
  410. package/dist/utils/security/sanitization.d.ts.map +1 -0
  411. package/dist/utils/security/sanitization.js +759 -0
  412. package/dist/utils/security/sanitization.js.map +1 -0
  413. package/dist/utils/telemetry/index.d.ts +12 -0
  414. package/dist/utils/telemetry/index.d.ts.map +1 -0
  415. package/dist/utils/telemetry/index.js +12 -0
  416. package/dist/utils/telemetry/index.js.map +1 -0
  417. package/dist/utils/telemetry/instrumentation.d.ts +62 -0
  418. package/dist/utils/telemetry/instrumentation.d.ts.map +1 -0
  419. package/dist/utils/telemetry/instrumentation.js +223 -0
  420. package/dist/utils/telemetry/instrumentation.js.map +1 -0
  421. package/dist/utils/telemetry/metrics.d.ts +170 -0
  422. package/dist/utils/telemetry/metrics.d.ts.map +1 -0
  423. package/dist/utils/telemetry/metrics.js +205 -0
  424. package/dist/utils/telemetry/metrics.js.map +1 -0
  425. package/dist/utils/telemetry/semconv.d.ts +147 -0
  426. package/dist/utils/telemetry/semconv.d.ts.map +1 -0
  427. package/dist/utils/telemetry/semconv.js +159 -0
  428. package/dist/utils/telemetry/semconv.js.map +1 -0
  429. package/dist/utils/telemetry/trace.d.ts +141 -0
  430. package/dist/utils/telemetry/trace.d.ts.map +1 -0
  431. package/dist/utils/telemetry/trace.js +193 -0
  432. package/dist/utils/telemetry/trace.js.map +1 -0
  433. package/dist/utils/types/guards.d.ts +209 -0
  434. package/dist/utils/types/guards.d.ts.map +1 -0
  435. package/dist/utils/types/guards.js +229 -0
  436. package/dist/utils/types/guards.js.map +1 -0
  437. package/dist/utils/types/index.d.ts +6 -0
  438. package/dist/utils/types/index.d.ts.map +1 -0
  439. package/dist/utils/types/index.js +6 -0
  440. package/dist/utils/types/index.js.map +1 -0
  441. package/dist/worker.d.ts +59 -0
  442. package/dist/worker.d.ts.map +1 -0
  443. package/dist/worker.js +216 -0
  444. package/dist/worker.js.map +1 -0
  445. package/package.json +377 -0
  446. package/skills/README.md +38 -0
  447. package/skills/add-export/SKILL.md +49 -0
  448. package/skills/add-prompt/SKILL.md +97 -0
  449. package/skills/add-provider/SKILL.md +53 -0
  450. package/skills/add-resource/SKILL.md +107 -0
  451. package/skills/add-service/SKILL.md +113 -0
  452. package/skills/add-tool/SKILL.md +110 -0
  453. package/skills/api-auth/SKILL.md +173 -0
  454. package/skills/api-config/SKILL.md +68 -0
  455. package/skills/api-context/SKILL.md +321 -0
  456. package/skills/api-errors/SKILL.md +146 -0
  457. package/skills/api-services/SKILL.md +24 -0
  458. package/skills/api-services/references/graph.md +124 -0
  459. package/skills/api-services/references/llm.md +46 -0
  460. package/skills/api-services/references/speech.md +72 -0
  461. package/skills/api-testing/SKILL.md +263 -0
  462. package/skills/api-utils/SKILL.md +106 -0
  463. package/skills/api-utils/references/formatting.md +237 -0
  464. package/skills/api-utils/references/parsing.md +263 -0
  465. package/skills/api-utils/references/security.md +226 -0
  466. package/skills/api-workers/SKILL.md +165 -0
  467. package/skills/devcheck/SKILL.md +31 -0
  468. package/skills/maintenance/SKILL.md +52 -0
  469. package/skills/migrate-mcp-ts-template/SKILL.md +131 -0
  470. package/skills/release/SKILL.md +67 -0
  471. package/skills/setup/SKILL.md +89 -0
  472. package/skills/walkthrough-init/SKILL.md +50 -0
  473. package/templates/.env.example +17 -0
  474. package/templates/AGENTS.md +113 -0
  475. package/templates/CLAUDE.md +113 -0
  476. package/templates/_tsconfig.json +33 -0
  477. package/templates/biome.template.json +43 -0
  478. package/templates/package.json +26 -0
  479. package/templates/src/index.ts +16 -0
  480. package/templates/src/mcp-server/prompts/definitions/echo.prompt.ts +19 -0
  481. package/templates/src/mcp-server/resources/definitions/echo.resource.ts +30 -0
  482. package/templates/src/mcp-server/tools/definitions/echo.tool.ts +24 -0
  483. package/templates/vitest.config.ts +12 -0
  484. package/tsconfig.base.json +44 -0
  485. package/vitest.config.base.ts +38 -0
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: maintenance
3
+ description: >
4
+ Sync skills and dependencies after package updates. Use after running `bun update @cyanheads/mcp-ts-core` to ensure project skills and agent skill directories are up to date, or periodically to check for drift.
5
+ metadata:
6
+ author: cyanheads
7
+ version: "1.0"
8
+ audience: external
9
+ type: workflow
10
+ ---
11
+
12
+ ## Context
13
+
14
+ Skills flow through three tiers:
15
+
16
+ 1. **Package** — `node_modules/@cyanheads/mcp-ts-core/skills/` (canonical source)
17
+ 2. **Project** — `skills/` at project root (source of truth for this project)
18
+ 3. **Agent** — your agent skill directory (e.g., `.claude/skills/`)
19
+
20
+ After `bun update @cyanheads/mcp-ts-core`, Tier 1 may have newer skills than Tier 2 And Tier 3 may be out of sync with Tier 2 at any time.
21
+
22
+ ## Steps
23
+
24
+ ### Sync project skills (Tier 1 → Tier 2)
25
+
26
+ 1. List all skill directories in `node_modules/@cyanheads/mcp-ts-core/skills/`
27
+ 2. For each skill with `metadata.audience: external` in its `SKILL.md` frontmatter:
28
+ - If the skill does not exist in project `skills/`, copy the full directory
29
+ - If it exists, compare `metadata.version` — if the package version is newer, replace the full directory
30
+ - If the local version is equal or newer, skip (local override)
31
+ 3. Do not touch skills in `skills/` that don't exist in the package (server-specific)
32
+
33
+ ### Sync agent skills (Tier 2 → Tier 3)
34
+
35
+ 1. Compare your agent skill directory against project `skills/`
36
+ 2. Copy any missing skills from `skills/` to your agent directory
37
+ 3. For existing skills, compare file contents — update if `skills/` is newer
38
+ 4. Do not remove skills from your agent directory that aren't in `skills/`
39
+
40
+ ### Dependency updates
41
+
42
+ 1. Run `bun update` to update all dependencies
43
+ 2. Check `bun outdated` for any remaining outdated packages
44
+ 3. Review changelogs for major version bumps before updating
45
+
46
+ ## Checklist
47
+
48
+ - [ ] Package skills compared against project `skills/` (version check)
49
+ - [ ] New or updated skills copied to project `skills/`
50
+ - [ ] Agent skill directory in sync with project `skills/`
51
+ - [ ] Dependencies updated (`bun update`)
52
+ - [ ] `bun run devcheck` passes
@@ -0,0 +1,131 @@
1
+ ---
2
+ name: migrate-mcp-ts-template
3
+ description: >
4
+ Migrate an existing mcp-ts-template fork to use @cyanheads/mcp-ts-core as a package dependency. Use when a project was cloned/forked from github.com/cyanheads/mcp-ts-template and carries framework source code in its own src/ — this skill rewrites those internal imports to package subpath imports and removes the bundled framework files.
5
+ metadata:
6
+ author: cyanheads
7
+ version: "2.0"
8
+ audience: external
9
+ type: workflow
10
+ ---
11
+
12
+ ## Context
13
+
14
+ Before `@cyanheads/mcp-ts-core` was published as a package, users built servers by forking/cloning the `mcp-ts-template` repo. Those forks carry the full framework source code in their `src/` and use `@/` path aliases to import framework internals alongside their own server code.
15
+
16
+ This skill converts such a project to use `@cyanheads/mcp-ts-core` as a dependency — rewriting framework imports to package subpaths and removing the bundled framework files, while leaving server-specific code (tools, resources, prompts, services) untouched.
17
+
18
+ For the full exports catalog, see `CLAUDE.md` → Exports Reference.
19
+
20
+ ## Steps
21
+
22
+ 1. **Install the package**: `bun add @cyanheads/mcp-ts-core`
23
+ 2. **Search for all `@/` imports** across `src/` that reference framework internals
24
+ 3. **Rewrite each import** using the mapping table below
25
+ 4. **Remove migrated framework source files** that now live in `node_modules`
26
+ 5. **Update entry point** (`src/index.ts`) to use `createApp()` from the package
27
+ 6. **Update build configs**: `tsconfig.json` extends `@cyanheads/mcp-ts-core/tsconfig.base.json`, `biome.json` extends `@cyanheads/mcp-ts-core/biome.json`
28
+ 7. **Run `bun run devcheck`** to verify no broken imports remain
29
+ 8. **Verify no `@/` imports** point to files that were removed
30
+
31
+ ## Import Mapping
32
+
33
+ These are the actual `@/` import paths used in framework source. Rewrite any that appear in server-specific files (tools, resources, services, config).
34
+
35
+ ### Core
36
+
37
+ | Old `@/` import | New package import |
38
+ |:----------------|:-------------------|
39
+ | `@/config/index.js` | `@cyanheads/mcp-ts-core/config` |
40
+ | `@/context.js` | `@cyanheads/mcp-ts-core/context` or `@cyanheads/mcp-ts-core` |
41
+ | `@/types-global/errors.js` | `@cyanheads/mcp-ts-core/errors` |
42
+ | `@/storage/core/StorageService.js` | `@cyanheads/mcp-ts-core/storage` |
43
+ | `@/storage/core/IStorageProvider.js` | `@cyanheads/mcp-ts-core/storage/types` |
44
+ | `@/mcp-server/transports/auth/lib/checkScopes.js` | `@cyanheads/mcp-ts-core/auth` |
45
+ | `@/testing/index.js` | `@cyanheads/mcp-ts-core/testing` |
46
+
47
+ ### Definition types
48
+
49
+ | Old `@/` import | New package import |
50
+ |:----------------|:-------------------|
51
+ | `@/mcp-server/tools/utils/toolDefinition.js` | `@cyanheads/mcp-ts-core/tools` |
52
+ | `@/mcp-server/tools/utils/newToolDefinition.js` | `@cyanheads/mcp-ts-core/tools` or `@cyanheads/mcp-ts-core` (for `tool()` builder) |
53
+ | `@/mcp-server/resources/utils/resourceDefinition.js` | `@cyanheads/mcp-ts-core/resources` |
54
+ | `@/mcp-server/resources/utils/newResourceDefinition.js` | `@cyanheads/mcp-ts-core/resources` or `@cyanheads/mcp-ts-core` (for `resource()` builder) |
55
+ | `@/mcp-server/prompts/utils/promptDefinition.js` | `@cyanheads/mcp-ts-core/prompts` |
56
+ | `@/mcp-server/prompts/utils/newPromptDefinition.js` | `@cyanheads/mcp-ts-core/prompts` or `@cyanheads/mcp-ts-core` (for `prompt()` builder) |
57
+ | `@/mcp-server/tasks/utils/taskToolDefinition.js` | `@cyanheads/mcp-ts-core/tasks` |
58
+
59
+ ### Utils — internal
60
+
61
+ | Old `@/` import | New package import |
62
+ |:----------------|:-------------------|
63
+ | `@/utils/internal/logger.js` | `@cyanheads/mcp-ts-core/utils/logger` |
64
+ | `@/utils/internal/requestContext.js` | `@cyanheads/mcp-ts-core/utils/requestContext` |
65
+ | `@/utils/internal/error-handler/errorHandler.js` | `@cyanheads/mcp-ts-core/utils/errorHandler` |
66
+ | `@/utils/internal/runtime.js` | `@cyanheads/mcp-ts-core/utils/runtime` |
67
+
68
+ ### Utils — public
69
+
70
+ | Old `@/` import | New package import |
71
+ |:----------------|:-------------------|
72
+ | `@/utils/formatting/*.js` | `@cyanheads/mcp-ts-core/utils/formatting` |
73
+ | `@/utils/parsing/*.js` | `@cyanheads/mcp-ts-core/utils/parsing` |
74
+ | `@/utils/security/*.js` | `@cyanheads/mcp-ts-core/utils/security` |
75
+ | `@/utils/network/*.js` | `@cyanheads/mcp-ts-core/utils/network` |
76
+ | `@/utils/pagination/pagination.js` | `@cyanheads/mcp-ts-core/utils/pagination` |
77
+ | `@/utils/types/guards.js` | `@cyanheads/mcp-ts-core/utils/types` |
78
+ | `@/utils/scheduling/*.js` | `@cyanheads/mcp-ts-core/utils/scheduling` |
79
+
80
+ ## Files to Remove
81
+
82
+ After rewriting imports, remove these framework directories/files. **Do not remove** server-specific code under `mcp-server/tools/definitions/`, `mcp-server/resources/definitions/`, `mcp-server/prompts/definitions/`, `services/` (server's own), or `config/server-config.ts`.
83
+
84
+ Framework files to delete:
85
+
86
+ - `src/app.ts`, `src/worker.ts`, `src/context.ts`
87
+ - `src/config/index.ts` (keep `server-config.ts` if it exists)
88
+ - `src/types-global/`
89
+ - `src/storage/`
90
+ - `src/mcp-server/server.ts`
91
+ - `src/mcp-server/transports/`
92
+ - `src/mcp-server/roots/`
93
+ - `src/mcp-server/tasks/` (core task infra — not tool definitions)
94
+ - `src/mcp-server/tools/utils/`, `tool-registration.ts`
95
+ - `src/mcp-server/resources/utils/`, `resource-registration.ts`
96
+ - `src/mcp-server/prompts/utils/`, `prompt-registration.ts`
97
+ - `src/utils/internal/`
98
+ - `src/utils/telemetry/`
99
+ - `src/utils/metrics/`
100
+ - `src/testing/`
101
+ - `src/services/llm/`, `src/services/speech/`, `src/services/graph/` (framework services)
102
+
103
+ ## Entry Point Rewrite
104
+
105
+ Replace the fork's `src/index.ts` with:
106
+
107
+ ```ts
108
+ #!/usr/bin/env node
109
+ import { createApp } from '@cyanheads/mcp-ts-core';
110
+ import { allToolDefinitions } from './mcp-server/tools/definitions/index.js';
111
+ import { allResourceDefinitions } from './mcp-server/resources/definitions/index.js';
112
+ import { allPromptDefinitions } from './mcp-server/prompts/definitions/index.js';
113
+
114
+ await createApp({
115
+ tools: allToolDefinitions,
116
+ resources: allResourceDefinitions,
117
+ prompts: allPromptDefinitions,
118
+ });
119
+ ```
120
+
121
+ ## Checklist
122
+
123
+ - [ ] `@cyanheads/mcp-ts-core` installed as a dependency
124
+ - [ ] All framework `@/` imports rewritten to `@cyanheads/mcp-ts-core/*` subpaths
125
+ - [ ] No `@/` imports point to removed framework files
126
+ - [ ] `src/index.ts` uses `createApp()` from the package
127
+ - [ ] `tsconfig.json` extends `@cyanheads/mcp-ts-core/tsconfig.base.json`
128
+ - [ ] `biome.json` extends `@cyanheads/mcp-ts-core/biome.json`
129
+ - [ ] Framework source files removed from `src/`
130
+ - [ ] Server-specific `@/` imports (own tools, services) still work
131
+ - [ ] `bun run devcheck` passes
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: release
3
+ description: >
4
+ Prepare and publish a core package release. Use when bumping the version, updating the changelog, and publishing to npm/Docker/GitHub. Stops before publish commands for user confirmation.
5
+ metadata:
6
+ author: cyanheads
7
+ version: "1.0"
8
+ audience: internal
9
+ type: workflow
10
+ ---
11
+
12
+ ## Context
13
+
14
+ Publishing is a multi-step process with irreversible actions (npm publish, Docker push). This skill handles preparation but stops before destructive commands, requiring the user to execute them manually.
15
+
16
+ ## Steps
17
+
18
+ 1. **Determine version bump** — ask the user: patch, minor, or major?
19
+ 2. **Update version** in:
20
+ - `package.json` (`version` field)
21
+ - `server.json` (`version` field, if present)
22
+ - `CLAUDE.md` (version reference at the top)
23
+ - `README.md` (version badge, if present)
24
+ 3. **Update CHANGELOG.md** — add a new entry with:
25
+ - Concrete version number and date (NEVER use `[Unreleased]`)
26
+ - Grouped changes: Added, Changed, Fixed, Removed
27
+ - Reference relevant PRs or commits
28
+ 4. **Run `bun run devcheck`** — must pass cleanly
29
+ 5. **Run `bun run test`** — all tests must pass
30
+ 6. **Run `bun run build`** — verify build succeeds
31
+ 7. **Commit** with message: `chore(release): v{{VERSION}}`
32
+ 8. **Stop and inform the user** — the following commands require manual execution:
33
+
34
+ ```bash
35
+ # Publish to npm
36
+ bun publish --access public
37
+
38
+ # Build and push Docker image
39
+ docker buildx build --platform linux/amd64,linux/arm64 \
40
+ -t ghcr.io/cyanheads/mcp-ts-core:{{VERSION}} \
41
+ -t ghcr.io/cyanheads/mcp-ts-core:latest \
42
+ --push .
43
+
44
+ # Publish MCP listing (if applicable)
45
+ mcp-publisher publish
46
+ ```
47
+
48
+ ## Wrapup Checklist
49
+
50
+ Before committing, verify these files are in sync:
51
+
52
+ - `README.md` — version badge, feature counts, descriptions
53
+ - `package.json` — version
54
+ - `server.json` — version (if present)
55
+ - `CHANGELOG.md` — new entry with concrete version and date
56
+ - `CLAUDE.md` — version reference
57
+ - `docs/tree.md` — updated if structure changed
58
+
59
+ ## Checklist
60
+
61
+ - [ ] Version bumped in all locations (package.json, server.json, CLAUDE.md, README.md)
62
+ - [ ] CHANGELOG.md updated with concrete version number and date
63
+ - [ ] `bun run devcheck` passes
64
+ - [ ] `bun run test` passes
65
+ - [ ] `bun run build` succeeds
66
+ - [ ] Release commit created: `chore(release): v{{VERSION}}`
67
+ - [ ] User informed of publish commands (npm, Docker, mcp-publisher)
@@ -0,0 +1,89 @@
1
+ ---
2
+ name: setup
3
+ description: >
4
+ Post-init orientation for an MCP server built on @cyanheads/mcp-ts-core. Use after running `@cyanheads/mcp-ts-core init` to understand the project structure, conventions, and skill sync model. Also use when onboarding to an existing project for the first time.
5
+ metadata:
6
+ author: cyanheads
7
+ version: "1.1"
8
+ audience: external
9
+ type: workflow
10
+ ---
11
+
12
+ ## Context
13
+
14
+ This skill assumes `@cyanheads/mcp-ts-core init` has already run. The CLI created the project's `CLAUDE.md` and `AGENTS.md` (identical content), copied external skills to `skills/`, and scaffolded the directory structure with echo definitions as starting points. This skill orients you to what was created.
15
+
16
+ ## Agent Protocol File
17
+
18
+ The init CLI generates both `CLAUDE.md` and `AGENTS.md` with identical content. Keep the one your agent uses and delete the other:
19
+
20
+ - **Claude Code** — keep `CLAUDE.md`, delete `AGENTS.md`
21
+ - **All other agents** (Codex, Cursor, Windsurf, etc.) — keep `AGENTS.md`, delete `CLAUDE.md`
22
+
23
+ Both files serve the same purpose: project-specific agent instructions. Only one should exist in the committed project.
24
+
25
+ For the full framework API, read:
26
+
27
+ node_modules/@cyanheads/mcp-ts-core/CLAUDE.md
28
+
29
+ Read that file once per session. It contains the exports catalog, tool/resource/prompt contracts, error codes, context API, and common import patterns.
30
+
31
+ ## Project Structure
32
+
33
+ ```
34
+ CLAUDE.md # Agent protocol (project-specific)
35
+ skills/ # Project skills (source of truth)
36
+ src/
37
+ index.ts # createApp() entry point
38
+ worker.ts # createWorkerHandler() (if using Workers)
39
+ config/
40
+ server-config.ts # Server-specific env vars (own Zod schema)
41
+ services/
42
+ [domain]/
43
+ [domain]-service.ts # Init/accessor pattern
44
+ types.ts
45
+ mcp-server/
46
+ tools/definitions/
47
+ echo.tool.ts # Echo tool (starter — replace or delete)
48
+ resources/definitions/
49
+ echo.resource.ts # Echo resource (starter — replace or delete)
50
+ prompts/definitions/
51
+ echo.prompt.ts # Echo prompt (starter — replace or delete)
52
+ ```
53
+
54
+ ## Scaffolded Echo Definitions
55
+
56
+ The init creates echo definitions for tools, resources, and prompts as starting points. They're functional examples with inline comments explaining conventions. After init:
57
+
58
+ 1. **Delete what you don't need.** If your server has no prompts, delete `echo.prompt.ts` and remove its import/registration from `src/index.ts`. Same for resources.
59
+ 2. **Rename and replace what you keep.** The echo definitions show the pattern — swap them out for your real tools/resources/prompts.
60
+ 3. **Definitions register directly in `src/index.ts`.** No barrel files — just import and add to the arrays.
61
+
62
+ ## Conventions
63
+
64
+ | Convention | Rule |
65
+ |:-----------|:-----|
66
+ | File names | kebab-case |
67
+ | Tool/resource/prompt names | snake_case, prefixed with server name (e.g. `tasks_fetch_list`) |
68
+ | File suffixes | `.tool.ts`, `.resource.ts`, `.prompt.ts` |
69
+ | Imports (framework) | `@cyanheads/mcp-ts-core` and subpaths |
70
+ | Imports (server code) | `@/` path alias for `src/` |
71
+
72
+ ## Skill Sync
73
+
74
+ Your agent skill directory (e.g., `.claude/skills/`) must stay in sync with the project's `skills/` directory. The project `skills/` is the source of truth.
75
+
76
+ 1. Compare your agent skill directory against `skills/`
77
+ 2. Copy any missing or updated skills into your agent directory
78
+ 3. Do not remove server-specific skills from either location
79
+
80
+ For detailed sync procedures, see the `/maintenance` skill.
81
+
82
+ ## Checklist
83
+
84
+ - [ ] Agent protocol file selected — keep `CLAUDE.md` or `AGENTS.md`, delete the other
85
+ - [ ] Core framework CLAUDE.md read (`node_modules/@cyanheads/mcp-ts-core/CLAUDE.md`)
86
+ - [ ] Unused echo definitions deleted (and unregistered from `src/index.ts`)
87
+ - [ ] Agent skill directory in sync with project `skills/`
88
+ - [ ] Project structure understood (definitions directories, entry point)
89
+ - [ ] `bun run devcheck` passes
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: walkthrough-init
3
+ description: >
4
+ Trace the agent onboarding flow after `init` scaffolds a new project. Starts from the agent reading CLAUDE.md for the first time and follows every instruction chain through skills and framework docs. Use to audit the onboarding path, find dead ends, or catch missing instructions.
5
+ metadata:
6
+ author: cyanheads
7
+ version: "1.0"
8
+ audience: internal
9
+ type: debug
10
+ ---
11
+
12
+ ## What this skill does
13
+
14
+ A developer has run `npx @cyanheads/mcp-ts-core init banking-mcp-server` and `bun install`. They open the project and run `claude`. You are that agent, seeing this project for the first time.
15
+
16
+ Trace the onboarding path through the actual files as they exist right now. Follow every instruction chain — read what you're told to read, do what you're told to do, and report what happens.
17
+
18
+ ---
19
+
20
+ ## Instructions
21
+
22
+ ### Step 1: Read the project's CLAUDE.md
23
+
24
+ This is the first file the agent sees. Read `templates/CLAUDE.md` (or wherever the template lives). Report:
25
+
26
+ - What does it tell you to do first?
27
+ - What files does it point you to?
28
+ - Does it mention the `setup` skill? How?
29
+
30
+ ### Step 2: Follow the first instruction
31
+
32
+ Whatever CLAUDE.md says to do first — do it. If it says to read a file, read it. If it says to run a skill, read that skill's SKILL.md. Report what you find and what it tells you to do next.
33
+
34
+ ### Step 3: Keep following the chain
35
+
36
+ Continue following instructions until you've completed the full onboarding loop. At each step:
37
+
38
+ - What file are you reading?
39
+ - What does it tell you to do?
40
+ - Can you actually do it? (Do the referenced files/paths exist?)
41
+ - What's the next step it points you to?
42
+
43
+ ### Step 4: Report
44
+
45
+ After the chain ends (or breaks), produce:
46
+
47
+ 1. **The path you followed** — ordered list of files read and actions taken
48
+ 2. **Broken links** — instructions that point to files that don't exist, skills that aren't written, or actions that can't be completed
49
+ 3. **Dead ends** — places where the instructions stop and you don't know what to do next
50
+ 4. **The complete onboarding flow** — a summary of what a new agent actually experiences, step by step
@@ -0,0 +1,17 @@
1
+ # ── Transport ──────────────────────────────────────────────────────────
2
+ # MCP_TRANSPORT_TYPE=stdio # stdio | http (default: stdio)
3
+ # MCP_HTTP_PORT=3000 # HTTP port (default: 3000)
4
+ # MCP_HTTP_HOST=localhost # HTTP host (default: localhost)
5
+
6
+ # ── Auth ──────────────────────────────────────────────────────────────
7
+ # MCP_AUTH_MODE=none # none | jwt | oauth (default: none)
8
+ # MCP_AUTH_SECRET_KEY= # JWT secret (required for jwt mode)
9
+
10
+ # ── Storage ───────────────────────────────────────────────────────────
11
+ # STORAGE_PROVIDER_TYPE=in-memory # in-memory | filesystem | supabase
12
+
13
+ # ── Logging ───────────────────────────────────────────────────────────
14
+ # MCP_LOG_LEVEL=info # debug | info | notice | warning | error
15
+
16
+ # ── Server-specific ──────────────────────────────────────────────────
17
+ # Add your server's environment variables below
@@ -0,0 +1,113 @@
1
+ # Agent Protocol
2
+
3
+ **Server:** {{SERVER_NAME}}
4
+ **Version:** 0.1.0
5
+ **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)
6
+
7
+ > **Read the framework docs first:** `node_modules/@cyanheads/mcp-ts-core/CLAUDE.md` contains the full API reference — builders, Context, error codes, exports, patterns. This file covers server-specific conventions only.
8
+
9
+ ---
10
+
11
+ ## Core Rules
12
+
13
+ - **Logic throws, handlers catch.** Tool/resource handlers are pure — throw `McpError`, no `try/catch`. The framework catches and formats.
14
+ - **Use `ctx.log`** for request-scoped logging. No `console` calls.
15
+ - **Use `ctx.state`** for tenant-scoped storage. Never access persistence directly.
16
+ - **Check `ctx.elicit` / `ctx.sample`** for presence before calling.
17
+ - **Secrets in env vars only** — never hardcoded.
18
+
19
+ ---
20
+
21
+ ## Structure
22
+
23
+ ```
24
+ src/
25
+ index.ts # createApp() entry point
26
+ config/
27
+ server-config.ts # Server-specific env vars (Zod schema)
28
+ services/
29
+ [domain]/
30
+ [domain]-service.ts # Domain service (init/accessor pattern)
31
+ types.ts # Domain types
32
+ mcp-server/
33
+ tools/definitions/
34
+ [tool-name].tool.ts # Tool definitions
35
+ index.ts # allToolDefinitions barrel
36
+ resources/definitions/
37
+ [resource-name].resource.ts # Resource definitions
38
+ index.ts # allResourceDefinitions barrel
39
+ prompts/definitions/
40
+ [prompt-name].prompt.ts # Prompt definitions
41
+ index.ts # allPromptDefinitions barrel
42
+ ```
43
+
44
+ ---
45
+
46
+ ## Naming
47
+
48
+ | What | Convention | Example |
49
+ |:-----|:-----------|:--------|
50
+ | Files | kebab-case with suffix | `search-docs.tool.ts` |
51
+ | Tool/resource/prompt names | snake_case | `search_docs` |
52
+ | Directories | kebab-case | `src/services/doc-search/` |
53
+
54
+ ---
55
+
56
+ ## Skills
57
+
58
+ Skills are modular instructions in `skills/`. They guide you through common tasks.
59
+
60
+ **Sync:** Keep your agent skill directory (e.g., `.claude/skills/`) in sync with `skills/`. Copy any missing or updated skills from `skills/` to your directory.
61
+
62
+ Available skills:
63
+
64
+ | Skill | Purpose |
65
+ |:------|:--------|
66
+ | `setup` | Post-init project orientation |
67
+ | `add-tool` | Scaffold a new tool definition |
68
+ | `add-resource` | Scaffold a new resource definition |
69
+ | `add-prompt` | Scaffold a new prompt definition |
70
+ | `add-service` | Scaffold a new service integration |
71
+ | `devcheck` | Lint, format, typecheck, audit |
72
+ | `migrate-mcp-ts-template` | Migrate legacy template fork to package dependency |
73
+ | `maintenance` | Sync skills and dependencies after updates |
74
+
75
+ When you complete a skill's checklist, check the boxes and add a completion timestamp at the end (e.g., `Completed: 2026-03-11`).
76
+
77
+ ---
78
+
79
+ ## Commands
80
+
81
+ | Command | Purpose |
82
+ |:--------|:--------|
83
+ | `bun run build` | Compile TypeScript |
84
+ | `bun run devcheck` | Lint + format + typecheck |
85
+ | `bun run test` | Run tests |
86
+ | `bun run format` | Auto-fix formatting |
87
+ | `bun run dev:stdio` | Dev mode (stdio) |
88
+ | `bun run dev:http` | Dev mode (HTTP) |
89
+
90
+ ---
91
+
92
+ ## Imports
93
+
94
+ ```ts
95
+ // Framework — from node_modules
96
+ import { tool } from '@cyanheads/mcp-ts-core';
97
+ import { McpError, JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
98
+
99
+ // Server's own code — via path alias
100
+ import { getMyService } from '@/services/my-domain/my-service.js';
101
+ ```
102
+
103
+ ---
104
+
105
+ ## Checklist
106
+
107
+ - [ ] Zod schemas: all fields have `.describe()`
108
+ - [ ] JSDoc `@fileoverview` + `@module` on every file
109
+ - [ ] `ctx.log` for logging, `ctx.state` for storage
110
+ - [ ] Handlers throw `McpError`, no try/catch
111
+ - [ ] Registered in `definitions/index.ts` barrel
112
+ - [ ] Tests use `createMockContext()` from `@cyanheads/mcp-ts-core/testing`
113
+ - [ ] `bun run devcheck` passes
@@ -0,0 +1,113 @@
1
+ # Agent Protocol
2
+
3
+ **Server:** {{SERVER_NAME}}
4
+ **Version:** 0.1.0
5
+ **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)
6
+
7
+ > **Read the framework docs first:** `node_modules/@cyanheads/mcp-ts-core/CLAUDE.md` contains the full API reference — builders, Context, error codes, exports, patterns. This file covers server-specific conventions only.
8
+
9
+ ---
10
+
11
+ ## Core Rules
12
+
13
+ - **Logic throws, handlers catch.** Tool/resource handlers are pure — throw `McpError`, no `try/catch`. The framework catches and formats.
14
+ - **Use `ctx.log`** for request-scoped logging. No `console` calls.
15
+ - **Use `ctx.state`** for tenant-scoped storage. Never access persistence directly.
16
+ - **Check `ctx.elicit` / `ctx.sample`** for presence before calling.
17
+ - **Secrets in env vars only** — never hardcoded.
18
+
19
+ ---
20
+
21
+ ## Structure
22
+
23
+ ```
24
+ src/
25
+ index.ts # createApp() entry point
26
+ config/
27
+ server-config.ts # Server-specific env vars (Zod schema)
28
+ services/
29
+ [domain]/
30
+ [domain]-service.ts # Domain service (init/accessor pattern)
31
+ types.ts # Domain types
32
+ mcp-server/
33
+ tools/definitions/
34
+ [tool-name].tool.ts # Tool definitions
35
+ index.ts # allToolDefinitions barrel
36
+ resources/definitions/
37
+ [resource-name].resource.ts # Resource definitions
38
+ index.ts # allResourceDefinitions barrel
39
+ prompts/definitions/
40
+ [prompt-name].prompt.ts # Prompt definitions
41
+ index.ts # allPromptDefinitions barrel
42
+ ```
43
+
44
+ ---
45
+
46
+ ## Naming
47
+
48
+ | What | Convention | Example |
49
+ |:-----|:-----------|:--------|
50
+ | Files | kebab-case with suffix | `search-docs.tool.ts` |
51
+ | Tool/resource/prompt names | snake_case | `search_docs` |
52
+ | Directories | kebab-case | `src/services/doc-search/` |
53
+
54
+ ---
55
+
56
+ ## Skills
57
+
58
+ Skills are modular instructions in `skills/`. They guide you through common tasks.
59
+
60
+ **Sync:** Keep your agent skill directory (e.g., `.claude/skills/`) in sync with `skills/`. Copy any missing or updated skills from `skills/` to your directory.
61
+
62
+ Available skills:
63
+
64
+ | Skill | Purpose |
65
+ |:------|:--------|
66
+ | `setup` | Post-init project orientation |
67
+ | `add-tool` | Scaffold a new tool definition |
68
+ | `add-resource` | Scaffold a new resource definition |
69
+ | `add-prompt` | Scaffold a new prompt definition |
70
+ | `add-service` | Scaffold a new service integration |
71
+ | `devcheck` | Lint, format, typecheck, audit |
72
+ | `migrate-mcp-ts-template` | Migrate legacy template fork to package dependency |
73
+ | `maintenance` | Sync skills and dependencies after updates |
74
+
75
+ When you complete a skill's checklist, check the boxes and add a completion timestamp at the end (e.g., `Completed: 2026-03-11`).
76
+
77
+ ---
78
+
79
+ ## Commands
80
+
81
+ | Command | Purpose |
82
+ |:--------|:--------|
83
+ | `bun run build` | Compile TypeScript |
84
+ | `bun run devcheck` | Lint + format + typecheck |
85
+ | `bun run test` | Run tests |
86
+ | `bun run format` | Auto-fix formatting |
87
+ | `bun run dev:stdio` | Dev mode (stdio) |
88
+ | `bun run dev:http` | Dev mode (HTTP) |
89
+
90
+ ---
91
+
92
+ ## Imports
93
+
94
+ ```ts
95
+ // Framework — from node_modules
96
+ import { tool } from '@cyanheads/mcp-ts-core';
97
+ import { McpError, JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
98
+
99
+ // Server's own code — via path alias
100
+ import { getMyService } from '@/services/my-domain/my-service.js';
101
+ ```
102
+
103
+ ---
104
+
105
+ ## Checklist
106
+
107
+ - [ ] Zod schemas: all fields have `.describe()`
108
+ - [ ] JSDoc `@fileoverview` + `@module` on every file
109
+ - [ ] `ctx.log` for logging, `ctx.state` for storage
110
+ - [ ] Handlers throw `McpError`, no try/catch
111
+ - [ ] Registered in `definitions/index.ts` barrel
112
+ - [ ] Tests use `createMockContext()` from `@cyanheads/mcp-ts-core/testing`
113
+ - [ ] `bun run devcheck` passes
@@ -0,0 +1,33 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ESNext",
4
+ "module": "NodeNext",
5
+ "moduleResolution": "NodeNext",
6
+ "strict": true,
7
+ "noUncheckedIndexedAccess": true,
8
+ "verbatimModuleSyntax": true,
9
+ "moduleDetection": "force",
10
+ "esModuleInterop": true,
11
+ "allowSyntheticDefaultImports": true,
12
+ "outDir": "dist",
13
+ "rootDir": "src",
14
+ "declaration": true,
15
+ "sourceMap": true,
16
+ "skipLibCheck": true,
17
+ "forceConsistentCasingInFileNames": true,
18
+ "lib": ["ESNext"],
19
+ "types": ["node"],
20
+ "noUnusedLocals": true,
21
+ "noUnusedParameters": true,
22
+ "noImplicitReturns": true,
23
+ "noFallthroughCasesInSwitch": true,
24
+ "resolveJsonModule": true,
25
+ "allowJs": false,
26
+ "baseUrl": ".",
27
+ "paths": {
28
+ "@/*": ["src/*"]
29
+ }
30
+ },
31
+ "include": ["src/**/*"],
32
+ "exclude": ["node_modules", "dist"]
33
+ }