@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.
- package/CLAUDE.md +583 -0
- package/LICENSE +201 -0
- package/README.md +287 -0
- package/biome.json +103 -0
- package/dist/app.d.ts +82 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +222 -0
- package/dist/app.js.map +1 -0
- package/dist/cli/init.d.ts +8 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +161 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/config/index.d.ts +349 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +464 -0
- package/dist/config/index.js.map +1 -0
- package/dist/context.d.ts +119 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +144 -0
- package/dist/context.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-server/prompts/prompt-registration.d.ts +33 -0
- package/dist/mcp-server/prompts/prompt-registration.d.ts.map +1 -0
- package/dist/mcp-server/prompts/prompt-registration.js +91 -0
- package/dist/mcp-server/prompts/prompt-registration.js.map +1 -0
- package/dist/mcp-server/prompts/utils/newPromptDefinition.d.ts +49 -0
- package/dist/mcp-server/prompts/utils/newPromptDefinition.d.ts.map +1 -0
- package/dist/mcp-server/prompts/utils/newPromptDefinition.js +39 -0
- package/dist/mcp-server/prompts/utils/newPromptDefinition.js.map +1 -0
- package/dist/mcp-server/prompts/utils/promptDefinition.d.ts +37 -0
- package/dist/mcp-server/prompts/utils/promptDefinition.d.ts.map +1 -0
- package/dist/mcp-server/prompts/utils/promptDefinition.js +2 -0
- package/dist/mcp-server/prompts/utils/promptDefinition.js.map +1 -0
- package/dist/mcp-server/resources/resource-registration.d.ts +27 -0
- package/dist/mcp-server/resources/resource-registration.d.ts.map +1 -0
- package/dist/mcp-server/resources/resource-registration.js +85 -0
- package/dist/mcp-server/resources/resource-registration.js.map +1 -0
- package/dist/mcp-server/resources/utils/newResourceDefinition.d.ts +84 -0
- package/dist/mcp-server/resources/utils/newResourceDefinition.d.ts.map +1 -0
- package/dist/mcp-server/resources/utils/newResourceDefinition.js +40 -0
- package/dist/mcp-server/resources/utils/newResourceDefinition.js.map +1 -0
- package/dist/mcp-server/resources/utils/newResourceHandlerFactory.d.ts +32 -0
- package/dist/mcp-server/resources/utils/newResourceHandlerFactory.d.ts.map +1 -0
- package/dist/mcp-server/resources/utils/newResourceHandlerFactory.js +103 -0
- package/dist/mcp-server/resources/utils/newResourceHandlerFactory.js.map +1 -0
- package/dist/mcp-server/resources/utils/resourceDefinition.d.ts +94 -0
- package/dist/mcp-server/resources/utils/resourceDefinition.d.ts.map +1 -0
- package/dist/mcp-server/resources/utils/resourceDefinition.js +2 -0
- package/dist/mcp-server/resources/utils/resourceDefinition.js.map +1 -0
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts +14 -0
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -0
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +111 -0
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -0
- package/dist/mcp-server/roots/roots-registration.d.ts +22 -0
- package/dist/mcp-server/roots/roots-registration.d.ts.map +1 -0
- package/dist/mcp-server/roots/roots-registration.js +25 -0
- package/dist/mcp-server/roots/roots-registration.js.map +1 -0
- package/dist/mcp-server/server.d.ts +34 -0
- package/dist/mcp-server/server.d.ts.map +1 -0
- package/dist/mcp-server/server.js +62 -0
- package/dist/mcp-server/server.js.map +1 -0
- package/dist/mcp-server/tasks/core/sessionAwareTaskStore.d.ts +42 -0
- package/dist/mcp-server/tasks/core/sessionAwareTaskStore.d.ts.map +1 -0
- package/dist/mcp-server/tasks/core/sessionAwareTaskStore.js +70 -0
- package/dist/mcp-server/tasks/core/sessionAwareTaskStore.js.map +1 -0
- package/dist/mcp-server/tasks/core/storageBackedTaskStore.d.ts +109 -0
- package/dist/mcp-server/tasks/core/storageBackedTaskStore.d.ts.map +1 -0
- package/dist/mcp-server/tasks/core/storageBackedTaskStore.js +209 -0
- package/dist/mcp-server/tasks/core/storageBackedTaskStore.js.map +1 -0
- package/dist/mcp-server/tasks/core/taskManager.d.ts +103 -0
- package/dist/mcp-server/tasks/core/taskManager.d.ts.map +1 -0
- package/dist/mcp-server/tasks/core/taskManager.js +144 -0
- package/dist/mcp-server/tasks/core/taskManager.js.map +1 -0
- package/dist/mcp-server/tasks/core/taskTypes.d.ts +11 -0
- package/dist/mcp-server/tasks/core/taskTypes.d.ts.map +1 -0
- package/dist/mcp-server/tasks/core/taskTypes.js +13 -0
- package/dist/mcp-server/tasks/core/taskTypes.js.map +1 -0
- package/dist/mcp-server/tasks/utils/taskToolDefinition.d.ts +108 -0
- package/dist/mcp-server/tasks/utils/taskToolDefinition.d.ts.map +1 -0
- package/dist/mcp-server/tasks/utils/taskToolDefinition.js +14 -0
- package/dist/mcp-server/tasks/utils/taskToolDefinition.js.map +1 -0
- package/dist/mcp-server/tools/tool-registration.d.ts +49 -0
- package/dist/mcp-server/tools/tool-registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/tool-registration.js +269 -0
- package/dist/mcp-server/tools/tool-registration.js.map +1 -0
- package/dist/mcp-server/tools/utils/newToolDefinition.d.ts +73 -0
- package/dist/mcp-server/tools/utils/newToolDefinition.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/newToolDefinition.js +45 -0
- package/dist/mcp-server/tools/utils/newToolDefinition.js.map +1 -0
- package/dist/mcp-server/tools/utils/newToolHandlerFactory.d.ts +33 -0
- package/dist/mcp-server/tools/utils/newToolHandlerFactory.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/newToolHandlerFactory.js +107 -0
- package/dist/mcp-server/tools/utils/newToolHandlerFactory.js.map +1 -0
- package/dist/mcp-server/tools/utils/toolDefinition.d.ts +118 -0
- package/dist/mcp-server/tools/utils/toolDefinition.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/toolDefinition.js +2 -0
- package/dist/mcp-server/tools/utils/toolDefinition.js.map +1 -0
- package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +34 -0
- package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/toolHandlerFactory.js +68 -0
- package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -0
- package/dist/mcp-server/transports/ITransport.d.ts +15 -0
- package/dist/mcp-server/transports/ITransport.d.ts.map +1 -0
- package/dist/mcp-server/transports/ITransport.js +2 -0
- package/dist/mcp-server/transports/ITransport.js.map +1 -0
- package/dist/mcp-server/transports/auth/authFactory.d.ts +11 -0
- package/dist/mcp-server/transports/auth/authFactory.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/authFactory.js +43 -0
- package/dist/mcp-server/transports/auth/authFactory.js.map +1 -0
- package/dist/mcp-server/transports/auth/authMiddleware.d.ts +24 -0
- package/dist/mcp-server/transports/auth/authMiddleware.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/authMiddleware.js +69 -0
- package/dist/mcp-server/transports/auth/authMiddleware.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authContext.d.ts +34 -0
- package/dist/mcp-server/transports/auth/lib/authContext.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authContext.js +25 -0
- package/dist/mcp-server/transports/auth/lib/authContext.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.d.ts +19 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.js +2 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.d.ts +18 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.js +64 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/checkScopes.d.ts +25 -0
- package/dist/mcp-server/transports/auth/lib/checkScopes.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/checkScopes.js +34 -0
- package/dist/mcp-server/transports/auth/lib/checkScopes.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/claimParser.d.ts +34 -0
- package/dist/mcp-server/transports/auth/lib/claimParser.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/claimParser.js +58 -0
- package/dist/mcp-server/transports/auth/lib/claimParser.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/withAuth.d.ts +25 -0
- package/dist/mcp-server/transports/auth/lib/withAuth.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/withAuth.js +30 -0
- package/dist/mcp-server/transports/auth/lib/withAuth.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts +18 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.js +2 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts +14 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js +86 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts +14 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js +113 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js.map +1 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.d.ts +25 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.js +112 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -0
- package/dist/mcp-server/transports/http/httpTransport.d.ts +47 -0
- package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/httpTransport.js +396 -0
- package/dist/mcp-server/transports/http/httpTransport.js.map +1 -0
- package/dist/mcp-server/transports/http/httpTypes.d.ts +17 -0
- package/dist/mcp-server/transports/http/httpTypes.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/httpTypes.js +2 -0
- package/dist/mcp-server/transports/http/httpTypes.js.map +1 -0
- package/dist/mcp-server/transports/http/protectedResourceMetadata.d.ts +21 -0
- package/dist/mcp-server/transports/http/protectedResourceMetadata.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/protectedResourceMetadata.js +44 -0
- package/dist/mcp-server/transports/http/protectedResourceMetadata.js.map +1 -0
- package/dist/mcp-server/transports/http/sessionIdUtils.d.ts +33 -0
- package/dist/mcp-server/transports/http/sessionIdUtils.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/sessionIdUtils.js +54 -0
- package/dist/mcp-server/transports/http/sessionIdUtils.js.map +1 -0
- package/dist/mcp-server/transports/http/sessionStore.d.ts +87 -0
- package/dist/mcp-server/transports/http/sessionStore.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/sessionStore.js +209 -0
- package/dist/mcp-server/transports/http/sessionStore.js.map +1 -0
- package/dist/mcp-server/transports/manager.d.ts +22 -0
- package/dist/mcp-server/transports/manager.d.ts.map +1 -0
- package/dist/mcp-server/transports/manager.js +62 -0
- package/dist/mcp-server/transports/manager.js.map +1 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.d.ts +44 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.d.ts.map +1 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.js +63 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.js.map +1 -0
- package/dist/services/graph/core/GraphService.d.ts +205 -0
- package/dist/services/graph/core/GraphService.d.ts.map +1 -0
- package/dist/services/graph/core/GraphService.js +231 -0
- package/dist/services/graph/core/GraphService.js.map +1 -0
- package/dist/services/graph/core/IGraphProvider.d.ts +295 -0
- package/dist/services/graph/core/IGraphProvider.d.ts.map +1 -0
- package/dist/services/graph/core/IGraphProvider.js +8 -0
- package/dist/services/graph/core/IGraphProvider.js.map +1 -0
- package/dist/services/graph/types.d.ts +107 -0
- package/dist/services/graph/types.d.ts.map +1 -0
- package/dist/services/graph/types.js +8 -0
- package/dist/services/graph/types.js.map +1 -0
- package/dist/services/llm/core/ILlmProvider.d.ts +86 -0
- package/dist/services/llm/core/ILlmProvider.d.ts.map +1 -0
- package/dist/services/llm/core/ILlmProvider.js +2 -0
- package/dist/services/llm/core/ILlmProvider.js.map +1 -0
- package/dist/services/llm/providers/openrouter.provider.d.ts +187 -0
- package/dist/services/llm/providers/openrouter.provider.d.ts.map +1 -0
- package/dist/services/llm/providers/openrouter.provider.js +302 -0
- package/dist/services/llm/providers/openrouter.provider.js.map +1 -0
- package/dist/services/llm/types.d.ts +16 -0
- package/dist/services/llm/types.d.ts.map +1 -0
- package/dist/services/llm/types.js +9 -0
- package/dist/services/llm/types.js.map +1 -0
- package/dist/services/speech/core/ISpeechProvider.d.ts +92 -0
- package/dist/services/speech/core/ISpeechProvider.d.ts.map +1 -0
- package/dist/services/speech/core/ISpeechProvider.js +34 -0
- package/dist/services/speech/core/ISpeechProvider.js.map +1 -0
- package/dist/services/speech/core/SpeechService.d.ts +87 -0
- package/dist/services/speech/core/SpeechService.d.ts.map +1 -0
- package/dist/services/speech/core/SpeechService.js +135 -0
- package/dist/services/speech/core/SpeechService.js.map +1 -0
- package/dist/services/speech/providers/elevenlabs.provider.d.ts +77 -0
- package/dist/services/speech/providers/elevenlabs.provider.d.ts.map +1 -0
- package/dist/services/speech/providers/elevenlabs.provider.js +199 -0
- package/dist/services/speech/providers/elevenlabs.provider.js.map +1 -0
- package/dist/services/speech/providers/whisper.provider.d.ts +94 -0
- package/dist/services/speech/providers/whisper.provider.d.ts.map +1 -0
- package/dist/services/speech/providers/whisper.provider.js +240 -0
- package/dist/services/speech/providers/whisper.provider.js.map +1 -0
- package/dist/services/speech/types.d.ts +173 -0
- package/dist/services/speech/types.d.ts.map +1 -0
- package/dist/services/speech/types.js +8 -0
- package/dist/services/speech/types.js.map +1 -0
- package/dist/storage/core/IStorageProvider.d.ts +159 -0
- package/dist/storage/core/IStorageProvider.d.ts.map +1 -0
- package/dist/storage/core/IStorageProvider.js +2 -0
- package/dist/storage/core/IStorageProvider.js.map +1 -0
- package/dist/storage/core/StorageService.d.ts +22 -0
- package/dist/storage/core/StorageService.d.ts.map +1 -0
- package/dist/storage/core/StorageService.js +151 -0
- package/dist/storage/core/StorageService.js.map +1 -0
- package/dist/storage/core/storageFactory.d.ts +66 -0
- package/dist/storage/core/storageFactory.d.ts.map +1 -0
- package/dist/storage/core/storageFactory.js +122 -0
- package/dist/storage/core/storageFactory.js.map +1 -0
- package/dist/storage/core/storageValidation.d.ts +77 -0
- package/dist/storage/core/storageValidation.d.ts.map +1 -0
- package/dist/storage/core/storageValidation.js +303 -0
- package/dist/storage/core/storageValidation.js.map +1 -0
- package/dist/storage/providers/cloudflare/d1Provider.d.ts +94 -0
- package/dist/storage/providers/cloudflare/d1Provider.d.ts.map +1 -0
- package/dist/storage/providers/cloudflare/d1Provider.js +347 -0
- package/dist/storage/providers/cloudflare/d1Provider.js.map +1 -0
- package/dist/storage/providers/cloudflare/kvProvider.d.ts +21 -0
- package/dist/storage/providers/cloudflare/kvProvider.d.ts.map +1 -0
- package/dist/storage/providers/cloudflare/kvProvider.js +183 -0
- package/dist/storage/providers/cloudflare/kvProvider.js.map +1 -0
- package/dist/storage/providers/cloudflare/r2Provider.d.ts +28 -0
- package/dist/storage/providers/cloudflare/r2Provider.d.ts.map +1 -0
- package/dist/storage/providers/cloudflare/r2Provider.js +222 -0
- package/dist/storage/providers/cloudflare/r2Provider.js.map +1 -0
- package/dist/storage/providers/fileSystem/fileSystemProvider.d.ts +20 -0
- package/dist/storage/providers/fileSystem/fileSystemProvider.d.ts.map +1 -0
- package/dist/storage/providers/fileSystem/fileSystemProvider.js +282 -0
- package/dist/storage/providers/fileSystem/fileSystemProvider.js.map +1 -0
- package/dist/storage/providers/inMemory/inMemoryProvider.d.ts +21 -0
- package/dist/storage/providers/inMemory/inMemoryProvider.d.ts.map +1 -0
- package/dist/storage/providers/inMemory/inMemoryProvider.js +139 -0
- package/dist/storage/providers/inMemory/inMemoryProvider.js.map +1 -0
- package/dist/storage/providers/supabase/supabase.types.d.ts +49 -0
- package/dist/storage/providers/supabase/supabase.types.d.ts.map +1 -0
- package/dist/storage/providers/supabase/supabase.types.js +8 -0
- package/dist/storage/providers/supabase/supabase.types.js.map +1 -0
- package/dist/storage/providers/supabase/supabaseProvider.d.ts +24 -0
- package/dist/storage/providers/supabase/supabaseProvider.d.ts.map +1 -0
- package/dist/storage/providers/supabase/supabaseProvider.js +209 -0
- package/dist/storage/providers/supabase/supabaseProvider.js.map +1 -0
- package/dist/testing/index.d.ts +53 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +132 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/types-global/errors.d.ts +83 -0
- package/dist/types-global/errors.d.ts.map +1 -0
- package/dist/types-global/errors.js +113 -0
- package/dist/types-global/errors.js.map +1 -0
- package/dist/utils/formatting/diffFormatter.d.ts +227 -0
- package/dist/utils/formatting/diffFormatter.d.ts.map +1 -0
- package/dist/utils/formatting/diffFormatter.js +369 -0
- package/dist/utils/formatting/diffFormatter.js.map +1 -0
- package/dist/utils/formatting/index.d.ts +9 -0
- package/dist/utils/formatting/index.d.ts.map +1 -0
- package/dist/utils/formatting/index.js +9 -0
- package/dist/utils/formatting/index.js.map +1 -0
- package/dist/utils/formatting/markdownBuilder.d.ts +543 -0
- package/dist/utils/formatting/markdownBuilder.d.ts.map +1 -0
- package/dist/utils/formatting/markdownBuilder.js +674 -0
- package/dist/utils/formatting/markdownBuilder.js.map +1 -0
- package/dist/utils/formatting/tableFormatter.d.ts +261 -0
- package/dist/utils/formatting/tableFormatter.d.ts.map +1 -0
- package/dist/utils/formatting/tableFormatter.js +456 -0
- package/dist/utils/formatting/tableFormatter.js.map +1 -0
- package/dist/utils/formatting/treeFormatter.d.ts +344 -0
- package/dist/utils/formatting/treeFormatter.d.ts.map +1 -0
- package/dist/utils/formatting/treeFormatter.js +400 -0
- package/dist/utils/formatting/treeFormatter.js.map +1 -0
- package/dist/utils/internal/encoding.d.ts +42 -0
- package/dist/utils/internal/encoding.d.ts.map +1 -0
- package/dist/utils/internal/encoding.js +87 -0
- package/dist/utils/internal/encoding.js.map +1 -0
- package/dist/utils/internal/error-handler/errorHandler.d.ts +140 -0
- package/dist/utils/internal/error-handler/errorHandler.d.ts.map +1 -0
- package/dist/utils/internal/error-handler/errorHandler.js +318 -0
- package/dist/utils/internal/error-handler/errorHandler.js.map +1 -0
- package/dist/utils/internal/error-handler/helpers.d.ts +98 -0
- package/dist/utils/internal/error-handler/helpers.d.ts.map +1 -0
- package/dist/utils/internal/error-handler/helpers.js +214 -0
- package/dist/utils/internal/error-handler/helpers.js.map +1 -0
- package/dist/utils/internal/error-handler/mappings.d.ts +85 -0
- package/dist/utils/internal/error-handler/mappings.d.ts.map +1 -0
- package/dist/utils/internal/error-handler/mappings.js +234 -0
- package/dist/utils/internal/error-handler/mappings.js.map +1 -0
- package/dist/utils/internal/error-handler/types.d.ts +160 -0
- package/dist/utils/internal/error-handler/types.d.ts.map +1 -0
- package/dist/utils/internal/error-handler/types.js +6 -0
- package/dist/utils/internal/error-handler/types.js.map +1 -0
- package/dist/utils/internal/health.d.ts +60 -0
- package/dist/utils/internal/health.d.ts.map +1 -0
- package/dist/utils/internal/health.js +46 -0
- package/dist/utils/internal/health.js.map +1 -0
- package/dist/utils/internal/logger.d.ts +300 -0
- package/dist/utils/internal/logger.d.ts.map +1 -0
- package/dist/utils/internal/logger.js +573 -0
- package/dist/utils/internal/logger.js.map +1 -0
- package/dist/utils/internal/performance.d.ts +78 -0
- package/dist/utils/internal/performance.d.ts.map +1 -0
- package/dist/utils/internal/performance.js +227 -0
- package/dist/utils/internal/performance.js.map +1 -0
- package/dist/utils/internal/requestContext.d.ts +200 -0
- package/dist/utils/internal/requestContext.d.ts.map +1 -0
- package/dist/utils/internal/requestContext.js +163 -0
- package/dist/utils/internal/requestContext.js.map +1 -0
- package/dist/utils/internal/runtime.d.ts +49 -0
- package/dist/utils/internal/runtime.d.ts.map +1 -0
- package/dist/utils/internal/runtime.js +90 -0
- package/dist/utils/internal/runtime.js.map +1 -0
- package/dist/utils/internal/startupBanner.d.ts +23 -0
- package/dist/utils/internal/startupBanner.d.ts.map +1 -0
- package/dist/utils/internal/startupBanner.js +34 -0
- package/dist/utils/internal/startupBanner.js.map +1 -0
- package/dist/utils/metrics/tokenCounter.d.ts +97 -0
- package/dist/utils/metrics/tokenCounter.d.ts.map +1 -0
- package/dist/utils/metrics/tokenCounter.js +162 -0
- package/dist/utils/metrics/tokenCounter.js.map +1 -0
- package/dist/utils/network/fetchWithTimeout.d.ts +91 -0
- package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -0
- package/dist/utils/network/fetchWithTimeout.js +305 -0
- package/dist/utils/network/fetchWithTimeout.js.map +1 -0
- package/dist/utils/pagination/pagination.d.ts +157 -0
- package/dist/utils/pagination/pagination.d.ts.map +1 -0
- package/dist/utils/pagination/pagination.js +191 -0
- package/dist/utils/pagination/pagination.js.map +1 -0
- package/dist/utils/parsing/csvParser.d.ts +84 -0
- package/dist/utils/parsing/csvParser.d.ts.map +1 -0
- package/dist/utils/parsing/csvParser.js +132 -0
- package/dist/utils/parsing/csvParser.js.map +1 -0
- package/dist/utils/parsing/dateParser.d.ts +103 -0
- package/dist/utils/parsing/dateParser.d.ts.map +1 -0
- package/dist/utils/parsing/dateParser.js +142 -0
- package/dist/utils/parsing/dateParser.js.map +1 -0
- package/dist/utils/parsing/frontmatterParser.d.ts +91 -0
- package/dist/utils/parsing/frontmatterParser.d.ts.map +1 -0
- package/dist/utils/parsing/frontmatterParser.js +163 -0
- package/dist/utils/parsing/frontmatterParser.js.map +1 -0
- package/dist/utils/parsing/index.d.ts +15 -0
- package/dist/utils/parsing/index.d.ts.map +1 -0
- package/dist/utils/parsing/index.js +15 -0
- package/dist/utils/parsing/index.js.map +1 -0
- package/dist/utils/parsing/jsonParser.d.ts +115 -0
- package/dist/utils/parsing/jsonParser.d.ts.map +1 -0
- package/dist/utils/parsing/jsonParser.js +177 -0
- package/dist/utils/parsing/jsonParser.js.map +1 -0
- package/dist/utils/parsing/pdfParser.d.ts +563 -0
- package/dist/utils/parsing/pdfParser.d.ts.map +1 -0
- package/dist/utils/parsing/pdfParser.js +775 -0
- package/dist/utils/parsing/pdfParser.js.map +1 -0
- package/dist/utils/parsing/thinkBlock.d.ts +31 -0
- package/dist/utils/parsing/thinkBlock.d.ts.map +1 -0
- package/dist/utils/parsing/thinkBlock.js +31 -0
- package/dist/utils/parsing/thinkBlock.js.map +1 -0
- package/dist/utils/parsing/xmlParser.d.ts +69 -0
- package/dist/utils/parsing/xmlParser.d.ts.map +1 -0
- package/dist/utils/parsing/xmlParser.js +140 -0
- package/dist/utils/parsing/xmlParser.js.map +1 -0
- package/dist/utils/parsing/yamlParser.d.ts +64 -0
- package/dist/utils/parsing/yamlParser.d.ts.map +1 -0
- package/dist/utils/parsing/yamlParser.js +129 -0
- package/dist/utils/parsing/yamlParser.js.map +1 -0
- package/dist/utils/scheduling/scheduler.d.ts +174 -0
- package/dist/utils/scheduling/scheduler.d.ts.map +1 -0
- package/dist/utils/scheduling/scheduler.js +248 -0
- package/dist/utils/scheduling/scheduler.js.map +1 -0
- package/dist/utils/security/idGenerator.d.ts +189 -0
- package/dist/utils/security/idGenerator.d.ts.map +1 -0
- package/dist/utils/security/idGenerator.js +301 -0
- package/dist/utils/security/idGenerator.js.map +1 -0
- package/dist/utils/security/index.d.ts +8 -0
- package/dist/utils/security/index.d.ts.map +1 -0
- package/dist/utils/security/index.js +8 -0
- package/dist/utils/security/index.js.map +1 -0
- package/dist/utils/security/rateLimiter.d.ts +171 -0
- package/dist/utils/security/rateLimiter.d.ts.map +1 -0
- package/dist/utils/security/rateLimiter.js +294 -0
- package/dist/utils/security/rateLimiter.js.map +1 -0
- package/dist/utils/security/sanitization.d.ts +430 -0
- package/dist/utils/security/sanitization.d.ts.map +1 -0
- package/dist/utils/security/sanitization.js +759 -0
- package/dist/utils/security/sanitization.js.map +1 -0
- package/dist/utils/telemetry/index.d.ts +12 -0
- package/dist/utils/telemetry/index.d.ts.map +1 -0
- package/dist/utils/telemetry/index.js +12 -0
- package/dist/utils/telemetry/index.js.map +1 -0
- package/dist/utils/telemetry/instrumentation.d.ts +62 -0
- package/dist/utils/telemetry/instrumentation.d.ts.map +1 -0
- package/dist/utils/telemetry/instrumentation.js +223 -0
- package/dist/utils/telemetry/instrumentation.js.map +1 -0
- package/dist/utils/telemetry/metrics.d.ts +170 -0
- package/dist/utils/telemetry/metrics.d.ts.map +1 -0
- package/dist/utils/telemetry/metrics.js +205 -0
- package/dist/utils/telemetry/metrics.js.map +1 -0
- package/dist/utils/telemetry/semconv.d.ts +147 -0
- package/dist/utils/telemetry/semconv.d.ts.map +1 -0
- package/dist/utils/telemetry/semconv.js +159 -0
- package/dist/utils/telemetry/semconv.js.map +1 -0
- package/dist/utils/telemetry/trace.d.ts +141 -0
- package/dist/utils/telemetry/trace.d.ts.map +1 -0
- package/dist/utils/telemetry/trace.js +193 -0
- package/dist/utils/telemetry/trace.js.map +1 -0
- package/dist/utils/types/guards.d.ts +209 -0
- package/dist/utils/types/guards.d.ts.map +1 -0
- package/dist/utils/types/guards.js +229 -0
- package/dist/utils/types/guards.js.map +1 -0
- package/dist/utils/types/index.d.ts +6 -0
- package/dist/utils/types/index.d.ts.map +1 -0
- package/dist/utils/types/index.js +6 -0
- package/dist/utils/types/index.js.map +1 -0
- package/dist/worker.d.ts +59 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +216 -0
- package/dist/worker.js.map +1 -0
- package/package.json +377 -0
- package/skills/README.md +38 -0
- package/skills/add-export/SKILL.md +49 -0
- package/skills/add-prompt/SKILL.md +97 -0
- package/skills/add-provider/SKILL.md +53 -0
- package/skills/add-resource/SKILL.md +107 -0
- package/skills/add-service/SKILL.md +113 -0
- package/skills/add-tool/SKILL.md +110 -0
- package/skills/api-auth/SKILL.md +173 -0
- package/skills/api-config/SKILL.md +68 -0
- package/skills/api-context/SKILL.md +321 -0
- package/skills/api-errors/SKILL.md +146 -0
- package/skills/api-services/SKILL.md +24 -0
- package/skills/api-services/references/graph.md +124 -0
- package/skills/api-services/references/llm.md +46 -0
- package/skills/api-services/references/speech.md +72 -0
- package/skills/api-testing/SKILL.md +263 -0
- package/skills/api-utils/SKILL.md +106 -0
- package/skills/api-utils/references/formatting.md +237 -0
- package/skills/api-utils/references/parsing.md +263 -0
- package/skills/api-utils/references/security.md +226 -0
- package/skills/api-workers/SKILL.md +165 -0
- package/skills/devcheck/SKILL.md +31 -0
- package/skills/maintenance/SKILL.md +52 -0
- package/skills/migrate-mcp-ts-template/SKILL.md +131 -0
- package/skills/release/SKILL.md +67 -0
- package/skills/setup/SKILL.md +89 -0
- package/skills/walkthrough-init/SKILL.md +50 -0
- package/templates/.env.example +17 -0
- package/templates/AGENTS.md +113 -0
- package/templates/CLAUDE.md +113 -0
- package/templates/_tsconfig.json +33 -0
- package/templates/biome.template.json +43 -0
- package/templates/package.json +26 -0
- package/templates/src/index.ts +16 -0
- package/templates/src/mcp-server/prompts/definitions/echo.prompt.ts +19 -0
- package/templates/src/mcp-server/resources/definitions/echo.resource.ts +30 -0
- package/templates/src/mcp-server/tools/definitions/echo.tool.ts +24 -0
- package/templates/vitest.config.ts +12 -0
- package/tsconfig.base.json +44 -0
- 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
|
+
}
|