mcp-ts-template 1.7.5 → 1.7.8

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 (250) hide show
  1. package/README.md +43 -48
  2. package/dist/config/index.d.ts +13 -0
  3. package/dist/config/index.d.ts.map +1 -0
  4. package/dist/config/index.js +34 -3
  5. package/dist/config/index.js.map +1 -0
  6. package/dist/index.d.ts +1 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +32 -37
  9. package/dist/index.js.map +1 -0
  10. package/dist/mcp-server/resources/echoResource/echoResourceLogic.d.ts +1 -0
  11. package/dist/mcp-server/resources/echoResource/echoResourceLogic.d.ts.map +1 -0
  12. package/dist/mcp-server/resources/echoResource/echoResourceLogic.js +1 -0
  13. package/dist/mcp-server/resources/echoResource/echoResourceLogic.js.map +1 -0
  14. package/dist/mcp-server/resources/echoResource/index.d.ts +1 -0
  15. package/dist/mcp-server/resources/echoResource/index.d.ts.map +1 -0
  16. package/dist/mcp-server/resources/echoResource/index.js +1 -0
  17. package/dist/mcp-server/resources/echoResource/index.js.map +1 -0
  18. package/dist/mcp-server/resources/echoResource/registration.d.ts +1 -0
  19. package/dist/mcp-server/resources/echoResource/registration.d.ts.map +1 -0
  20. package/dist/mcp-server/resources/echoResource/registration.js +1 -0
  21. package/dist/mcp-server/resources/echoResource/registration.js.map +1 -0
  22. package/dist/mcp-server/server.d.ts +3 -2
  23. package/dist/mcp-server/server.d.ts.map +1 -0
  24. package/dist/mcp-server/server.js +20 -12
  25. package/dist/mcp-server/server.js.map +1 -0
  26. package/dist/mcp-server/tools/catFactFetcher/index.d.ts +1 -0
  27. package/dist/mcp-server/tools/catFactFetcher/index.d.ts.map +1 -0
  28. package/dist/mcp-server/tools/catFactFetcher/index.js +1 -0
  29. package/dist/mcp-server/tools/catFactFetcher/index.js.map +1 -0
  30. package/dist/mcp-server/tools/catFactFetcher/logic.d.ts +1 -0
  31. package/dist/mcp-server/tools/catFactFetcher/logic.d.ts.map +1 -0
  32. package/dist/mcp-server/tools/catFactFetcher/logic.js +35 -12
  33. package/dist/mcp-server/tools/catFactFetcher/logic.js.map +1 -0
  34. package/dist/mcp-server/tools/catFactFetcher/registration.d.ts +1 -0
  35. package/dist/mcp-server/tools/catFactFetcher/registration.d.ts.map +1 -0
  36. package/dist/mcp-server/tools/catFactFetcher/registration.js +1 -0
  37. package/dist/mcp-server/tools/catFactFetcher/registration.js.map +1 -0
  38. package/dist/mcp-server/tools/echoTool/index.d.ts +1 -0
  39. package/dist/mcp-server/tools/echoTool/index.d.ts.map +1 -0
  40. package/dist/mcp-server/tools/echoTool/index.js +1 -0
  41. package/dist/mcp-server/tools/echoTool/index.js.map +1 -0
  42. package/dist/mcp-server/tools/echoTool/logic.d.ts +1 -0
  43. package/dist/mcp-server/tools/echoTool/logic.d.ts.map +1 -0
  44. package/dist/mcp-server/tools/echoTool/logic.js +1 -0
  45. package/dist/mcp-server/tools/echoTool/logic.js.map +1 -0
  46. package/dist/mcp-server/tools/echoTool/registration.d.ts +1 -0
  47. package/dist/mcp-server/tools/echoTool/registration.d.ts.map +1 -0
  48. package/dist/mcp-server/tools/echoTool/registration.js +1 -0
  49. package/dist/mcp-server/tools/echoTool/registration.js.map +1 -0
  50. package/dist/mcp-server/tools/imageTest/index.d.ts +1 -0
  51. package/dist/mcp-server/tools/imageTest/index.d.ts.map +1 -0
  52. package/dist/mcp-server/tools/imageTest/index.js +1 -0
  53. package/dist/mcp-server/tools/imageTest/index.js.map +1 -0
  54. package/dist/mcp-server/tools/imageTest/logic.d.ts +1 -0
  55. package/dist/mcp-server/tools/imageTest/logic.d.ts.map +1 -0
  56. package/dist/mcp-server/tools/imageTest/logic.js +1 -0
  57. package/dist/mcp-server/tools/imageTest/logic.js.map +1 -0
  58. package/dist/mcp-server/tools/imageTest/registration.d.ts +1 -0
  59. package/dist/mcp-server/tools/imageTest/registration.d.ts.map +1 -0
  60. package/dist/mcp-server/tools/imageTest/registration.js +1 -0
  61. package/dist/mcp-server/tools/imageTest/registration.js.map +1 -0
  62. package/dist/mcp-server/transports/auth/authFactory.d.ts +1 -0
  63. package/dist/mcp-server/transports/auth/authFactory.d.ts.map +1 -0
  64. package/dist/mcp-server/transports/auth/authFactory.js +11 -0
  65. package/dist/mcp-server/transports/auth/authFactory.js.map +1 -0
  66. package/dist/mcp-server/transports/auth/authMiddleware.d.ts +1 -0
  67. package/dist/mcp-server/transports/auth/authMiddleware.d.ts.map +1 -0
  68. package/dist/mcp-server/transports/auth/authMiddleware.js +17 -4
  69. package/dist/mcp-server/transports/auth/authMiddleware.js.map +1 -0
  70. package/dist/mcp-server/transports/auth/index.d.ts +2 -1
  71. package/dist/mcp-server/transports/auth/index.d.ts.map +1 -0
  72. package/dist/mcp-server/transports/auth/index.js +1 -0
  73. package/dist/mcp-server/transports/auth/index.js.map +1 -0
  74. package/dist/mcp-server/transports/auth/lib/authContext.d.ts +1 -0
  75. package/dist/mcp-server/transports/auth/lib/authContext.d.ts.map +1 -0
  76. package/dist/mcp-server/transports/auth/lib/authContext.js +1 -0
  77. package/dist/mcp-server/transports/auth/lib/authContext.js.map +1 -0
  78. package/dist/mcp-server/transports/auth/lib/authTypes.d.ts +1 -0
  79. package/dist/mcp-server/transports/auth/lib/authTypes.d.ts.map +1 -0
  80. package/dist/mcp-server/transports/auth/lib/authTypes.js +1 -0
  81. package/dist/mcp-server/transports/auth/lib/authTypes.js.map +1 -0
  82. package/dist/mcp-server/transports/auth/lib/authUtils.d.ts +1 -0
  83. package/dist/mcp-server/transports/auth/lib/authUtils.d.ts.map +1 -0
  84. package/dist/mcp-server/transports/auth/lib/authUtils.js +22 -14
  85. package/dist/mcp-server/transports/auth/lib/authUtils.js.map +1 -0
  86. package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts +1 -0
  87. package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts.map +1 -0
  88. package/dist/mcp-server/transports/auth/strategies/authStrategy.js +1 -0
  89. package/dist/mcp-server/transports/auth/strategies/authStrategy.js.map +1 -0
  90. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts +1 -0
  91. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts.map +1 -0
  92. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js +50 -15
  93. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js.map +1 -0
  94. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts +1 -0
  95. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts.map +1 -0
  96. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js +50 -12
  97. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js.map +1 -0
  98. package/dist/mcp-server/transports/core/baseTransportManager.d.ts +4 -2
  99. package/dist/mcp-server/transports/core/baseTransportManager.d.ts.map +1 -0
  100. package/dist/mcp-server/transports/core/baseTransportManager.js +8 -0
  101. package/dist/mcp-server/transports/core/baseTransportManager.js.map +1 -0
  102. package/dist/mcp-server/transports/core/honoNodeBridge.d.ts +24 -0
  103. package/dist/mcp-server/transports/core/honoNodeBridge.d.ts.map +1 -0
  104. package/dist/mcp-server/transports/core/honoNodeBridge.js +58 -0
  105. package/dist/mcp-server/transports/core/honoNodeBridge.js.map +1 -0
  106. package/dist/mcp-server/transports/core/statefulTransportManager.d.ts +8 -10
  107. package/dist/mcp-server/transports/core/statefulTransportManager.d.ts.map +1 -0
  108. package/dist/mcp-server/transports/core/statefulTransportManager.js +147 -65
  109. package/dist/mcp-server/transports/core/statefulTransportManager.js.map +1 -0
  110. package/dist/mcp-server/transports/core/statelessTransportManager.d.ts +6 -3
  111. package/dist/mcp-server/transports/core/statelessTransportManager.d.ts.map +1 -0
  112. package/dist/mcp-server/transports/core/statelessTransportManager.js +54 -17
  113. package/dist/mcp-server/transports/core/statelessTransportManager.js.map +1 -0
  114. package/dist/mcp-server/transports/core/transportTypes.d.ts +10 -5
  115. package/dist/mcp-server/transports/core/transportTypes.d.ts.map +1 -0
  116. package/dist/mcp-server/transports/core/transportTypes.js +1 -0
  117. package/dist/mcp-server/transports/core/transportTypes.js.map +1 -0
  118. package/dist/mcp-server/transports/http/httpErrorHandler.d.ts +5 -9
  119. package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -0
  120. package/dist/mcp-server/transports/http/httpErrorHandler.js +26 -3
  121. package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -0
  122. package/dist/mcp-server/transports/http/httpTransport.d.ts +5 -33
  123. package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -0
  124. package/dist/mcp-server/transports/http/httpTransport.js +131 -179
  125. package/dist/mcp-server/transports/http/httpTransport.js.map +1 -0
  126. package/dist/mcp-server/transports/http/httpTypes.d.ts +4 -1
  127. package/dist/mcp-server/transports/http/httpTypes.d.ts.map +1 -0
  128. package/dist/mcp-server/transports/http/httpTypes.js +1 -0
  129. package/dist/mcp-server/transports/http/httpTypes.js.map +1 -0
  130. package/dist/mcp-server/transports/http/index.d.ts +1 -0
  131. package/dist/mcp-server/transports/http/index.d.ts.map +1 -0
  132. package/dist/mcp-server/transports/http/index.js +1 -0
  133. package/dist/mcp-server/transports/http/index.js.map +1 -0
  134. package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts +27 -0
  135. package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts.map +1 -0
  136. package/dist/mcp-server/transports/http/mcpTransportMiddleware.js +66 -0
  137. package/dist/mcp-server/transports/http/mcpTransportMiddleware.js.map +1 -0
  138. package/dist/mcp-server/transports/stdio/index.d.ts +1 -0
  139. package/dist/mcp-server/transports/stdio/index.d.ts.map +1 -0
  140. package/dist/mcp-server/transports/stdio/index.js +1 -0
  141. package/dist/mcp-server/transports/stdio/index.js.map +1 -0
  142. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts +1 -0
  143. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts.map +1 -0
  144. package/dist/mcp-server/transports/stdio/stdioTransport.js +9 -3
  145. package/dist/mcp-server/transports/stdio/stdioTransport.js.map +1 -0
  146. package/dist/services/duck-db/duckDBConnectionManager.d.ts +1 -0
  147. package/dist/services/duck-db/duckDBConnectionManager.d.ts.map +1 -0
  148. package/dist/services/duck-db/duckDBConnectionManager.js +5 -6
  149. package/dist/services/duck-db/duckDBConnectionManager.js.map +1 -0
  150. package/dist/services/duck-db/duckDBQueryExecutor.d.ts +1 -0
  151. package/dist/services/duck-db/duckDBQueryExecutor.d.ts.map +1 -0
  152. package/dist/services/duck-db/duckDBQueryExecutor.js +2 -0
  153. package/dist/services/duck-db/duckDBQueryExecutor.js.map +1 -0
  154. package/dist/services/duck-db/duckDBService.d.ts +1 -0
  155. package/dist/services/duck-db/duckDBService.d.ts.map +1 -0
  156. package/dist/services/duck-db/duckDBService.js +4 -2
  157. package/dist/services/duck-db/duckDBService.js.map +1 -0
  158. package/dist/services/duck-db/types.d.ts +1 -0
  159. package/dist/services/duck-db/types.d.ts.map +1 -0
  160. package/dist/services/duck-db/types.js +1 -0
  161. package/dist/services/duck-db/types.js.map +1 -0
  162. package/dist/services/llm-providers/openRouterProvider.d.ts +1 -0
  163. package/dist/services/llm-providers/openRouterProvider.d.ts.map +1 -0
  164. package/dist/services/llm-providers/openRouterProvider.js +4 -1
  165. package/dist/services/llm-providers/openRouterProvider.js.map +1 -0
  166. package/dist/services/supabase/supabaseClient.d.ts +1 -0
  167. package/dist/services/supabase/supabaseClient.d.ts.map +1 -0
  168. package/dist/services/supabase/supabaseClient.js +1 -0
  169. package/dist/services/supabase/supabaseClient.js.map +1 -0
  170. package/dist/storage/duckdbExample.d.ts +1 -0
  171. package/dist/storage/duckdbExample.d.ts.map +1 -0
  172. package/dist/storage/duckdbExample.js +7 -1
  173. package/dist/storage/duckdbExample.js.map +1 -0
  174. package/dist/types-global/errors.d.ts +1 -0
  175. package/dist/types-global/errors.d.ts.map +1 -0
  176. package/dist/types-global/errors.js +10 -0
  177. package/dist/types-global/errors.js.map +1 -0
  178. package/dist/utils/index.d.ts +1 -0
  179. package/dist/utils/index.d.ts.map +1 -0
  180. package/dist/utils/index.js +1 -0
  181. package/dist/utils/index.js.map +1 -0
  182. package/dist/utils/internal/errorHandler.d.ts +1 -0
  183. package/dist/utils/internal/errorHandler.d.ts.map +1 -0
  184. package/dist/utils/internal/errorHandler.js +4 -2
  185. package/dist/utils/internal/errorHandler.js.map +1 -0
  186. package/dist/utils/internal/index.d.ts +1 -0
  187. package/dist/utils/internal/index.d.ts.map +1 -0
  188. package/dist/utils/internal/index.js +1 -0
  189. package/dist/utils/internal/index.js.map +1 -0
  190. package/dist/utils/internal/logger.d.ts +1 -0
  191. package/dist/utils/internal/logger.d.ts.map +1 -0
  192. package/dist/utils/internal/logger.js +12 -8
  193. package/dist/utils/internal/logger.js.map +1 -0
  194. package/dist/utils/internal/requestContext.d.ts +1 -0
  195. package/dist/utils/internal/requestContext.d.ts.map +1 -0
  196. package/dist/utils/internal/requestContext.js +1 -0
  197. package/dist/utils/internal/requestContext.js.map +1 -0
  198. package/dist/utils/metrics/index.d.ts +1 -0
  199. package/dist/utils/metrics/index.d.ts.map +1 -0
  200. package/dist/utils/metrics/index.js +1 -0
  201. package/dist/utils/metrics/index.js.map +1 -0
  202. package/dist/utils/metrics/tokenCounter.d.ts +1 -0
  203. package/dist/utils/metrics/tokenCounter.d.ts.map +1 -0
  204. package/dist/utils/metrics/tokenCounter.js +1 -0
  205. package/dist/utils/metrics/tokenCounter.js.map +1 -0
  206. package/dist/utils/network/fetchWithTimeout.d.ts +1 -0
  207. package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -0
  208. package/dist/utils/network/fetchWithTimeout.js +1 -0
  209. package/dist/utils/network/fetchWithTimeout.js.map +1 -0
  210. package/dist/utils/network/index.d.ts +1 -0
  211. package/dist/utils/network/index.d.ts.map +1 -0
  212. package/dist/utils/network/index.js +1 -0
  213. package/dist/utils/network/index.js.map +1 -0
  214. package/dist/utils/parsing/dateParser.d.ts +1 -0
  215. package/dist/utils/parsing/dateParser.d.ts.map +1 -0
  216. package/dist/utils/parsing/dateParser.js +1 -0
  217. package/dist/utils/parsing/dateParser.js.map +1 -0
  218. package/dist/utils/parsing/index.d.ts +1 -0
  219. package/dist/utils/parsing/index.d.ts.map +1 -0
  220. package/dist/utils/parsing/index.js +1 -0
  221. package/dist/utils/parsing/index.js.map +1 -0
  222. package/dist/utils/parsing/jsonParser.d.ts +1 -0
  223. package/dist/utils/parsing/jsonParser.d.ts.map +1 -0
  224. package/dist/utils/parsing/jsonParser.js +3 -2
  225. package/dist/utils/parsing/jsonParser.js.map +1 -0
  226. package/dist/utils/scheduling/index.d.ts +1 -0
  227. package/dist/utils/scheduling/index.d.ts.map +1 -0
  228. package/dist/utils/scheduling/index.js +1 -0
  229. package/dist/utils/scheduling/index.js.map +1 -0
  230. package/dist/utils/scheduling/scheduler.d.ts +1 -0
  231. package/dist/utils/scheduling/scheduler.d.ts.map +1 -0
  232. package/dist/utils/scheduling/scheduler.js +3 -1
  233. package/dist/utils/scheduling/scheduler.js.map +1 -0
  234. package/dist/utils/security/idGenerator.d.ts +1 -0
  235. package/dist/utils/security/idGenerator.d.ts.map +1 -0
  236. package/dist/utils/security/idGenerator.js +32 -27
  237. package/dist/utils/security/idGenerator.js.map +1 -0
  238. package/dist/utils/security/index.d.ts +1 -0
  239. package/dist/utils/security/index.d.ts.map +1 -0
  240. package/dist/utils/security/index.js +1 -0
  241. package/dist/utils/security/index.js.map +1 -0
  242. package/dist/utils/security/rateLimiter.d.ts +1 -0
  243. package/dist/utils/security/rateLimiter.d.ts.map +1 -0
  244. package/dist/utils/security/rateLimiter.js +23 -16
  245. package/dist/utils/security/rateLimiter.js.map +1 -0
  246. package/dist/utils/security/sanitization.d.ts +1 -0
  247. package/dist/utils/security/sanitization.d.ts.map +1 -0
  248. package/dist/utils/security/sanitization.js +65 -63
  249. package/dist/utils/security/sanitization.js.map +1 -0
  250. package/package.json +49 -35
package/README.md CHANGED
@@ -1,14 +1,14 @@
1
1
  <div align="center">
2
2
 
3
- # 🚀 Model Context Protocol (MCP) Server TypeScript Template
3
+ # mcp-ts-template
4
4
 
5
- **Build production-grade MCP servers with a powerful, type-safe, and extensible foundation.**
5
+ **Build production-grade Model Context Protocol (MCP) servers with a powerful, type-safe, and extensible foundation.**
6
6
 
7
7
  [![TypeScript](https://img.shields.io/badge/TypeScript-^5.8.3-blue?style=flat-square)](https://www.typescriptlang.org/)
8
8
  [![Model Context Protocol SDK](https://img.shields.io/badge/MCP%20SDK-^1.17.0-green?style=flat-square)](https://github.com/modelcontextprotocol/typescript-sdk)
9
9
  [![MCP Spec Version](https://img.shields.io/badge/MCP%20Spec-2025--06--18-lightgrey?style=flat-square)](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/docs/specification/2025-06-18/changelog.mdx)
10
- [![Version](https://img.shields.io/badge/Version-1.7.5-blue?style=flat-square)](./CHANGELOG.md)
11
- [![Coverage](https://img.shields.io/badge/Coverage-84.6%25-green?style=flat-square)](./vitest.config.ts)
10
+ [![Version](https://img.shields.io/badge/Version-1.7.8-blue?style=flat-square)](./CHANGELOG.md)
11
+ [![Coverage](https://img.shields.io/badge/Coverage-66.82%25-brightgreen?style=flat-square)](./vitest.config.ts)
12
12
  [![License](https://img.shields.io/badge/License-Apache%202.0-blue?style=flat-square)](https://opensource.org/licenses/Apache-2.0)
13
13
  [![Status](https://img.shields.io/badge/Status-Stable-green?style=flat-square)](https://github.com/cyanheads/mcp-ts-template/issues)
14
14
  [![GitHub](https://img.shields.io/github/stars/cyanheads/mcp-ts-template?style=social)](https://github.com/cyanheads/mcp-ts-template)
@@ -30,36 +30,30 @@ Building a robust server for AI agents is more than just writing code. It requir
30
30
 
31
31
  ## ✨ Key Features
32
32
 
33
- | Feature Area | Description | Key Components / Location |
34
- | :-------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------- |
35
- | **🔌 MCP Server** | Functional server with example tools (`EchoTool`, `CatFactFetcher`) and an `EchoResource`. Supports `stdio` and **Streamable HTTP** transports. | `src/mcp-server/` |
36
- | **🚀 Production Utilities** | Logging, Error Handling, ID Generation, Rate Limiting, Request Context tracking, Input Sanitization. | `src/utils/` |
37
- | **🔒 Type Safety/Security** | Strong type checking via TypeScript & Zod validation. Built-in security utilities (sanitization, auth middleware for HTTP). | Throughout, `src/utils/security/`, `src/mcp-server/transports/auth/` |
38
- | **⚙️ Error Handling** | Consistent error categorization (`BaseErrorCode`), detailed logging, centralized handling (`ErrorHandler`). | `src/utils/internal/errorHandler.ts`, `src/types-global/` |
39
- | **📚 Documentation** | Comprehensive `README.md`, structured JSDoc comments, API references. | `README.md`, Codebase, `tsdoc.json`, `docs/api-references/` |
40
- | **🕵️ Interaction Logging** | Captures raw requests and responses for all external LLM provider interactions to a dedicated `interactions.log` file for full traceability. | `src/utils/internal/logger.ts` |
41
- | **🤖 Agent Ready** | Includes a [.clinerules](.clinerules) developer cheatsheet tailored for LLM coding agents. | `.clinerules` |
42
- | **🛠️ Utility Scripts** | Scripts for cleaning builds, setting executable permissions, generating directory trees, and fetching OpenAPI specs. | `scripts/` |
43
- | **🧩 Services** | Reusable modules for LLM (OpenRouter) and data storage (DuckDB) integration, with examples. | `src/services/`, `src/storage/duckdbExample.ts` |
44
- | **🧪 Unit Testing** | Integrated with Vitest for fast and reliable unit testing. Includes example tests for core tool logic and a coverage reporter. | `vitest.config.ts`, `tests/` |
45
-
46
- ## 🌟 Projects Using This Template
47
-
48
- This template is already powering several MCP servers, demonstrating its flexibility and robustness:
49
-
50
- | Project | Description |
51
- | :-------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------- |
52
- | [**clinicaltrialsgov-mcp-server**](https://github.com/cyanheads/clinicaltrialsgov-mcp-server) | Provides an LLM-friendly interface to the official ClinicalTrials.gov v2 API, enabling agents to analyze clinical study data. |
53
- | [**pubmed-mcp-server**](https://github.com/cyanheads/pubmed-mcp-server) | Enables AI agents to search, retrieve, and visualize biomedical literature from PubMed via NCBI E-utilities. |
54
- | [**git-mcp-server**](https://github.com/cyanheads/git-mcp-server) | Provides an enterprise-ready MCP interface for Git operations, allowing agents to manage repositories programmatically. |
55
- | [**obsidian-mcp-server**](https://github.com/cyanheads/obsidian-mcp-server) | Allows AI agents to read, write, search, and manage notes in Obsidian via the Local REST API plugin. |
56
- | [**atlas-mcp-server**](https://github.com/cyanheads/atlas-mcp-server) | An advanced task and knowledge management system with a Neo4j backend for structured data organization. |
57
- | [**filesystem-mcp-server**](https://github.com/cyanheads/filesystem-mcp-server) | Offers platform-agnostic file system capabilities for AI agents, including advanced search and directory traversal. |
58
- | [**workflows-mcp-server**](https://github.com/cyanheads/workflows-mcp-server) | A declarative workflow engine that allows agents to execute complex, multi-step automations from simple YAML files. |
59
-
60
- _Note: [**toolkit-mcp-server**](https://github.com/cyanheads/toolkit-mcp-server) was built on an older version of this template and is pending updates._
61
-
62
- You can also **see my [GitHub profile](https://github.com/cyanheads/)** for additional MCP servers I've created.
33
+ | Feature Area | Description | Key Components / Location |
34
+ | :-------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------- |
35
+ | **🔌 MCP Server** | A functional server with example tools and resources. Supports `stdio` and a **Streamable HTTP** transport built with [**Hono**](https://hono.dev/). | `src/mcp-server/`, `src/mcp-server/transports/` |
36
+ | **🚀 Production Utilities** | Logging, Error Handling, ID Generation, Rate Limiting, Request Context tracking, Input Sanitization. | `src/utils/` |
37
+ | **🔒 Type Safety/Security** | Strong type checking via TypeScript & Zod validation. Built-in security utilities (sanitization, auth middleware for HTTP). | Throughout, `src/utils/security/`, `src/mcp-server/transports/auth/` |
38
+ | **⚙️ Error Handling** | Consistent error categorization (`BaseErrorCode`), detailed logging, centralized handling (`ErrorHandler`). | `src/utils/internal/errorHandler.ts`, `src/types-global/` |
39
+ | **📚 Documentation** | Comprehensive `README.md`, structured JSDoc comments, API references. | `README.md`, Codebase, `tsdoc.json`, `docs/api-references/` |
40
+ | **🕵️ Interaction Logging** | Captures raw requests and responses for all external LLM provider interactions to a dedicated `interactions.log` file for full traceability. | `src/utils/internal/logger.ts` |
41
+ | **🤖 Agent Ready** | Includes a [.clinerules](./.clinerules/clinerules.md) developer cheatsheet tailored for LLM coding agents. | `.clinerules/` |
42
+ | **🛠️ Utility Scripts** | Scripts for cleaning builds, setting executable permissions, generating directory trees, and fetching OpenAPI specs. | `scripts/` |
43
+ | **🧩 Services** | Reusable modules for LLM (OpenRouter) and data storage (DuckDB) integration, with examples. | `src/services/`, `src/storage/duckdbExample.ts` |
44
+ | **🧪 Integration Testing** | Integrated with Vitest for fast and reliable integration testing. Includes example tests for core logic and a coverage reporter. | `vitest.config.ts`, `tests/` |
45
+
46
+ ## Architecture Overview
47
+
48
+ This template employs a modular, transport-agnostic architecture to ensure a clean separation of concerns.
49
+
50
+ - **Core Server (`src/mcp-server/server.ts`)**: The central point where tools and resources are registered. It remains independent of how the server is accessed.
51
+ - **Transports (`src/mcp-server/transports/`)**: The transport layer connects the core server to the outside world.
52
+ - **StdioTransport**: For direct process-to-process communication.
53
+ - **HttpTransport**: A modern, streamable HTTP server built with **Hono**. It uses a middleware-based approach for handling CORS, rate limiting, authentication, and MCP request processing.
54
+ - **Transport Managers (`src/mcp-server/transports/core/`)**: These managers bridge the gap between the transport layer (like Hono) and the MCP SDK, handling session management (stateful vs. stateless) and request lifecycle.
55
+
56
+ This design allows you to add new tools and logic to the core server without worrying about the underlying transport details.
63
57
 
64
58
  ## Quick Start
65
59
 
@@ -93,7 +87,7 @@ npm run build
93
87
 
94
88
  ### 4. Running Tests
95
89
 
96
- This template uses [Vitest](https://vitest.dev/) for unit testing. Tests are located in the `tests/` directory, mirroring the `src/` structure.
90
+ This template uses [Vitest](https://vitest.dev/) for testing, with a strong emphasis on **integration testing** to ensure all components work together correctly.
97
91
 
98
92
  - **Run all tests once:**
99
93
  ```bash
@@ -110,17 +104,15 @@ This template uses [Vitest](https://vitest.dev/) for unit testing. Tests are loc
110
104
 
111
105
  ## ⚙️ Configuration
112
106
 
113
- ### Server Configuration (Environment Variables)
114
-
115
- Configure the MCP server's behavior using these environment variables:
107
+ Configure the server using these environment variables (or a `.env` file):
116
108
 
117
109
  | Variable | Description | Default |
118
110
  | :-------------------- | :---------------------------------------------------------------------------------------- | :------------------------------------- |
119
111
  | `MCP_TRANSPORT_TYPE` | Server transport: `stdio` or `http`. | `stdio` |
120
112
  | `MCP_SESSION_MODE` | Session mode for HTTP: `stateless`, `stateful`, or `auto`. | `auto` |
121
- | `MCP_HTTP_PORT` | Port for the HTTP server (if `MCP_TRANSPORT_TYPE=http`). | `3010` |
122
- | `MCP_HTTP_HOST` | Host address for the HTTP server (if `MCP_TRANSPORT_TYPE=http`). | `127.0.0.1` |
123
- | `MCP_ALLOWED_ORIGINS` | Comma-separated allowed origins for CORS (if `MCP_TRANSPORT_TYPE=http`). | (none) |
113
+ | `MCP_HTTP_PORT` | Port for the HTTP server. | `3010` |
114
+ | `MCP_HTTP_HOST` | Host address for the HTTP server. | `127.0.0.1` |
115
+ | `MCP_ALLOWED_ORIGINS` | Comma-separated allowed origins for CORS. | (none) |
124
116
  | `MCP_AUTH_MODE` | Authentication mode for HTTP: `jwt`, `oauth`, or `none`. | `none` |
125
117
  | `MCP_AUTH_SECRET_KEY` | **Required for `jwt` mode.** Secret key (min 32 chars) for signing/verifying auth tokens. | (none - **MUST be set in production**) |
126
118
  | `OAUTH_ISSUER_URL` | **Required for `oauth` mode.** The issuer URL of your authorization server. | (none) |
@@ -129,12 +121,12 @@ Configure the MCP server's behavior using these environment variables:
129
121
 
130
122
  ## 🏗️ Project Structure
131
123
 
132
- - **`src/mcp-server/`**: Contains the MCP server implementation, including example tools, resources, and transport handlers.
133
- - **`src/config/`**: Handles loading and validation of environment variables and application configuration.
134
- - **`src/services/`**: Provides reusable modules for integrating with external services (DuckDB, OpenRouter).
124
+ - **`src/mcp-server/`**: Contains the core MCP server, tools, resources, and transport handlers.
125
+ - **`src/config/`**: Handles loading and validation of environment variables.
126
+ - **`src/services/`**: Reusable modules for integrating with external services (DuckDB, OpenRouter).
135
127
  - **`src/types-global/`**: Defines shared TypeScript interfaces and type definitions.
136
- - **`src/utils/`**: A collection of core utilities (logging, error handling, security, etc.).
137
- - **`src/index.ts`**: The main entry point for the application, responsible for initializing and starting the MCP server.
128
+ - **`src/utils/`**: Core utilities (logging, error handling, security, etc.).
129
+ - **`src/index.ts`**: The main entry point that initializes and starts the server.
138
130
 
139
131
  **Explore the full structure yourself:**
140
132
 
@@ -146,9 +138,12 @@ npm run tree
146
138
 
147
139
  ## 🧩 Extending the System
148
140
 
149
- ### Adding Tools to the Server
141
+ The canonical pattern for adding new tools and resources is defined in the [.clinerules](./.clinerules/clinerules.md) file. It mandates a strict separation of concerns:
142
+
143
+ 1. **`logic.ts`**: Contains the pure business logic, Zod schemas, and type definitions. This file throws structured errors on failure.
144
+ 2. **`registration.ts`**: Acts as the "handler." It registers the tool with the server, wraps the logic call in a `try...catch` block, and formats the final success or error response.
150
145
 
151
- For detailed guidance on how to add your own custom Tools and Resources to the MCP server, please see the [Server Extension Guide](src/mcp-server/README.md).
146
+ This "Logic Throws, Handler Catches" pattern ensures that core logic remains pure and testable, while the registration layer handles all side effects and response formatting.
152
147
 
153
148
  ## 🌍 Explore More MCP Resources
154
149
 
@@ -42,6 +42,14 @@ export declare const config: {
42
42
  mcpHttpPort: number;
43
43
  /** HTTP server host (if http transport). From `MCP_HTTP_HOST` env var. Default: "127.0.0.1". */
44
44
  mcpHttpHost: string;
45
+ /** MCP endpoint path for HTTP transport. From `MCP_HTTP_ENDPOINT_PATH`. Default: "/mcp". */
46
+ mcpHttpEndpointPath: string;
47
+ /** Max retries for port binding. From `MCP_HTTP_MAX_PORT_RETRIES`. Default: 15. */
48
+ mcpHttpMaxPortRetries: number;
49
+ /** Delay between port binding retries. From `MCP_HTTP_PORT_RETRY_DELAY_MS`. Default: 50. */
50
+ mcpHttpPortRetryDelayMs: number;
51
+ /** Timeout for stale stateful sessions. From `MCP_STATEFUL_SESSION_STALE_TIMEOUT_MS`. Default: 1800000. */
52
+ mcpStatefulSessionStaleTimeoutMs: number;
45
53
  /** Array of allowed CORS origins (http transport). From `MCP_ALLOWED_ORIGINS` (comma-separated). */
46
54
  mcpAllowedOrigins: string[] | undefined;
47
55
  /** Auth secret key (JWTs, http transport). From `MCP_AUTH_SECRET_KEY`. CRITICAL. */
@@ -54,6 +62,10 @@ export declare const config: {
54
62
  oauthJwksUri: string | undefined;
55
63
  /** OAuth 2.1 Audience. From `OAUTH_AUDIENCE`. */
56
64
  oauthAudience: string | undefined;
65
+ /** Development mode client ID. From `DEV_MCP_CLIENT_ID`. */
66
+ devMcpClientId: string | undefined;
67
+ /** Development mode scopes. From `DEV_MCP_SCOPES`. */
68
+ devMcpScopes: string[] | undefined;
57
69
  /** OpenRouter App URL. From `OPENROUTER_APP_URL`. Default: "http://localhost:3000". */
58
70
  openrouterAppUrl: string;
59
71
  /** OpenRouter App Name. From `OPENROUTER_APP_NAME`. Defaults to `mcpServerName`. */
@@ -98,3 +110,4 @@ export declare const logLevel: string;
98
110
  * Exported for convenience.
99
111
  */
100
112
  export declare const environment: string;
113
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA8SH;;;GAGG;AACH,eAAO,MAAM,MAAM;IACjB,qCAAqC;;;;;IAErC,wFAAwF;;IAExF,uFAAuF;;IAEvF,qEAAqE;;IAErE,oEAAoE;;IAEpE,4EAA4E;;IAE5E,mGAAmG;;IAEnG,4GAA4G;;IAE5G,yFAAyF;;IAEzF,gGAAgG;;IAEhG,4FAA4F;;IAE5F,mFAAmF;;IAEnF,4FAA4F;;IAE5F,2GAA2G;;IAE3G,oGAAoG;;IAIpG,oFAAoF;;IAEpF,wEAAwE;;IAExE,qDAAqD;;IAErD,iDAAiD;;IAEjD,iDAAiD;;IAEjD,4DAA4D;;IAE5D,sDAAsD;;IAEtD,uFAAuF;;IAEvF,oFAAoF;;IAEpF,qDAAqD;;IAErD,mDAAmD;;IAEnD,+DAA+D;;IAE/D,mDAAmD;;IAEnD,6DAA6D;;IAE7D,mDAAmD;;IAEnD,mDAAmD;;IAGnD,4EAA4E;;;;;;;;;IAqB5E,wEAAwE;;;;;;CASzE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAwB,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAA2B,CAAC"}
@@ -91,6 +91,22 @@ const EnvSchema = z.object({
91
91
  MCP_HTTP_PORT: z.coerce.number().int().positive().default(3010),
92
92
  /** HTTP server host (if MCP_TRANSPORT_TYPE is "http"). Default: "127.0.0.1". */
93
93
  MCP_HTTP_HOST: z.string().default("127.0.0.1"),
94
+ /** The endpoint path for the MCP server. Default: "/mcp". */
95
+ MCP_HTTP_ENDPOINT_PATH: z.string().default("/mcp"),
96
+ /** Max retries for binding to a port if the initial one is in use. Default: 15. */
97
+ MCP_HTTP_MAX_PORT_RETRIES: z.coerce.number().int().nonnegative().default(15),
98
+ /** Delay in ms between port binding retries. Default: 50. */
99
+ MCP_HTTP_PORT_RETRY_DELAY_MS: z.coerce
100
+ .number()
101
+ .int()
102
+ .nonnegative()
103
+ .default(50),
104
+ /** Timeout in ms for considering a stateful session stale and eligible for cleanup. Default: 1800000 (30 minutes). */
105
+ MCP_STATEFUL_SESSION_STALE_TIMEOUT_MS: z.coerce
106
+ .number()
107
+ .int()
108
+ .positive()
109
+ .default(1_800_000),
94
110
  /** Optional. Comma-separated allowed origins for CORS (HTTP transport). */
95
111
  MCP_ALLOWED_ORIGINS: z.string().optional(),
96
112
  /** Optional. Secret key (min 32 chars) for auth tokens (HTTP transport). CRITICAL for production. */
@@ -106,6 +122,10 @@ const EnvSchema = z.object({
106
122
  OAUTH_JWKS_URI: z.string().url().optional(),
107
123
  /** The audience claim for the OAuth 2.1 access tokens. This server will reject tokens not intended for it. */
108
124
  OAUTH_AUDIENCE: z.string().optional(),
125
+ /** Optional. Client ID to use in development mode for JWT strategy. Default: "dev-client-id". */
126
+ DEV_MCP_CLIENT_ID: z.string().optional(),
127
+ /** Optional. Comma-separated scopes for development mode JWT strategy. Default: "dev-scope". */
128
+ DEV_MCP_SCOPES: z.string().optional(),
109
129
  /** Optional. Application URL for OpenRouter integration. */
110
130
  OPENROUTER_APP_URL: z
111
131
  .string()
@@ -116,9 +136,7 @@ const EnvSchema = z.object({
116
136
  /** Optional. API key for OpenRouter services. */
117
137
  OPENROUTER_API_KEY: z.string().optional(),
118
138
  /** Default LLM model. Default: "google/gemini-2.5-flash". */
119
- LLM_DEFAULT_MODEL: z
120
- .string()
121
- .default("google/gemini-2.5-flash"),
139
+ LLM_DEFAULT_MODEL: z.string().default("google/gemini-2.5-flash"),
122
140
  /** Optional. Default LLM temperature (0.0-2.0). */
123
141
  LLM_DEFAULT_TEMPERATURE: z.coerce.number().min(0).max(2).optional(),
124
142
  /** Optional. Default LLM top_p (0.0-1.0). */
@@ -270,6 +288,14 @@ export const config = {
270
288
  mcpHttpPort: env.MCP_HTTP_PORT,
271
289
  /** HTTP server host (if http transport). From `MCP_HTTP_HOST` env var. Default: "127.0.0.1". */
272
290
  mcpHttpHost: env.MCP_HTTP_HOST,
291
+ /** MCP endpoint path for HTTP transport. From `MCP_HTTP_ENDPOINT_PATH`. Default: "/mcp". */
292
+ mcpHttpEndpointPath: env.MCP_HTTP_ENDPOINT_PATH,
293
+ /** Max retries for port binding. From `MCP_HTTP_MAX_PORT_RETRIES`. Default: 15. */
294
+ mcpHttpMaxPortRetries: env.MCP_HTTP_MAX_PORT_RETRIES,
295
+ /** Delay between port binding retries. From `MCP_HTTP_PORT_RETRY_DELAY_MS`. Default: 50. */
296
+ mcpHttpPortRetryDelayMs: env.MCP_HTTP_PORT_RETRY_DELAY_MS,
297
+ /** Timeout for stale stateful sessions. From `MCP_STATEFUL_SESSION_STALE_TIMEOUT_MS`. Default: 1800000. */
298
+ mcpStatefulSessionStaleTimeoutMs: env.MCP_STATEFUL_SESSION_STALE_TIMEOUT_MS,
273
299
  /** Array of allowed CORS origins (http transport). From `MCP_ALLOWED_ORIGINS` (comma-separated). */
274
300
  mcpAllowedOrigins: env.MCP_ALLOWED_ORIGINS?.split(",")
275
301
  .map((origin) => origin.trim())
@@ -284,6 +310,10 @@ export const config = {
284
310
  oauthJwksUri: env.OAUTH_JWKS_URI,
285
311
  /** OAuth 2.1 Audience. From `OAUTH_AUDIENCE`. */
286
312
  oauthAudience: env.OAUTH_AUDIENCE,
313
+ /** Development mode client ID. From `DEV_MCP_CLIENT_ID`. */
314
+ devMcpClientId: env.DEV_MCP_CLIENT_ID,
315
+ /** Development mode scopes. From `DEV_MCP_SCOPES`. */
316
+ devMcpScopes: env.DEV_MCP_SCOPES?.split(",").map((s) => s.trim()),
287
317
  /** OpenRouter App URL. From `OPENROUTER_APP_URL`. Default: "http://localhost:3000". */
288
318
  openrouterAppUrl: env.OPENROUTER_APP_URL || "http://localhost:3000",
289
319
  /** OpenRouter App Name. From `OPENROUTER_APP_NAME`. Defaults to `mcpServerName`. */
@@ -339,3 +369,4 @@ export const logLevel = config.logLevel;
339
369
  * Exported for convenience.
340
370
  */
341
371
  export const environment = config.environment;
372
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -22,3 +22,4 @@
22
22
  * @module src/index
23
23
  */
24
24
  export {};
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG"}
package/dist/index.js CHANGED
@@ -51,47 +51,41 @@ const shutdown = async (signal) => {
51
51
  triggerEvent: signal,
52
52
  });
53
53
  logger.info(`Received ${signal}. Initiating graceful shutdown...`, shutdownContext);
54
- const shutdownPromises = [];
55
- if (mcpStdioServer) {
56
- const serverToClose = mcpStdioServer;
57
- shutdownPromises.push(new Promise((resolve) => {
58
- logger.info("Closing main MCP server (STDIO)...", shutdownContext);
59
- serverToClose
60
- .close()
61
- .then(() => {
62
- logger.info("Main MCP server (STDIO) closed successfully.", shutdownContext);
63
- resolve();
64
- })
65
- .catch((err) => {
66
- logger.error("Error closing MCP server (STDIO).", {
67
- ...shutdownContext,
68
- error: err,
54
+ try {
55
+ let closePromise = Promise.resolve();
56
+ const transportType = config.mcpTransportType;
57
+ if (transportType === "stdio" && mcpStdioServer) {
58
+ logger.info("Attempting to close main MCP server (STDIO)...", shutdownContext);
59
+ closePromise = mcpStdioServer.close();
60
+ }
61
+ else if (transportType === "http" && actualHttpServer) {
62
+ logger.info("Attempting to close HTTP server...", shutdownContext);
63
+ closePromise = new Promise((resolve, reject) => {
64
+ actualHttpServer.close((err) => {
65
+ if (err) {
66
+ logger.error("Error closing HTTP server.", {
67
+ ...shutdownContext,
68
+ error: err.message,
69
+ });
70
+ return reject(err);
71
+ }
72
+ logger.info("HTTP server closed successfully.", shutdownContext);
73
+ resolve();
69
74
  });
70
- resolve(); // Resolve even on error to not block shutdown
71
75
  });
72
- }));
76
+ }
77
+ await closePromise;
78
+ logger.info("Graceful shutdown completed successfully. Exiting.", shutdownContext);
79
+ process.exit(0);
73
80
  }
74
- if (actualHttpServer) {
75
- const serverToClose = actualHttpServer;
76
- shutdownPromises.push(new Promise((resolve) => {
77
- logger.info("Closing HTTP server...", shutdownContext);
78
- serverToClose.close((err) => {
79
- if (err) {
80
- logger.error("Error closing HTTP server.", {
81
- ...shutdownContext,
82
- error: err,
83
- });
84
- }
85
- else {
86
- logger.info("HTTP server closed successfully.", shutdownContext);
87
- }
88
- resolve(); // Resolve regardless of error
89
- });
90
- }));
81
+ catch (error) {
82
+ logger.error("Critical error during shutdown process.", {
83
+ ...shutdownContext,
84
+ errorMessage: error instanceof Error ? error.message : String(error),
85
+ errorStack: error instanceof Error ? error.stack : undefined,
86
+ });
87
+ process.exit(1);
91
88
  }
92
- await Promise.allSettled(shutdownPromises);
93
- logger.info("Graceful shutdown completed successfully. Exiting.", shutdownContext);
94
- process.exit(0);
95
89
  };
96
90
  /**
97
91
  * Initializes and starts the main MCP server application.
@@ -212,3 +206,4 @@ const start = async () => {
212
206
  process.exit(1);
213
207
  }
214
208
  })();
209
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -36,3 +36,4 @@ export interface EchoResourceResponsePayload {
36
36
  * @returns The data payload for the response.
37
37
  */
38
38
  export declare function echoResourceLogic(uri: URL, params: EchoResourceParams, context: RequestContext): Promise<EchoResourceResponsePayload>;
39
+ //# sourceMappingURL=echoResourceLogic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"echoResourceLogic.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/echoResource/echoResourceLogic.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAU,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;EAOlC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,2BAA2B,CAAC,CA2BtC"}
@@ -45,3 +45,4 @@ export async function echoResourceLogic(uri, params, context) {
45
45
  });
46
46
  return responsePayload;
47
47
  }
48
+ //# sourceMappingURL=echoResourceLogic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"echoResourceLogic.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/echoResource/echoResourceLogic.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAuB,MAAM,yBAAyB,CAAC;AAEtE;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,iHAAiH,CAClH;CACJ,CAAC,CAAC;AAgBH;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAQ,EACR,MAA0B,EAC1B,OAAuB;IAEvB,kEAAkE;IAClE,0EAA0E;IAC1E,MAAM,eAAe,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1E,MAAM,aAAa,GACjB,MAAM,CAAC,OAAO,IAAI,eAAe,IAAI,sBAAsB,CAAC;IAE9D,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE;QAC9C,GAAG,OAAO;QACV,WAAW,EAAE,GAAG,CAAC,IAAI;QACrB,gBAAgB,EAAE,aAAa;KAChC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAgC;QACnD,OAAO,EAAE,aAAa;QACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,UAAU,EAAE,GAAG,CAAC,IAAI;KACrB,CAAC;IAEF,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE;QACpD,GAAG,OAAO;QACV,sBAAsB,EAAE;YACtB,aAAa,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM;SAC9C;KACF,CAAC,CAAC;IAEH,OAAO,eAAe,CAAC;AACzB,CAAC"}
@@ -11,3 +11,4 @@
11
11
  * @module src/mcp-server/resources/echoResource/index
12
12
  */
13
13
  export { registerEchoResource } from "./registration.js";
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/echoResource/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -11,3 +11,4 @@
11
11
  * @module src/mcp-server/resources/echoResource/index
12
12
  */
13
13
  export { registerEchoResource } from "./registration.js";
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/echoResource/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -12,3 +12,4 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
12
12
  * @returns A promise that resolves when the resource registration is complete.
13
13
  */
14
14
  export declare const registerEchoResource: (server: McpServer) => Promise<void>;
15
+ //# sourceMappingURL=registration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/echoResource/registration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,SAAS,EAEV,MAAM,yCAAyC,CAAC;AAcjD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,SAAS,KAChB,OAAO,CAAC,IAAI,CAuFd,CAAC"}
@@ -76,3 +76,4 @@ export const registerEchoResource = async (server) => {
76
76
  critical: true,
77
77
  });
78
78
  };
79
+ //# sourceMappingURL=registration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registration.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/echoResource/registration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,gBAAgB,GACjB,MAAM,yCAAyC,CAAC;AAKjD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EACL,YAAY,EACZ,MAAM,EAEN,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAsB,MAAM,wBAAwB,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,MAAiB,EACF,EAAE;IACjB,MAAM,YAAY,GAAG,eAAe,CAAC;IACrC,MAAM,mBAAmB,GACvB,qBAAqB,CAAC,oBAAoB,CAAC;QACzC,SAAS,EAAE,kBAAkB;QAC7B,YAAY,EAAE,YAAY;KAC3B,CAAC,CAAC;IAEL,MAAM,CAAC,IAAI,CAAC,0BAA0B,YAAY,GAAG,EAAE,mBAAmB,CAAC,CAAC;IAE5E,MAAM,YAAY,CAAC,QAAQ,CACzB,KAAK,IAAI,EAAE;QACT,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,kBAAkB,EAAE;YACxD,IAAI,EAAE,KAAK,IAAkC,EAAE;gBAC7C,OAAO;oBACL,SAAS,EAAE;wBACT;4BACE,GAAG,EAAE,cAAc;4BACnB,IAAI,EAAE,sBAAsB;4BAC5B,WAAW,EAAE,iCAAiC;yBAC/C;qBACF;iBACF,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,QAAQ,CACb,YAAY,EACZ,QAAQ,EACR;YACE,IAAI,EAAE,uBAAuB;YAC7B,WAAW,EAAE,gDAAgD;YAC7D,QAAQ,EAAE,kBAAkB;YAC5B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC;SACxD,EACD,KAAK,EACH,GAAQ,EACR,MAA0B,EACG,EAAE;YAC/B,MAAM,cAAc,GAClB,qBAAqB,CAAC,oBAAoB,CAAC;gBACzC,eAAe,EAAE,mBAAmB,CAAC,SAAS;gBAC9C,SAAS,EAAE,oBAAoB;gBAC/B,WAAW,EAAE,GAAG,CAAC,IAAI;gBACrB,WAAW,EAAE,MAAM;aACpB,CAAC,CAAC;YAEL,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAC1C,GAAG,EACH,MAAM,EACN,cAAc,CACf,CAAC;gBACF,OAAO;oBACL,QAAQ,EAAE;wBACR;4BACE,GAAG,EAAE,GAAG,CAAC,IAAI;4BACb,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CACtD,QAAQ,CACT;4BACD,QAAQ,EAAE,kBAAkB;yBAC7B;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,6DAA6D;gBAC7D,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE;oBACpC,SAAS,EAAE,yBAAyB;oBACpC,OAAO,EAAE,cAAc;oBACvB,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE;iBACjC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CACF,CAAC;QAEF,MAAM,CAAC,IAAI,CACT,aAAa,YAAY,4BAA4B,EACrD,mBAAmB,CACpB,CAAC;IACJ,CAAC,EACD;QACE,SAAS,EAAE,uBAAuB,YAAY,EAAE;QAChD,OAAO,EAAE,mBAAmB;QAC5B,SAAS,EAAE,aAAa,CAAC,qBAAqB;QAC9C,QAAQ,EAAE,IAAI;KACf,CACF,CAAC;AACJ,CAAC,CAAC"}
@@ -13,9 +13,10 @@
13
13
  * - Transports: https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/docs/specification/2025-03-26/basic/transports.mdx
14
14
  * @module src/mcp-server/server
15
15
  */
16
- import { ServerType } from "@hono/node-server";
17
16
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
17
+ import http from "http";
18
18
  /**
19
19
  * Main application entry point. Initializes and starts the MCP server.
20
20
  */
21
- export declare function initializeAndStartServer(): Promise<void | McpServer | ServerType>;
21
+ export declare function initializeAndStartServer(): Promise<McpServer | http.Server>;
22
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp-server/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,IAAI,MAAM,MAAM,CAAC;AAyFxB;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAuBjF"}
@@ -16,7 +16,6 @@
16
16
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
17
17
  import { config, environment } from "../config/index.js";
18
18
  import { ErrorHandler, logger, requestContextService } from "../utils/index.js";
19
- import { BaseErrorCode } from "../types-global/errors.js";
20
19
  import { registerEchoResource } from "./resources/echoResource/index.js";
21
20
  import { registerCatFactFetcherTool } from "./tools/catFactFetcher/index.js";
22
21
  import { registerEchoTool } from "./tools/echoTool/index.js";
@@ -47,25 +46,28 @@ async function createMcpServerInstance() {
47
46
  tools: { listChanged: true },
48
47
  },
49
48
  });
50
- await ErrorHandler.tryCatch(async () => {
49
+ try {
51
50
  logger.debug("Registering resources and tools...", context);
52
51
  await registerEchoResource(server);
53
52
  await registerEchoTool(server);
54
53
  await registerCatFactFetcherTool(server);
55
54
  await registerFetchImageTestTool(server);
56
55
  logger.info("Resources and tools registered successfully", context);
57
- }, {
58
- operation: "registerAllCapabilities",
59
- context,
60
- errorCode: BaseErrorCode.INITIALIZATION_FAILED,
61
- critical: true,
62
- });
56
+ }
57
+ catch (err) {
58
+ logger.error("Failed to register resources/tools", {
59
+ ...context,
60
+ error: err instanceof Error ? err.message : String(err),
61
+ stack: err instanceof Error ? err.stack : undefined,
62
+ });
63
+ throw err;
64
+ }
63
65
  return server;
64
66
  }
65
67
  /**
66
68
  * Selects, sets up, and starts the appropriate MCP transport layer based on configuration.
67
69
  *
68
- * @returns Resolves with `McpServer` for 'stdio', `http.Server` for 'http', or `void`.
70
+ * @returns Resolves with `McpServer` for 'stdio' or `http.Server` for 'http'.
69
71
  * @throws {Error} If transport type is unsupported or setup fails.
70
72
  * @private
71
73
  */
@@ -85,6 +87,7 @@ async function startTransport() {
85
87
  await startStdioTransport(server, context);
86
88
  return server;
87
89
  }
90
+ logger.crit(`Unsupported transport type configured: ${transportType}`, context);
88
91
  throw new Error(`Unsupported transport type: ${transportType}. Must be 'stdio' or 'http'.`);
89
92
  }
90
93
  /**
@@ -101,13 +104,18 @@ export async function initializeAndStartServer() {
101
104
  return result;
102
105
  }
103
106
  catch (err) {
107
+ logger.crit("Critical error during MCP server initialization.", {
108
+ ...context,
109
+ error: err instanceof Error ? err.message : String(err),
110
+ stack: err instanceof Error ? err.stack : undefined,
111
+ });
104
112
  ErrorHandler.handleError(err, {
105
- operation: "initializeAndStartServer",
106
- context: context,
113
+ ...context,
114
+ operation: "initializeAndStartServer_Catch",
107
115
  critical: true,
108
- rethrow: false,
109
116
  });
110
117
  logger.info("Exiting process due to critical initialization error.", context);
111
118
  process.exit(1);
112
119
  }
113
120
  }
121
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp-server/server.ts"],"names":[],"mappings":"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"}
@@ -5,3 +5,4 @@
5
5
  * @module src/mcp-server/tools/catFactFetcher/index
6
6
  */
7
7
  export { registerCatFactFetcherTool } from "./registration.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/catFactFetcher/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC"}
@@ -5,3 +5,4 @@
5
5
  * @module src/mcp-server/tools/catFactFetcher/index
6
6
  */
7
7
  export { registerCatFactFetcherTool } from "./registration.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/catFactFetcher/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC"}
@@ -51,3 +51,4 @@ export type CatFactFetcherResponse = z.infer<typeof CatFactFetcherResponseSchema
51
51
  * @throws {McpError} If the API request fails or returns an error.
52
52
  */
53
53
  export declare function catFactFetcherLogic(params: CatFactFetcherInput, context: RequestContext): Promise<CatFactFetcherResponse>;
54
+ //# sourceMappingURL=logic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/catFactFetcher/logic.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,yBAAyB,CAAC;AAWjC;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;EAanC,CAAC;AAEJ;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;EAYvC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC1C,OAAO,4BAA4B,CACpC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,sBAAsB,CAAC,CAmEjC"}