@breadstone/archipel-mcp 0.0.54 → 0.0.56

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 (216) hide show
  1. package/data/guides/ai-image-generation.md +101 -0
  2. package/data/guides/ai-realtime-voice.md +85 -473
  3. package/data/guides/ai-text-generation.md +98 -635
  4. package/data/guides/health-indicators.md +67 -66
  5. package/data/guides/index.md +2 -1
  6. package/data/guides/intelligence-prompts-warm-up.md +81 -312
  7. package/data/packages/platform-intelligence/api/Class.AnthropicIntelligenceProviderAdapter.md +122 -0
  8. package/data/packages/platform-intelligence/api/Class.GatewayIntelligenceProviderAdapter.md +122 -0
  9. package/data/packages/platform-intelligence/api/Class.GoogleIntelligenceProviderAdapter.md +122 -0
  10. package/data/packages/platform-intelligence/api/Class.GrokIntelligenceProviderAdapter.md +122 -0
  11. package/data/packages/platform-intelligence/api/Class.IntelligenceAgent.md +95 -0
  12. package/data/packages/platform-intelligence/api/Class.IntelligenceAgentFactory.md +11 -23
  13. package/data/packages/platform-intelligence/api/Class.IntelligenceEmbeddingGenerator.md +25 -21
  14. package/data/packages/platform-intelligence/api/Class.IntelligenceHealthIndicator.md +15 -10
  15. package/data/packages/platform-intelligence/api/Class.IntelligenceImageGenerator.md +117 -0
  16. package/data/packages/platform-intelligence/api/Class.IntelligenceLanguageGenerator.md +159 -0
  17. package/data/packages/platform-intelligence/api/Class.IntelligenceModule.md +2 -2
  18. package/data/packages/platform-intelligence/api/Class.IntelligencePromptExecutor.md +6 -6
  19. package/data/packages/platform-intelligence/api/Class.IntelligencePromptPolicyPort.md +1 -1
  20. package/data/packages/platform-intelligence/api/Class.IntelligenceProviderAdapterPort.md +104 -0
  21. package/data/packages/platform-intelligence/api/Class.IntelligenceProviderAssetUploader.md +21 -15
  22. package/data/packages/platform-intelligence/api/Class.IntelligenceProviderDiagnostics.md +55 -0
  23. package/data/packages/platform-intelligence/api/Class.IntelligenceProviderError.md +14 -4
  24. package/data/packages/platform-intelligence/api/Class.IntelligenceProviderRegistry.md +68 -0
  25. package/data/packages/platform-intelligence/api/Class.IntelligenceRealtimeError.md +9 -9
  26. package/data/packages/platform-intelligence/api/Class.IntelligenceRealtimeMeteringPort.md +1 -1
  27. package/data/packages/platform-intelligence/api/Class.IntelligenceRealtimeSessionFactory.md +8 -8
  28. package/data/packages/platform-intelligence/api/Class.IntelligenceRealtimeSessionPort.md +18 -18
  29. package/data/packages/platform-intelligence/api/Class.IntelligenceReranker.md +58 -0
  30. package/data/packages/platform-intelligence/api/Class.IntelligenceSpeechGenerator.md +117 -0
  31. package/data/packages/platform-intelligence/api/Class.IntelligenceToolBase.md +14 -16
  32. package/data/packages/platform-intelligence/api/Class.IntelligenceToolRegistry.md +14 -18
  33. package/data/packages/platform-intelligence/api/Class.IntelligenceTranscriptionGenerator.md +139 -0
  34. package/data/packages/platform-intelligence/api/Class.IntelligenceVideoGenerator.md +117 -0
  35. package/data/packages/platform-intelligence/api/Class.MiMoIntelligenceProviderAdapter.md +122 -0
  36. package/data/packages/platform-intelligence/api/Class.OpenAIIntelligenceProviderAdapter.md +122 -0
  37. package/data/packages/platform-intelligence/api/Function.createAnthropicAdvisor20260301Tool.md +1 -1
  38. package/data/packages/platform-intelligence/api/Function.createAnthropicBash20241022Tool.md +1 -1
  39. package/data/packages/platform-intelligence/api/Function.createAnthropicBash20250124Tool.md +1 -1
  40. package/data/packages/platform-intelligence/api/Function.createAnthropicCodeExecution20250522Tool.md +1 -1
  41. package/data/packages/platform-intelligence/api/Function.createAnthropicCodeExecution20250825Tool.md +1 -1
  42. package/data/packages/platform-intelligence/api/Function.createAnthropicCodeExecution20260120Tool.md +1 -1
  43. package/data/packages/platform-intelligence/api/Function.createAnthropicComputer20241022Tool.md +1 -1
  44. package/data/packages/platform-intelligence/api/Function.createAnthropicComputer20250124Tool.md +1 -1
  45. package/data/packages/platform-intelligence/api/Function.createAnthropicComputer20251124Tool.md +1 -1
  46. package/data/packages/platform-intelligence/api/Function.createAnthropicMemory20250818Tool.md +1 -1
  47. package/data/packages/platform-intelligence/api/Function.createAnthropicTextEditor20241022Tool.md +1 -1
  48. package/data/packages/platform-intelligence/api/Function.createAnthropicTextEditor20250124Tool.md +1 -1
  49. package/data/packages/platform-intelligence/api/Function.createAnthropicTextEditor20250429Tool.md +1 -1
  50. package/data/packages/platform-intelligence/api/Function.createAnthropicTextEditor20250728Tool.md +1 -1
  51. package/data/packages/platform-intelligence/api/Function.createAnthropicToolSearchBM2520251119Tool.md +1 -1
  52. package/data/packages/platform-intelligence/api/Function.createAnthropicToolSearchRegex20251119Tool.md +1 -1
  53. package/data/packages/platform-intelligence/api/Function.createAnthropicWebFetch20250910Tool.md +1 -1
  54. package/data/packages/platform-intelligence/api/Function.createAnthropicWebFetch20260209Tool.md +1 -1
  55. package/data/packages/platform-intelligence/api/Function.createAnthropicWebSearch20250305Tool.md +1 -1
  56. package/data/packages/platform-intelligence/api/Function.createAnthropicWebSearch20260209Tool.md +1 -1
  57. package/data/packages/platform-intelligence/api/Function.createGoogleCodeExecutionTool.md +1 -1
  58. package/data/packages/platform-intelligence/api/Function.createGoogleEnterpriseWebSearchTool.md +1 -1
  59. package/data/packages/platform-intelligence/api/Function.createGoogleFileSearchTool.md +1 -1
  60. package/data/packages/platform-intelligence/api/Function.createGoogleGoogleMapsTool.md +1 -1
  61. package/data/packages/platform-intelligence/api/Function.createGoogleGoogleSearchTool.md +1 -1
  62. package/data/packages/platform-intelligence/api/Function.createGoogleUrlContextTool.md +1 -1
  63. package/data/packages/platform-intelligence/api/Function.createGoogleVertexRagStoreTool.md +1 -1
  64. package/data/packages/platform-intelligence/api/Function.createGrokCodeExecutionTool.md +1 -1
  65. package/data/packages/platform-intelligence/api/Function.createGrokFileSearchTool.md +1 -1
  66. package/data/packages/platform-intelligence/api/Function.createGrokMcpServerTool.md +1 -1
  67. package/data/packages/platform-intelligence/api/Function.createGrokViewImageTool.md +1 -1
  68. package/data/packages/platform-intelligence/api/Function.createGrokViewXVideoTool.md +1 -1
  69. package/data/packages/platform-intelligence/api/Function.createGrokWebSearchTool.md +1 -1
  70. package/data/packages/platform-intelligence/api/Function.createGrokXSearchTool.md +1 -1
  71. package/data/packages/platform-intelligence/api/Function.createIntelligenceJsonSchema.md +31 -0
  72. package/data/packages/platform-intelligence/api/Function.createIntelligenceTool.md +2 -2
  73. package/data/packages/platform-intelligence/api/Function.createMimoCustomTool.md +5 -5
  74. package/data/packages/platform-intelligence/api/Function.createOpenAIApplyPatchTool.md +1 -1
  75. package/data/packages/platform-intelligence/api/Function.createOpenAICodeInterpreterTool.md +1 -1
  76. package/data/packages/platform-intelligence/api/Function.createOpenAICustomTool.md +1 -1
  77. package/data/packages/platform-intelligence/api/Function.createOpenAIFileSearchTool.md +1 -1
  78. package/data/packages/platform-intelligence/api/Function.createOpenAIImageGenerationTool.md +1 -1
  79. package/data/packages/platform-intelligence/api/Function.createOpenAILocalShellTool.md +1 -1
  80. package/data/packages/platform-intelligence/api/Function.createOpenAIMcpTool.md +1 -1
  81. package/data/packages/platform-intelligence/api/Function.createOpenAIShellTool.md +1 -1
  82. package/data/packages/platform-intelligence/api/Function.createOpenAIToolSearchTool.md +1 -1
  83. package/data/packages/platform-intelligence/api/Function.createOpenAIWebSearchPreviewTool.md +1 -1
  84. package/data/packages/platform-intelligence/api/Function.createOpenAIWebSearchTool.md +1 -1
  85. package/data/packages/platform-intelligence/api/Function.defineIntelligenceTool.md +31 -0
  86. package/data/packages/platform-intelligence/api/Interface.IIntelligenceAgentConfiguration.md +70 -0
  87. package/data/packages/platform-intelligence/api/Interface.IIntelligenceEmbeddingBatchOptions.md +140 -0
  88. package/data/packages/platform-intelligence/api/Interface.IIntelligenceEmbeddingBatchResult.md +70 -0
  89. package/data/packages/platform-intelligence/api/Interface.IIntelligenceEmbeddingOptions.md +130 -0
  90. package/data/packages/platform-intelligence/api/Interface.IIntelligenceEmbeddingResult.md +70 -0
  91. package/data/packages/platform-intelligence/api/Interface.IIntelligenceFileUploadOptions.md +118 -0
  92. package/data/packages/platform-intelligence/api/Interface.IIntelligenceFileUploadResult.md +60 -0
  93. package/data/packages/platform-intelligence/api/Interface.IIntelligenceGeneratedFile.md +40 -0
  94. package/data/packages/platform-intelligence/api/Interface.IIntelligenceGenerationStepStartEvent.md +50 -0
  95. package/data/packages/platform-intelligence/api/Interface.IIntelligenceImageGenerationOptions.md +186 -0
  96. package/data/packages/platform-intelligence/api/Interface.IIntelligenceImageGenerationResult.md +60 -0
  97. package/data/packages/platform-intelligence/api/Interface.IIntelligenceLanguageCompletion.md +141 -0
  98. package/data/packages/platform-intelligence/api/Interface.IIntelligenceLanguageGenerationOptions.md +250 -0
  99. package/data/packages/platform-intelligence/api/Interface.IIntelligenceLanguageStream.md +50 -0
  100. package/data/packages/platform-intelligence/api/Interface.IIntelligenceModelReference.md +34 -0
  101. package/data/packages/platform-intelligence/api/Interface.IIntelligenceModelRequestOptions.md +72 -0
  102. package/data/packages/platform-intelligence/api/Interface.IIntelligenceModelStatus.md +30 -0
  103. package/data/packages/platform-intelligence/api/Interface.IIntelligenceModuleOptions.md +54 -26
  104. package/data/packages/platform-intelligence/api/Interface.IIntelligenceObjectStream.md +56 -0
  105. package/data/packages/platform-intelligence/api/Interface.IIntelligencePrompt.md +50 -0
  106. package/data/packages/platform-intelligence/api/Interface.IIntelligencePromptDefinition.md +14 -14
  107. package/data/packages/platform-intelligence/api/Interface.IIntelligencePromptEffectivePolicy.md +1 -1
  108. package/data/packages/platform-intelligence/api/Interface.IIntelligencePromptExecutionPolicy.md +1 -1
  109. package/data/packages/platform-intelligence/api/Interface.IIntelligencePromptExecutionResult.md +15 -27
  110. package/data/packages/platform-intelligence/api/Interface.IIntelligenceProviderConfiguration.md +10 -10
  111. package/data/packages/platform-intelligence/api/Interface.IIntelligenceProviderLoadRequest.md +54 -0
  112. package/data/packages/platform-intelligence/api/Interface.IIntelligenceProviderProbeResult.md +70 -0
  113. package/data/packages/platform-intelligence/api/Interface.IIntelligenceRealtimeModuleOptions.md +9 -21
  114. package/data/packages/platform-intelligence/api/Interface.IIntelligenceRealtimeSessionOptions.md +23 -11
  115. package/data/packages/platform-intelligence/api/Interface.IIntelligenceRealtimeUsage.md +174 -10
  116. package/data/packages/platform-intelligence/api/Interface.IIntelligenceRequestOptions.md +114 -0
  117. package/data/packages/platform-intelligence/api/Interface.IIntelligenceRerankingOptions.md +156 -0
  118. package/data/packages/platform-intelligence/api/Interface.IIntelligenceRerankingResult.md +50 -0
  119. package/data/packages/platform-intelligence/api/Interface.IIntelligenceSkillUploadOptions.md +110 -0
  120. package/data/packages/platform-intelligence/api/Interface.IIntelligenceSkillUploadResult.md +80 -0
  121. package/data/packages/platform-intelligence/api/Interface.IIntelligenceSpeechGenerationOptions.md +180 -0
  122. package/data/packages/platform-intelligence/api/Interface.IIntelligenceSpeechGenerationResult.md +50 -0
  123. package/data/packages/platform-intelligence/api/Interface.IIntelligenceStreamingTranscriptionOptions.md +155 -0
  124. package/data/packages/platform-intelligence/api/Interface.IIntelligenceTool.md +7 -10
  125. package/data/packages/platform-intelligence/api/Interface.IIntelligenceToolCall.md +40 -0
  126. package/data/packages/platform-intelligence/api/Interface.IIntelligenceToolDefinition.md +91 -0
  127. package/data/packages/platform-intelligence/api/Interface.IIntelligenceToolExecutionEndEvent.md +50 -0
  128. package/data/packages/platform-intelligence/api/Interface.IIntelligenceToolExecutionStartEvent.md +30 -0
  129. package/data/packages/platform-intelligence/api/Interface.IIntelligenceToolRegistry.md +4 -4
  130. package/data/packages/platform-intelligence/api/Interface.IIntelligenceTranscriptionOptions.md +130 -0
  131. package/data/packages/platform-intelligence/api/Interface.IIntelligenceTranscriptionResult.md +84 -0
  132. package/data/packages/platform-intelligence/api/Interface.IIntelligenceTranscriptionStream.md +97 -0
  133. package/data/packages/platform-intelligence/api/Interface.IIntelligenceUsage.md +197 -0
  134. package/data/packages/platform-intelligence/api/Interface.IIntelligenceVideoGenerationOptions.md +245 -0
  135. package/data/packages/platform-intelligence/api/Interface.IIntelligenceVideoGenerationResult.md +50 -0
  136. package/data/packages/platform-intelligence/api/TypeAlias.IIntelligenceModelMessage.md +43 -0
  137. package/data/packages/platform-intelligence/api/TypeAlias.IIntelligencePromptModelRequirement.md +2 -2
  138. package/data/packages/platform-intelligence/api/TypeAlias.IIntelligenceSchema.md +70 -0
  139. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceCapability.md +14 -0
  140. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceDefaultModels.md +14 -0
  141. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceJsonValue.md +22 -0
  142. package/data/packages/platform-intelligence/api/TypeAlias.IntelligencePromptDefinitionConfiguration.md +2 -2
  143. package/data/packages/platform-intelligence/api/TypeAlias.IntelligencePromptGenerationOptions.md +1 -1
  144. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceProviderName.md +1 -1
  145. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceProviderOptions.md +14 -0
  146. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceProviderProbeStatus.md +14 -0
  147. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceProviderToolOptions.md +17 -0
  148. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceRealtimeMeteringEvent.md +1 -1
  149. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceRequestTimeouts.md +14 -0
  150. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceToolChoice.md +21 -0
  151. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceToolOutput.md +22 -0
  152. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceToolSet.md +14 -0
  153. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceTranscriptionStreamPart.md +46 -0
  154. package/data/packages/platform-intelligence/api/Variable.AI_GATEWAY_API_KEY.md +14 -0
  155. package/data/packages/platform-intelligence/api/Variable.AI_GATEWAY_BASE_URL.md +14 -0
  156. package/data/packages/platform-intelligence/api/Variable.AI_GATEWAY_CONFIG_ENTRIES.md +14 -0
  157. package/data/packages/platform-intelligence/api/Variable.INTELLIGENCE_API_KEY.md +1 -1
  158. package/data/packages/platform-intelligence/api/Variable.INTELLIGENCE_BASE_URL.md +1 -1
  159. package/data/packages/platform-intelligence/api/Variable.INTELLIGENCE_MAX_OUTPUT_TOKENS.md +1 -1
  160. package/data/packages/platform-intelligence/api/Variable.INTELLIGENCE_MODEL.md +1 -1
  161. package/data/packages/platform-intelligence/api/Variable.INTELLIGENCE_PROVIDER.md +2 -2
  162. package/data/packages/platform-intelligence/api/Variable.INTELLIGENCE_TEMPERATURE.md +1 -1
  163. package/data/packages/platform-intelligence/api/Variable.INTELLIGENCE_TOP_P.md +1 -1
  164. package/data/packages/platform-intelligence/api/Variable.IntelligenceCapabilityNames.md +40 -0
  165. package/data/packages/platform-intelligence/api/Variable.IntelligenceProviderNames.md +2 -0
  166. package/data/packages/platform-intelligence/api/Variable.PLATFORM_INTELLIGENCE_CONFIG_ENTRIES.md +2 -2
  167. package/data/packages/platform-intelligence/api/index.md +83 -32
  168. package/data/packages/platform-intelligence/index.md +81 -622
  169. package/package.json +1 -1
  170. package/data/packages/index.md +0 -8
  171. package/data/packages/platform-analytics/index.md +0 -209
  172. package/data/packages/platform-authentication/index.md +0 -725
  173. package/data/packages/platform-blob-storage/index.md +0 -416
  174. package/data/packages/platform-bootstrap/index.md +0 -162
  175. package/data/packages/platform-caching/index.md +0 -167
  176. package/data/packages/platform-configuration/index.md +0 -226
  177. package/data/packages/platform-core/index.md +0 -504
  178. package/data/packages/platform-cryptography/index.md +0 -142
  179. package/data/packages/platform-database/index.md +0 -337
  180. package/data/packages/platform-documents/index.md +0 -255
  181. package/data/packages/platform-esigning/index.md +0 -710
  182. package/data/packages/platform-feature-flags/index.md +0 -103
  183. package/data/packages/platform-health/index.md +0 -141
  184. package/data/packages/platform-intelligence/api/Class.IntelligenceMediaGenerator.md +0 -118
  185. package/data/packages/platform-intelligence/api/Class.IntelligenceStructuredGenerator.md +0 -70
  186. package/data/packages/platform-intelligence/api/Class.IntelligenceTelemetryRegistry.md +0 -44
  187. package/data/packages/platform-intelligence/api/Class.IntelligenceTextGenerator.md +0 -138
  188. package/data/packages/platform-intelligence/api/Function.createProviderOptions.md +0 -39
  189. package/data/packages/platform-intelligence/api/Function.loadAnthropicLanguageModel.md +0 -26
  190. package/data/packages/platform-intelligence/api/Function.loadGoogleLanguageModel.md +0 -26
  191. package/data/packages/platform-intelligence/api/Function.loadGoogleRealtimeModel.md +0 -25
  192. package/data/packages/platform-intelligence/api/Function.loadGrokLanguageModel.md +0 -26
  193. package/data/packages/platform-intelligence/api/Function.loadGrokRealtimeModel.md +0 -25
  194. package/data/packages/platform-intelligence/api/Function.loadMimoLanguageModel.md +0 -26
  195. package/data/packages/platform-intelligence/api/Function.loadOpenAILanguageModel.md +0 -26
  196. package/data/packages/platform-intelligence/api/Function.loadOpenAIRealtimeModel.md +0 -25
  197. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCompletionUsage.md +0 -46
  198. package/data/packages/platform-intelligence/api/Interface.IIntelligenceTextCompletion.md +0 -180
  199. package/data/packages/platform-intelligence/api/Interface.IIntelligenceTextGenerationOptions.md +0 -144
  200. package/data/packages/platform-intelligence/api/Interface.IIntelligenceTextGenerator.md +0 -78
  201. package/data/packages/platform-intelligence/api/Interface.IIntelligenceTextStreamingOptions.md +0 -170
  202. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceLanguageModelLoader.md +0 -24
  203. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceLanguageModelLoaders.md +0 -14
  204. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceRealtimeModelLoader.md +0 -25
  205. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceRealtimeModelLoaders.md +0 -14
  206. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceTextStream.md +0 -14
  207. package/data/packages/platform-logging/index.md +0 -150
  208. package/data/packages/platform-mailing/index.md +0 -470
  209. package/data/packages/platform-mapping/index.md +0 -123
  210. package/data/packages/platform-mcp/index.md +0 -335
  211. package/data/packages/platform-openapi/index.md +0 -207
  212. package/data/packages/platform-payments/index.md +0 -610
  213. package/data/packages/platform-queue/index.md +0 -192
  214. package/data/packages/platform-reporting/index.md +0 -233
  215. package/data/packages/platform-resources/index.md +0 -137
  216. package/data/packages/platform-telemetry/index.md +0 -262
@@ -1,335 +0,0 @@
1
- ---
2
- title: platform-mcp
3
- description: Reusable NestJS module for building Model Context Protocol (MCP) servers with decorator-driven handler registration and multi-transport support.
4
- order: 13
5
- tags: [mcp, model-context-protocol, tools, resources, prompts, transports, health]
6
- package: '@breadstone/archipel-platform-mcp'
7
- ---
8
-
9
- # platform-mcp
10
-
11
- A reusable NestJS module for building [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) servers. Provides decorators, automatic handler discovery, and transport management — all wired through NestJS dependency injection.
12
-
13
- **Package:** `@breadstone/archipel-platform-mcp`
14
-
15
- <InstallTabs />
16
-
17
- ## Installation
18
-
19
- ```typescript
20
- import {
21
- McpModule,
22
- McpTool,
23
- McpResource,
24
- McpPrompt,
25
- McpServerService,
26
- McpRegistryService,
27
- } from '@breadstone/archipel-platform-mcp';
28
- ```
29
-
30
- ### Peer Dependencies
31
-
32
- The host application must provide `@nestjs/common`, `@nestjs/core`, `@modelcontextprotocol/sdk`, `zod`, `reflect-metadata`, and `rxjs`.
33
-
34
- ---
35
-
36
- ## Features
37
-
38
- | Feature | Description |
39
- | ------------------ | ------------------------------------------------------------------------------------------- |
40
- | Decorator-driven | Annotate methods with `@McpTool`, `@McpResource`, or `@McpPrompt` to register MCP handlers. |
41
- | Auto-discovery | Handlers are discovered at module init via NestJS `DiscoveryService`. |
42
- | Dynamic Module | Configure via `McpModule.register()` (sync) or `McpModule.registerAsync()` (factory/class). |
43
- | Transport-agnostic | Built-in Stdio, Streamable HTTP, and SSE transports. Plug in any custom `Transport`. |
44
- | Zod schemas | Define input/output schemas for tools and argument schemas for prompts using Zod. |
45
- | NPM-publishable | Standalone library for reuse across multiple NestJS projects. |
46
-
47
- ---
48
-
49
- ## Module Configuration
50
-
51
- ### Synchronous
52
-
53
- ```typescript
54
- import { Module } from '@nestjs/common';
55
- import { McpModule } from '@breadstone/archipel-platform-mcp';
56
-
57
- @Module({
58
- imports: [
59
- McpModule.register({
60
- name: 'my-mcp-server',
61
- version: '1.0.0',
62
- capabilities: {
63
- tools: { listChanged: true },
64
- resources: { subscribe: false, listChanged: true },
65
- prompts: { listChanged: true },
66
- },
67
- instructions: 'Optional instructions for MCP clients.',
68
- }),
69
- ],
70
- })
71
- export class AppModule {}
72
- ```
73
-
74
- ### Asynchronous (factory)
75
-
76
- ```typescript
77
- McpModule.registerAsync({
78
- imports: [ConfigModule],
79
- inject: [ConfigService],
80
- useFactory: (config: ConfigService) => ({
81
- name: config.get('MCP_SERVER_NAME'),
82
- version: config.get('MCP_SERVER_VERSION'),
83
- }),
84
- });
85
- ```
86
-
87
- ### Asynchronous (class / existing)
88
-
89
- ```typescript
90
- // useExisting — reuse an already-registered provider
91
- McpModule.registerAsync({ useExisting: McpConfigService });
92
-
93
- // useClass — instantiate a new provider
94
- McpModule.registerAsync({ useClass: McpConfigService });
95
- ```
96
-
97
- The provider must implement `IMcpModuleOptionsFactory`.
98
-
99
- ---
100
-
101
- ## Decorators
102
-
103
- All decorators are placed on **methods** of NestJS `@Injectable()` providers.
104
-
105
- ### @McpTool
106
-
107
- ```typescript
108
- import { McpTool } from '@breadstone/archipel-platform-mcp';
109
- import { z } from 'zod';
110
-
111
- @Injectable()
112
- class CalculatorTools {
113
- @McpTool({
114
- name: 'add',
115
- description: 'Adds two numbers',
116
- inputSchema: { a: z.number(), b: z.number() },
117
- annotations: { readOnlyHint: true },
118
- })
119
- public add(input: { a: number; b: number }) {
120
- return {
121
- content: [{ type: 'text' as const, text: String(input.a + input.b) }],
122
- };
123
- }
124
- }
125
- ```
126
-
127
- | Option | Type | Required | Description |
128
- | -------------- | ------------------------- | -------- | ------------------------------------- |
129
- | `name` | `string` | Yes | Unique tool name |
130
- | `title` | `string` | No | Human-readable title |
131
- | `description` | `string` | No | What the tool does |
132
- | `inputSchema` | `ZodRawShape` | No | Zod schema for input parameters |
133
- | `outputSchema` | `ZodRawShape` | No | Zod schema for structured output |
134
- | `annotations` | `Record<string, unknown>` | No | Hints (readOnlyHint, destructiveHint) |
135
-
136
- ### @McpResource
137
-
138
- Supports both static URIs and URI templates (containing `{…}` placeholders).
139
-
140
- ```typescript
141
- @Injectable()
142
- class ConfigResources {
143
- @McpResource({
144
- name: 'app-config',
145
- uri: 'config://application',
146
- mimeType: 'application/json',
147
- })
148
- public getAppConfig() {
149
- return {
150
- contents: [{ uri: 'config://application', text: '{"debug": false}' }],
151
- };
152
- }
153
-
154
- @McpResource({
155
- name: 'user-profile',
156
- uri: 'users://{userId}/profile',
157
- mimeType: 'application/json',
158
- })
159
- public getUserProfile(uri: URL, params: { userId: string }) {
160
- return {
161
- contents: [{ uri: uri.href, text: JSON.stringify({ userId: params.userId }) }],
162
- };
163
- }
164
- }
165
- ```
166
-
167
- | Option | Type | Required | Description |
168
- | ------------- | -------- | -------- | ------------------------ |
169
- | `name` | `string` | Yes | Unique resource name |
170
- | `uri` | `string` | Yes | Static URI or template |
171
- | `title` | `string` | No | Human-readable title |
172
- | `description` | `string` | No | Resource description |
173
- | `mimeType` | `string` | No | MIME type of the content |
174
-
175
- ### @McpPrompt
176
-
177
- ```typescript
178
- @Injectable()
179
- class PromptProviders {
180
- @McpPrompt({
181
- name: 'code-review',
182
- description: 'Generates a code review prompt.',
183
- argsSchema: { code: z.string(), language: z.string().optional() },
184
- })
185
- public codeReview(args: { code: string; language?: string }) {
186
- return {
187
- messages: [
188
- {
189
- role: 'user' as const,
190
- content: { type: 'text' as const, text: `Review:\n${args.code}` },
191
- },
192
- ],
193
- };
194
- }
195
- }
196
- ```
197
-
198
- | Option | Type | Required | Description |
199
- | ------------- | ------------- | -------- | -------------------------- |
200
- | `name` | `string` | Yes | Unique prompt name |
201
- | `title` | `string` | No | Human-readable title |
202
- | `description` | `string` | No | Prompt description |
203
- | `argsSchema` | `ZodRawShape` | No | Zod schema for prompt args |
204
-
205
- ---
206
-
207
- ## Transports
208
-
209
- ### Stdio
210
-
211
- Best for CLI tools and process-spawned integrations.
212
-
213
- ```typescript
214
- const app = await NestFactory.createApplicationContext(AppModule);
215
- const mcpServer = app.get(McpServerService);
216
- await mcpServer.connectStdio();
217
- ```
218
-
219
- ### Streamable HTTP
220
-
221
- Recommended for HTTP-based deployments.
222
-
223
- ```typescript
224
- const transport = await mcpServer.createStreamableHttpTransport({
225
- sessionIdGenerator: () => crypto.randomUUID(),
226
- });
227
-
228
- const httpApp = express();
229
- httpApp.post('/mcp', (req, res) => transport.handleRequest(req, res));
230
- httpApp.get('/mcp', (req, res) => transport.handleRequest(req, res));
231
- httpApp.delete('/mcp', (req, res) => transport.handleRequest(req, res));
232
- httpApp.listen(3000);
233
- ```
234
-
235
- ### Server-Sent Events (SSE)
236
-
237
- Legacy transport for older clients.
238
-
239
- ```typescript
240
- httpApp.get('/sse', async (req, res) => {
241
- await mcpServer.createSseTransport({ endpoint: '/messages' }, res);
242
- });
243
- ```
244
-
245
- ### Custom Transport
246
-
247
- ```typescript
248
- await mcpServer.connectTransport(myCustomTransport);
249
- ```
250
-
251
- ---
252
-
253
- ## Services
254
-
255
- ### McpServerService
256
-
257
- Main entry point for controlling the MCP server at runtime.
258
-
259
- | Method | Description |
260
- | ----------------------------------------- | ---------------------------------------------- |
261
- | `server: McpServer` | The underlying `McpServer` instance (readonly) |
262
- | `connectStdio()` | Connects a stdio transport |
263
- | `createStreamableHttpTransport(options?)` | Creates Streamable HTTP transport |
264
- | `createSseTransport(options, response)` | Creates SSE transport |
265
- | `connectTransport(transport)` | Connects any custom `Transport` |
266
-
267
- ### McpRegistryService
268
-
269
- Central registry for all discovered handlers. Also supports manual registration.
270
-
271
- | Property / Method | Description |
272
- | --------------------------------- | ---------------------------- |
273
- | `tools: Map<string, …>` | All registered tools |
274
- | `resources: Map<string, …>` | All registered resources |
275
- | `prompts: Map<string, …>` | All registered prompts |
276
- | `registerTool(metadata, handler)` | Manually register a tool |
277
- | `registerResource(…)` | Manually register a resource |
278
- | `registerPrompt(…)` | Manually register a prompt |
279
-
280
- ---
281
-
282
- ## Architecture
283
-
284
- ```mermaid
285
- graph TD
286
- Module["McpModule.register(options)"]
287
- Registry["McpRegistryService<br/><i>Stores handlers (tools / resources / prompts)</i>"]
288
- Discovery["McpDiscoveryService<br/><i>Scans providers for @McpTool / @McpResource / @McpPrompt</i>"]
289
- Server["McpServerService<br/><i>Creates McpServer, registers handlers, manages transports</i>"]
290
-
291
- Module --> Registry
292
- Module --> Discovery
293
- Module --> Server
294
- Discovery -->|populates| Registry
295
- Server -->|reads from| Registry
296
- ```
297
-
298
- 1. **McpModule** bootstraps the module with sync or async configuration.
299
- 2. **McpDiscoveryService** runs `onModuleInit`, iterates all providers, reads decorator metadata, and populates the registry.
300
- 3. **McpServerService** runs `onModuleInit`, creates the `McpServer` instance, and registers all handlers from the registry.
301
- 4. The application connects a transport (stdio, HTTP, SSE, or custom) to start serving MCP requests.
302
-
303
- ---
304
-
305
- ## Health Check
306
-
307
- The `McpHealthIndicator` verifies that the `McpRegistryService` is injected. If no MCP registry is available, it reports `disabled: true`. Import it from the `/health` subpath:
308
-
309
- ```typescript
310
- import { McpHealthIndicator } from '@breadstone/archipel-platform-mcp/health';
311
- import { HealthModule } from '@breadstone/archipel-platform-health';
312
-
313
- @Module({
314
- imports: [
315
- McpModule.register({ /* ... */ }),
316
- HealthModule.withIndicators([McpHealthIndicator]),
317
- ],
318
- })
319
- export class AppModule {}
320
- ```
321
-
322
- | Key | Check | Dependencies |
323
- | --- | ----- | ------------ |
324
- | `mcp` | `up` if `McpRegistryService` injected, else `disabled` | `@Optional() McpRegistryService` |
325
-
326
- ---
327
-
328
- ## Resource Limits & Shutdown
329
-
330
- | Limit | Value | Description |
331
- | -------------------- | ---------- | ------------------------------------------------------------------------ |
332
- | **Max transports** | 1,000 | `McpServerService` tracks up to 1,000 active transports |
333
- | **Shutdown timeout** | 5 seconds | Each transport and the server are closed with a 5-second timeout guard |
334
-
335
- When the module is destroyed, `McpServerService.onModuleDestroy()` iterates all active transports, closes each with a 5-second timeout, and then closes the MCP server itself.
@@ -1,207 +0,0 @@
1
- ---
2
- title: platform-openapi
3
- description: Multi-tenant Swagger/OpenAPI documentation with feature-scoped discovery.
4
- order: 8
5
- tags: [openapi, swagger, documentation, api, multi-tenant]
6
- package: '@breadstone/archipel-platform-openapi'
7
- ---
8
-
9
- # platform-openapi
10
-
11
- Multi-tenant Swagger/OpenAPI documentation system with feature-scoped discovery, customizable themes, and automatic endpoint registration.
12
-
13
- **Package:** `@breadstone/archipel-platform-openapi`
14
-
15
- <InstallTabs />
16
-
17
- ## Quick Start
18
-
19
- ```typescript
20
- import { Module, Controller, Get, Param } from '@nestjs/common';
21
- import { SwaggerFeature, Api } from '@breadstone/archipel-platform-openapi';
22
-
23
- @SwaggerFeature({
24
- name: 'users',
25
- title: 'My App API — Users',
26
- description: 'User CRUD and profile operations.',
27
- tag: 'Users',
28
- tags: ['Users'],
29
- })
30
- @Module({
31
- controllers: [UserController],
32
- })
33
- export class UserModule {}
34
-
35
- @Controller('api/v1/users')
36
- export class UserController {
37
- @Api({
38
- tags: 'Users',
39
- summary: 'Get user by ID',
40
- responses: [{ status: 200, description: 'User found', type: UserResponse }],
41
- })
42
- @Get(':id')
43
- public async getUser(@Param('id') id: string): Promise<UserResponse> {
44
- // ...
45
- }
46
- }
47
- ```
48
-
49
- ---
50
-
51
- ## Feature-Scoped Documentation
52
-
53
- The key concept is **per-feature Swagger documents** — each feature or module gets its own Swagger UI page, so teams can work independently without cluttering a single monolithic spec.
54
-
55
- ### @SwaggerFeature Decorator
56
-
57
- Associates a module with a named feature group:
58
-
59
- ```typescript
60
- import { SwaggerFeature } from '@breadstone/archipel-platform-openapi';
61
-
62
- @SwaggerFeature({
63
- name: 'orders',
64
- title: 'My App API — Orders',
65
- description: 'Order management and fulfillment.',
66
- tag: 'Orders',
67
- tags: ['Orders'],
68
- })
69
- @Module({
70
- controllers: [OrderController],
71
- })
72
- export class OrderModule {}
73
- ```
74
-
75
- ### @Api Decorator
76
-
77
- Enriches individual endpoints with OpenAPI metadata:
78
-
79
- ```typescript
80
- import { Api } from '@breadstone/archipel-platform-openapi';
81
-
82
- @Api({
83
- summary: 'Create a new order',
84
- operation: { description: 'Creates an order and initiates payment processing.' },
85
- responses: [
86
- { status: 201, description: 'Order created successfully' },
87
- { status: 400, description: 'Invalid order data' },
88
- { status: 402, description: 'Payment required' },
89
- ],
90
- })
91
- @Post()
92
- public async createOrder(@Body() body: CreateOrderDto): Promise<OrderResponse> { /* ... */ }
93
- ```
94
-
95
- ---
96
-
97
- ## Multi-Document Service
98
-
99
- Generate separate Swagger documents per feature:
100
-
101
- ```typescript
102
- import { SwaggerMultiDocumentService } from '@breadstone/archipel-platform-openapi';
103
-
104
- @Injectable()
105
- export class DocsController {
106
- constructor(private readonly _swaggerDocs: SwaggerMultiDocumentService) {}
107
-
108
- public generateAll(): Map<string, OpenAPIObject> {
109
- return this._swaggerDocs.generateAll();
110
- // Returns a map: 'User Management' → OpenAPI spec, 'Orders' → OpenAPI spec, ...
111
- }
112
- }
113
- ```
114
-
115
- ### Bootstrap Setup
116
-
117
- ```typescript
118
- import {
119
- SwaggerFeatureDiscovery,
120
- SwaggerFeatureRegistry,
121
- SwaggerMultiDocumentService,
122
- } from '@breadstone/archipel-platform-openapi';
123
- import { ConfigService, ContentTemplateEngine, HostService, ResourceManager } from '@breadstone/archipel-platform-core';
124
-
125
- async function bootstrap(): Promise<void> {
126
- const app = await NestFactory.create(AppModule);
127
-
128
- const configService = app.get(ConfigService);
129
- const hostService = app.get(HostService);
130
- const resourceManager = app.get(ResourceManager);
131
- const contentTemplateEngine = app.get(ContentTemplateEngine);
132
-
133
- // 1. Discover features
134
- const featureRegistry = new SwaggerFeatureRegistry();
135
- const discovery = new SwaggerFeatureDiscovery();
136
- discovery.registerDiscoveredFeatures(featureRegistry);
137
- discovery.registerDefaultFeatures(featureRegistry);
138
-
139
- // 2. Setup multi-document Swagger UI
140
- const swaggerService = new SwaggerMultiDocumentService(
141
- app,
142
- configService,
143
- hostService,
144
- featureRegistry,
145
- resourceManager,
146
- contentTemplateEngine,
147
- );
148
- await swaggerService.setupMultipleSwaggerDocuments();
149
-
150
- await app.listen(3000);
151
- }
152
- ```
153
-
154
- ---
155
-
156
- ## Discovery & Registry
157
-
158
- ### SwaggerFeatureDiscovery
159
-
160
- Reads the global store populated by `@SwaggerFeature()` decorators and registers features into a `SwaggerFeatureRegistry`:
161
-
162
- ```typescript
163
- import { SwaggerFeatureDiscovery, SwaggerFeatureRegistry } from '@breadstone/archipel-platform-openapi';
164
-
165
- const featureRegistry = new SwaggerFeatureRegistry();
166
- const discovery = new SwaggerFeatureDiscovery();
167
-
168
- discovery
169
- .registerDiscoveredFeatures(featureRegistry)
170
- .registerDefaultFeatures(featureRegistry);
171
- ```
172
-
173
- ### SwaggerFeatureRegistry
174
-
175
- Holds the finalized, immutable list of features. After all features are registered, call `finalize()`:
176
-
177
- ```typescript
178
- import { SwaggerFeatureRegistry } from '@breadstone/archipel-platform-openapi';
179
-
180
- const registry = new SwaggerFeatureRegistry();
181
-
182
- registry.registerFeature({
183
- name: 'admin',
184
- title: 'My App API — Admin',
185
- description: 'Admin-only endpoints.',
186
- tag: 'Admin',
187
- tags: ['Admin'],
188
- path: 'docs/admin',
189
- });
190
-
191
- registry.finalize();
192
- const features = registry.getFeatures(); // sorted, read-only copy
193
- ```
194
-
195
- ---
196
-
197
- ## Exports Summary
198
-
199
- | Export | Type | Description |
200
- | ----------------------------- | --------- | ------------------------------- |
201
- | `Api` | Decorator | OpenAPI endpoint metadata |
202
- | `SwaggerFeature` | Decorator | Feature-scoped Swagger grouping |
203
- | `SwaggerFeatureDiscovery` | Service | Auto-discover features |
204
- | `SwaggerFeatureRegistry` | Service | Manage feature configs |
205
- | `SwaggerMultiDocumentService` | Service | Generate per-feature specs |
206
- | `SwaggerTheme` | Utility | Theme customization (CSS/JS cached after first load) |
207
- | `IFeatureSwaggerConfig` | Interface | Feature config shape |