microcms-mcp-server 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/README.md +142 -1
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +112 -25
  4. package/dist/cli.js.map +1 -1
  5. package/dist/client.d.ts +117 -28
  6. package/dist/client.d.ts.map +1 -1
  7. package/dist/client.js +293 -48
  8. package/dist/client.js.map +1 -1
  9. package/dist/config.d.ts +24 -5
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js +146 -2
  12. package/dist/config.js.map +1 -1
  13. package/dist/index.js +31 -2
  14. package/dist/index.js.map +1 -1
  15. package/dist/server.d.ts +8 -1
  16. package/dist/server.d.ts.map +1 -1
  17. package/dist/server.js +183 -153
  18. package/dist/server.js.map +1 -1
  19. package/dist/tools/create-content-draft.d.ts +2 -2
  20. package/dist/tools/create-content-draft.d.ts.map +1 -1
  21. package/dist/tools/create-content-draft.js +7 -3
  22. package/dist/tools/create-content-draft.js.map +1 -1
  23. package/dist/tools/create-content-published.d.ts +2 -2
  24. package/dist/tools/create-content-published.d.ts.map +1 -1
  25. package/dist/tools/create-content-published.js +7 -3
  26. package/dist/tools/create-content-published.js.map +1 -1
  27. package/dist/tools/create-contents-bulk.d.ts +4 -4
  28. package/dist/tools/create-contents-bulk.d.ts.map +1 -1
  29. package/dist/tools/create-contents-bulk.js +14 -6
  30. package/dist/tools/create-contents-bulk.js.map +1 -1
  31. package/dist/tools/delete-content.d.ts +2 -2
  32. package/dist/tools/delete-content.d.ts.map +1 -1
  33. package/dist/tools/delete-content.js +6 -2
  34. package/dist/tools/delete-content.js.map +1 -1
  35. package/dist/tools/delete-media.d.ts +2 -2
  36. package/dist/tools/delete-media.d.ts.map +1 -1
  37. package/dist/tools/delete-media.js +6 -2
  38. package/dist/tools/delete-media.js.map +1 -1
  39. package/dist/tools/get-api-info.d.ts +2 -2
  40. package/dist/tools/get-api-info.d.ts.map +1 -1
  41. package/dist/tools/get-api-info.js +6 -2
  42. package/dist/tools/get-api-info.js.map +1 -1
  43. package/dist/tools/get-apis-list.d.ts +2 -2
  44. package/dist/tools/get-apis-list.d.ts.map +1 -1
  45. package/dist/tools/get-apis-list.js +9 -4
  46. package/dist/tools/get-apis-list.js.map +1 -1
  47. package/dist/tools/get-content-meta.d.ts +2 -2
  48. package/dist/tools/get-content-meta.d.ts.map +1 -1
  49. package/dist/tools/get-content-meta.js +6 -2
  50. package/dist/tools/get-content-meta.js.map +1 -1
  51. package/dist/tools/get-content.d.ts +2 -2
  52. package/dist/tools/get-content.d.ts.map +1 -1
  53. package/dist/tools/get-content.js +6 -2
  54. package/dist/tools/get-content.js.map +1 -1
  55. package/dist/tools/get-list-meta.d.ts +2 -2
  56. package/dist/tools/get-list-meta.d.ts.map +1 -1
  57. package/dist/tools/get-list-meta.js +6 -2
  58. package/dist/tools/get-list-meta.js.map +1 -1
  59. package/dist/tools/get-list.d.ts +2 -2
  60. package/dist/tools/get-list.d.ts.map +1 -1
  61. package/dist/tools/get-list.js +6 -2
  62. package/dist/tools/get-list.js.map +1 -1
  63. package/dist/tools/get-media.d.ts +2 -2
  64. package/dist/tools/get-media.d.ts.map +1 -1
  65. package/dist/tools/get-media.js +9 -4
  66. package/dist/tools/get-media.js.map +1 -1
  67. package/dist/tools/get-member.d.ts +2 -2
  68. package/dist/tools/get-member.d.ts.map +1 -1
  69. package/dist/tools/get-member.js +6 -2
  70. package/dist/tools/get-member.js.map +1 -1
  71. package/dist/tools/get-services.d.ts +19 -0
  72. package/dist/tools/get-services.d.ts.map +1 -0
  73. package/dist/tools/get-services.js +48 -0
  74. package/dist/tools/get-services.js.map +1 -0
  75. package/dist/tools/patch-content-created-by.d.ts +2 -2
  76. package/dist/tools/patch-content-created-by.d.ts.map +1 -1
  77. package/dist/tools/patch-content-created-by.js +10 -3
  78. package/dist/tools/patch-content-created-by.js.map +1 -1
  79. package/dist/tools/patch-content-status.d.ts +2 -2
  80. package/dist/tools/patch-content-status.d.ts.map +1 -1
  81. package/dist/tools/patch-content-status.js +6 -2
  82. package/dist/tools/patch-content-status.js.map +1 -1
  83. package/dist/tools/patch-content.d.ts +2 -2
  84. package/dist/tools/patch-content.d.ts.map +1 -1
  85. package/dist/tools/patch-content.js +8 -3
  86. package/dist/tools/patch-content.js.map +1 -1
  87. package/dist/tools/update-content-draft.d.ts +2 -2
  88. package/dist/tools/update-content-draft.d.ts.map +1 -1
  89. package/dist/tools/update-content-draft.js +7 -3
  90. package/dist/tools/update-content-draft.js.map +1 -1
  91. package/dist/tools/update-content-published.d.ts +2 -2
  92. package/dist/tools/update-content-published.d.ts.map +1 -1
  93. package/dist/tools/update-content-published.js +7 -3
  94. package/dist/tools/update-content-published.js.map +1 -1
  95. package/dist/tools/upload-media.d.ts +2 -2
  96. package/dist/tools/upload-media.d.ts.map +1 -1
  97. package/dist/tools/upload-media.js +12 -6
  98. package/dist/tools/upload-media.js.map +1 -1
  99. package/dist/transport/http.d.ts +4 -0
  100. package/dist/transport/http.d.ts.map +1 -0
  101. package/dist/transport/http.js +63 -0
  102. package/dist/transport/http.js.map +1 -0
  103. package/dist/transport/index.d.ts +4 -0
  104. package/dist/transport/index.d.ts.map +1 -0
  105. package/dist/transport/index.js +12 -0
  106. package/dist/transport/index.js.map +1 -0
  107. package/dist/transport/stdio.d.ts +3 -0
  108. package/dist/transport/stdio.d.ts.map +1 -0
  109. package/dist/transport/stdio.js +6 -0
  110. package/dist/transport/stdio.js.map +1 -0
  111. package/dist/types.d.ts +78 -2
  112. package/dist/types.d.ts.map +1 -1
  113. package/package.json +11 -8
  114. package/dist/tools/get-contents-list-management.d.ts +0 -5
  115. package/dist/tools/get-contents-list-management.d.ts.map +0 -1
  116. package/dist/tools/get-contents-list-management.js +0 -39
  117. package/dist/tools/get-contents-list-management.js.map +0 -1
package/dist/config.js CHANGED
@@ -1,4 +1,68 @@
1
+ /**
2
+ * Parse and validate service configuration from environment variables or command line arguments.
3
+ *
4
+ * Supports two modes:
5
+ * 1. Single service mode (legacy): MICROCMS_SERVICE_ID + MICROCMS_API_KEY
6
+ * 2. Multi service mode: MICROCMS_SERVICES (JSON array)
7
+ *
8
+ * If MICROCMS_SERVICES is set, it takes priority over the legacy single service config.
9
+ */
1
10
  export function parseConfig() {
11
+ // Check for multi-service configuration first (takes priority)
12
+ const servicesJson = process.env.MICROCMS_SERVICES;
13
+ if (servicesJson) {
14
+ return parseMultiServiceConfig(servicesJson);
15
+ }
16
+ // Fall back to single service configuration (legacy)
17
+ return parseSingleServiceConfig();
18
+ }
19
+ /**
20
+ * Parse multi-service configuration from JSON string
21
+ */
22
+ function parseMultiServiceConfig(jsonString) {
23
+ let services;
24
+ try {
25
+ services = JSON.parse(jsonString);
26
+ }
27
+ catch (error) {
28
+ throw new Error('Invalid MICROCMS_SERVICES JSON format.\n' +
29
+ 'Expected format: [{"id": "service-id", "apiKey": "api-key"}, ...]\n' +
30
+ `Parse error: ${error instanceof Error ? error.message : String(error)}`);
31
+ }
32
+ if (!Array.isArray(services)) {
33
+ throw new Error('MICROCMS_SERVICES must be a JSON array.\n' +
34
+ 'Expected format: [{"id": "service-id", "apiKey": "api-key"}, ...]');
35
+ }
36
+ if (services.length === 0) {
37
+ throw new Error('MICROCMS_SERVICES array cannot be empty.');
38
+ }
39
+ // Validate each service configuration
40
+ const seenIds = new Set();
41
+ for (let i = 0; i < services.length; i++) {
42
+ const service = services[i];
43
+ if (!service || typeof service !== 'object') {
44
+ throw new Error(`MICROCMS_SERVICES[${i}]: Invalid service configuration.`);
45
+ }
46
+ if (!service.id || typeof service.id !== 'string') {
47
+ throw new Error(`MICROCMS_SERVICES[${i}]: Missing or invalid "id" field.`);
48
+ }
49
+ if (!service.apiKey || typeof service.apiKey !== 'string') {
50
+ throw new Error(`MICROCMS_SERVICES[${i}]: Missing or invalid "apiKey" field.`);
51
+ }
52
+ if (seenIds.has(service.id)) {
53
+ throw new Error(`MICROCMS_SERVICES: Duplicate service id "${service.id}".`);
54
+ }
55
+ seenIds.add(service.id);
56
+ }
57
+ return {
58
+ mode: 'multi',
59
+ services,
60
+ };
61
+ }
62
+ /**
63
+ * Parse single service configuration from environment variables or command line arguments (legacy mode)
64
+ */
65
+ function parseSingleServiceConfig() {
2
66
  const args = process.argv.slice(2);
3
67
  // Parse command line arguments
4
68
  let serviceDomain;
@@ -16,12 +80,92 @@ export function parseConfig() {
16
80
  apiKey = apiKey || process.env.MICROCMS_API_KEY;
17
81
  if (!serviceDomain || !apiKey) {
18
82
  throw new Error('microCMS credentials are required. Provide them via:\n' +
19
- ' Command line: --service-id <service-id> --api-key <key>\n' +
20
- ' Environment variables: MICROCMS_SERVICE_ID and MICROCMS_API_KEY');
83
+ ' Single service mode:\n' +
84
+ ' Command line: --service-id <service-id> --api-key <key>\n' +
85
+ ' Environment variables: MICROCMS_SERVICE_ID and MICROCMS_API_KEY\n' +
86
+ ' Multi service mode:\n' +
87
+ ' Environment variable: MICROCMS_SERVICES (JSON array)\n' +
88
+ ' Example: MICROCMS_SERVICES=\'[{"id":"blog","apiKey":"xxx"}]\'');
21
89
  }
22
90
  return {
91
+ mode: 'single',
23
92
  serviceDomain,
24
93
  apiKey,
25
94
  };
26
95
  }
96
+ /**
97
+ * Parse transport configuration from environment variables and CLI arguments.
98
+ */
99
+ export function parseTransportConfig() {
100
+ const args = process.argv.slice(2);
101
+ let mode = 'stdio';
102
+ let host = '0.0.0.0';
103
+ let port = 3000;
104
+ // CLI arguments take priority
105
+ const transportIndex = args.indexOf('--transport');
106
+ if (transportIndex !== -1 && transportIndex + 1 < args.length) {
107
+ const value = args[transportIndex + 1];
108
+ if (value === 'stdio' || value === 'http') {
109
+ mode = value;
110
+ }
111
+ else {
112
+ // biome-ignore lint/suspicious/noConsole: intentional warning to stderr
113
+ console.error(`Warning: Invalid transport mode "${value}". Expected "stdio" or "http". Falling back to "stdio".`);
114
+ }
115
+ }
116
+ const portIndex = args.indexOf('--port');
117
+ if (portIndex !== -1 && portIndex + 1 < args.length) {
118
+ const parsed = parseInt(args[portIndex + 1], 10);
119
+ if (!Number.isNaN(parsed)) {
120
+ port = parsed;
121
+ }
122
+ }
123
+ const hostIndex = args.indexOf('--host');
124
+ if (hostIndex !== -1 && hostIndex + 1 < args.length) {
125
+ host = args[hostIndex + 1];
126
+ }
127
+ // Environment variables as fallback
128
+ const envTransport = process.env.MCP_TRANSPORT;
129
+ if (!args.includes('--transport') && envTransport) {
130
+ if (envTransport === 'stdio' || envTransport === 'http') {
131
+ mode = envTransport;
132
+ }
133
+ else {
134
+ // biome-ignore lint/suspicious/noConsole: intentional warning to stderr
135
+ console.error(`Warning: Invalid MCP_TRANSPORT value "${envTransport}". Expected "stdio" or "http". Falling back to "stdio".`);
136
+ }
137
+ }
138
+ const envPort = process.env.MCP_HTTP_PORT;
139
+ if (!args.includes('--port') && envPort) {
140
+ const parsed = parseInt(envPort, 10);
141
+ if (!Number.isNaN(parsed)) {
142
+ port = parsed;
143
+ }
144
+ }
145
+ const envHost = process.env.MCP_HTTP_HOST;
146
+ if (!args.includes('--host') && envHost) {
147
+ host = envHost;
148
+ }
149
+ return { mode, host, port };
150
+ }
151
+ /**
152
+ * Parse authentication configuration from environment variables.
153
+ */
154
+ export function parseAuthConfig() {
155
+ const bearerToken = process.env.MCP_AUTH_TOKEN;
156
+ return {
157
+ enabled: !!bearerToken,
158
+ bearerToken,
159
+ };
160
+ }
161
+ /**
162
+ * Parse the full application configuration including services, transport, and auth.
163
+ */
164
+ export function parseFullConfig() {
165
+ return {
166
+ services: parseConfig(),
167
+ transport: parseTransportConfig(),
168
+ auth: parseAuthConfig(),
169
+ };
170
+ }
27
171
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,WAAW;IACzB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,+BAA+B;IAC/B,IAAI,aAAiC,CAAC;IACtC,IAAI,MAA0B,CAAC;IAE/B,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACpD,IAAI,cAAc,KAAK,CAAC,CAAC,IAAI,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9D,aAAa,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,WAAW,KAAK,CAAC,CAAC,IAAI,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACxD,MAAM,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,qEAAqE;IACrE,aAAa,GAAG,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IACjE,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAEhD,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,wDAAwD;YACxD,6DAA6D;YAC7D,mEAAmE,CACpE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,aAAa;QACb,MAAM;KACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,7 +1,36 @@
1
1
  #!/usr/bin/env node
2
- import { startServer } from './server.js';
2
+ import { parseFullConfig } from './config.js';
3
+ import { createMcpServer, initializeClients } from './server.js';
4
+ import { startTransport } from './transport/index.js';
3
5
  async function main() {
4
- await startServer();
6
+ try {
7
+ // Parse full configuration (services + transport + auth)
8
+ const fullConfig = parseFullConfig();
9
+ // Initialize microCMS clients
10
+ const serviceConfig = initializeClients();
11
+ // Log mode information
12
+ if (serviceConfig.mode === 'single') {
13
+ // biome-ignore lint/suspicious/noConsole: intentional startup log to stderr
14
+ console.error(`microCMS MCP Server starting in single-service mode (service: ${serviceConfig.serviceDomain})`);
15
+ }
16
+ else {
17
+ const serviceIds = serviceConfig.services.map((s) => s.id).join(', ');
18
+ // biome-ignore lint/suspicious/noConsole: intentional startup log to stderr
19
+ console.error(`microCMS MCP Server starting in multi-service mode (services: ${serviceIds})`);
20
+ }
21
+ // Start transport
22
+ await startTransport(createMcpServer, fullConfig);
23
+ }
24
+ catch (error) {
25
+ if (error instanceof Error &&
26
+ (error.message.includes('microCMS credentials') ||
27
+ error.message.includes('MICROCMS_SERVICES'))) {
28
+ // biome-ignore lint/suspicious/noConsole: intentional error output to stderr
29
+ console.error('Configuration Error:', error.message);
30
+ process.exit(1);
31
+ }
32
+ throw error;
33
+ }
5
34
  }
6
35
  main();
7
36
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,KAAK,UAAU,IAAI;IACjB,MAAM,WAAW,EAAE,CAAC;AACtB,CAAC;AAED,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,yDAAyD;QACzD,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC;QAErC,8BAA8B;QAC9B,MAAM,aAAa,GAAG,iBAAiB,EAAE,CAAC;QAE1C,uBAAuB;QACvB,IAAI,aAAa,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpC,4EAA4E;YAC5E,OAAO,CAAC,KAAK,CACX,iEAAiE,aAAa,CAAC,aAAa,GAAG,CAChG,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtE,4EAA4E;YAC5E,OAAO,CAAC,KAAK,CACX,iEAAiE,UAAU,GAAG,CAC/E,CAAC;QACJ,CAAC;QAED,kBAAkB;QAClB,MAAM,cAAc,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IACE,KAAK,YAAY,KAAK;YACtB,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC;gBAC7C,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,EAC9C,CAAC;YACD,6EAA6E;YAC7E,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
package/dist/server.d.ts CHANGED
@@ -1,2 +1,9 @@
1
- export declare function startServer(): Promise<void>;
1
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
+ import { initializeClients } from './client.js';
3
+ /**
4
+ * Create a new MCP Server instance with all tools and resources registered.
5
+ * This factory function creates independent server instances for each connection.
6
+ */
7
+ export declare function createMcpServer(): Server;
8
+ export { initializeClients };
2
9
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAwKA,wBAAsB,WAAW,kBAgBhC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAQnE,OAAO,EAIL,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAuHrB;;;GAGG;AACH,wBAAgB,eAAe,IAAI,MAAM,CA0IxC;AAGD,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
package/dist/server.js CHANGED
@@ -1,166 +1,196 @@
1
1
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
- import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
4
- import { getListTool, handleGetList } from './tools/get-list.js';
5
- import { getListMetaTool, handleGetListMeta as handleGetListMeta } from './tools/get-list-meta.js';
6
- import { getContentTool, handleGetContent } from './tools/get-content.js';
7
- import { getContentMetaTool, handleGetContentMeta } from './tools/get-content-meta.js';
8
- import { createContentPublishedTool, handleCreateContentPublished } from './tools/create-content-published.js';
9
- import { createContentDraftTool, handleCreateContentDraft } from './tools/create-content-draft.js';
10
- import { updateContentPublishedTool, handleUpdateContentPublished } from './tools/update-content-published.js';
11
- import { updateContentDraftTool, handleUpdateContentDraft } from './tools/update-content-draft.js';
12
- import { patchContentTool, handlePatchContent } from './tools/patch-content.js';
13
- import { patchContentStatusTool, handlePatchContentStatus } from './tools/patch-content-status.js';
14
- import { patchContentCreatedByTool, handlePatchContentCreatedBy } from './tools/patch-content-created-by.js';
15
- import { deleteContentTool, handleDeleteContent } from './tools/delete-content.js';
16
- import { getMediaTool, handleGetMedia } from './tools/get-media.js';
17
- import { uploadMediaTool, handleUploadMedia } from './tools/upload-media.js';
2
+ import { CallToolRequestSchema, ListResourcesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
3
+ import { fetchApisForService, getAppConfig, getServiceInfo, initializeClients, } from './client.js';
4
+ // Import tool definitions and handlers
5
+ import { createContentDraftTool, handleCreateContentDraft, } from './tools/create-content-draft.js';
6
+ import { createContentPublishedTool, handleCreateContentPublished, } from './tools/create-content-published.js';
7
+ import { createContentsBulkDraftTool, createContentsBulkPublishedTool, handleCreateContentsBulkDraft, handleCreateContentsBulkPublished, } from './tools/create-contents-bulk.js';
8
+ import { deleteContentTool, handleDeleteContent, } from './tools/delete-content.js';
18
9
  import { deleteMediaTool, handleDeleteMedia } from './tools/delete-media.js';
19
10
  import { getApiInfoTool, handleGetApiInfo } from './tools/get-api-info.js';
20
11
  import { getApiListTool, handleGetApiList } from './tools/get-apis-list.js';
12
+ import { getContentTool, handleGetContent } from './tools/get-content.js';
13
+ import { getContentMetaTool, handleGetContentMeta, } from './tools/get-content-meta.js';
14
+ import { getListTool, handleGetList } from './tools/get-list.js';
15
+ import { getListMetaTool, handleGetListMeta } from './tools/get-list-meta.js';
16
+ import { getMediaTool, handleGetMedia } from './tools/get-media.js';
21
17
  import { getMemberTool, handleGetMember } from './tools/get-member.js';
22
- import { createContentsBulkPublishedTool, createContentsBulkDraftTool, handleCreateContentsBulkPublished, handleCreateContentsBulkDraft, } from './tools/create-contents-bulk.js';
23
- const server = new Server({
24
- name: 'microcms-mcp-server',
25
- version: '1.0.0',
26
- description: 'A Model Context Protocol server for microCMS API',
27
- }, {
28
- capabilities: {
29
- tools: {},
30
- },
31
- });
32
- server.setRequestHandler(ListToolsRequestSchema, async () => {
33
- return {
34
- tools: [
35
- getListTool,
36
- getListMetaTool,
37
- getContentTool,
38
- getContentMetaTool,
39
- createContentPublishedTool,
40
- createContentDraftTool,
41
- createContentsBulkPublishedTool,
42
- createContentsBulkDraftTool,
43
- updateContentPublishedTool,
44
- updateContentDraftTool,
45
- patchContentTool,
46
- patchContentStatusTool,
47
- patchContentCreatedByTool,
48
- deleteContentTool,
49
- getMediaTool,
50
- uploadMediaTool,
51
- deleteMediaTool,
52
- getApiInfoTool,
53
- getApiListTool,
54
- getMemberTool,
55
- ],
56
- };
57
- });
58
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
59
- const { name, arguments: args } = request.params;
60
- const params = args;
61
- try {
62
- let result;
63
- switch (name) {
64
- case 'microcms_get_list':
65
- result = await handleGetList(params);
66
- break;
67
- case 'microcms_get_list_meta':
68
- result = await handleGetListMeta(params);
69
- break;
70
- case 'microcms_get_content':
71
- result = await handleGetContent(params);
72
- break;
73
- case 'microcms_get_content_meta':
74
- result = await handleGetContentMeta(params);
75
- break;
76
- case 'microcms_create_content_published':
77
- result = await handleCreateContentPublished(params);
78
- break;
79
- case 'microcms_create_content_draft':
80
- result = await handleCreateContentDraft(params);
81
- break;
82
- case 'microcms_create_contents_bulk_published':
83
- result = await handleCreateContentsBulkPublished(params);
84
- break;
85
- case 'microcms_create_contents_bulk_draft':
86
- result = await handleCreateContentsBulkDraft(params);
87
- break;
88
- case 'microcms_update_content_published':
89
- result = await handleUpdateContentPublished(params);
90
- break;
91
- case 'microcms_update_content_draft':
92
- result = await handleUpdateContentDraft(params);
93
- break;
94
- case 'microcms_patch_content':
95
- result = await handlePatchContent(params);
96
- break;
97
- case 'microcms_patch_content_status':
98
- result = await handlePatchContentStatus(params);
99
- break;
100
- case 'microcms_patch_content_created_by':
101
- result = await handlePatchContentCreatedBy(params);
102
- break;
103
- case 'microcms_delete_content':
104
- result = await handleDeleteContent(params);
105
- break;
106
- case 'microcms_get_media':
107
- result = await handleGetMedia(params);
108
- break;
109
- case 'microcms_upload_media':
110
- result = await handleUploadMedia(params);
111
- break;
112
- case 'microcms_delete_media':
113
- result = await handleDeleteMedia(params);
114
- break;
115
- case 'microcms_get_api_info':
116
- result = await handleGetApiInfo(params);
117
- break;
118
- case 'microcms_get_api_list':
119
- result = await handleGetApiList(params);
120
- break;
121
- case 'microcms_get_member':
122
- result = await handleGetMember(params);
123
- break;
124
- default:
125
- throw new Error(`Unknown tool: ${name}`);
126
- }
18
+ import { getServicesTool, handleGetServices } from './tools/get-services.js';
19
+ import { handlePatchContent, patchContentTool } from './tools/patch-content.js';
20
+ import { handlePatchContentCreatedBy, patchContentCreatedByTool, } from './tools/patch-content-created-by.js';
21
+ import { handlePatchContentStatus, patchContentStatusTool, } from './tools/patch-content-status.js';
22
+ import { handleUpdateContentDraft, updateContentDraftTool, } from './tools/update-content-draft.js';
23
+ import { handleUpdateContentPublished, updateContentPublishedTool, } from './tools/update-content-published.js';
24
+ import { handleUploadMedia, uploadMediaTool } from './tools/upload-media.js';
25
+ // Fixed tool list (21 tools)
26
+ const tools = [
27
+ getServicesTool,
28
+ getListTool,
29
+ getListMetaTool,
30
+ getContentTool,
31
+ getContentMetaTool,
32
+ createContentPublishedTool,
33
+ createContentDraftTool,
34
+ createContentsBulkPublishedTool,
35
+ createContentsBulkDraftTool,
36
+ updateContentPublishedTool,
37
+ updateContentDraftTool,
38
+ patchContentTool,
39
+ patchContentStatusTool,
40
+ patchContentCreatedByTool,
41
+ deleteContentTool,
42
+ getMediaTool,
43
+ uploadMediaTool,
44
+ deleteMediaTool,
45
+ getApiInfoTool,
46
+ getApiListTool,
47
+ getMemberTool,
48
+ ];
49
+ // Tool handlers map - using 'any' for generic handler type that accepts multiple tool parameter types
50
+ const toolHandlers = {
51
+ microcms_get_services: handleGetServices,
52
+ microcms_get_list: handleGetList,
53
+ microcms_get_list_meta: handleGetListMeta,
54
+ microcms_get_content: handleGetContent,
55
+ microcms_get_content_meta: handleGetContentMeta,
56
+ microcms_create_content_published: handleCreateContentPublished,
57
+ microcms_create_content_draft: handleCreateContentDraft,
58
+ microcms_create_contents_bulk_published: (params, serviceId) => handleCreateContentsBulkPublished(params, serviceId),
59
+ microcms_create_contents_bulk_draft: (params, serviceId) => handleCreateContentsBulkDraft(params, serviceId),
60
+ microcms_update_content_published: handleUpdateContentPublished,
61
+ microcms_update_content_draft: handleUpdateContentDraft,
62
+ microcms_patch_content: handlePatchContent,
63
+ microcms_patch_content_status: handlePatchContentStatus,
64
+ microcms_patch_content_created_by: handlePatchContentCreatedBy,
65
+ microcms_delete_content: handleDeleteContent,
66
+ microcms_get_media: handleGetMedia,
67
+ microcms_upload_media: handleUploadMedia,
68
+ microcms_delete_media: handleDeleteMedia,
69
+ microcms_get_api_info: handleGetApiInfo,
70
+ microcms_get_api_list: handleGetApiList,
71
+ microcms_get_member: handleGetMember,
72
+ };
73
+ /**
74
+ * Create a new MCP Server instance with all tools and resources registered.
75
+ * This factory function creates independent server instances for each connection.
76
+ */
77
+ export function createMcpServer() {
78
+ const server = new Server({
79
+ name: 'microcms-mcp-server',
80
+ version: '0.8.0',
81
+ }, {
82
+ capabilities: {
83
+ tools: {},
84
+ resources: {},
85
+ },
86
+ });
87
+ // List available tools
88
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
89
+ return { tools };
90
+ });
91
+ // List available resources
92
+ server.setRequestHandler(ListResourcesRequestSchema, async () => {
127
93
  return {
128
- content: [
94
+ resources: [
129
95
  {
130
- type: 'text',
131
- text: JSON.stringify(result, null, 2),
96
+ uri: 'microcms://services',
97
+ name: 'Available microCMS Services',
98
+ description: 'List of configured microCMS services. In multi-service mode, use serviceId parameter in tools to specify which service to use.',
99
+ mimeType: 'application/json',
132
100
  },
133
101
  ],
134
102
  };
135
- }
136
- catch (error) {
137
- const errorMessage = error instanceof Error ? error.message : String(error);
138
- return {
139
- content: [
140
- {
141
- type: 'text',
142
- text: `Error: ${errorMessage}`,
143
- },
144
- ],
145
- isError: true,
146
- };
147
- }
148
- });
149
- export async function startServer() {
150
- try {
151
- // Validate configuration early to provide better error messages
152
- const { parseConfig } = await import('./config.js');
153
- parseConfig();
154
- const transport = new StdioServerTransport();
155
- await server.connect(transport);
156
- // console.error('microCMS MCP Server running on stdio');
157
- }
158
- catch (error) {
159
- if (error instanceof Error && error.message.includes('microCMS credentials')) {
160
- console.error('Configuration Error:', error.message);
161
- process.exit(1);
103
+ });
104
+ // Read resource
105
+ server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
106
+ const { uri } = request.params;
107
+ if (uri === 'microcms://services') {
108
+ const config = getAppConfig();
109
+ let content;
110
+ if (config.mode === 'single') {
111
+ const [apis, serviceInfo] = await Promise.all([
112
+ fetchApisForService(config.serviceDomain),
113
+ getServiceInfo(config.serviceDomain),
114
+ ]);
115
+ content = {
116
+ mode: 'single',
117
+ description: 'Single service mode - serviceId parameter is optional',
118
+ services: [
119
+ {
120
+ id: config.serviceDomain,
121
+ name: serviceInfo.name,
122
+ apis,
123
+ },
124
+ ],
125
+ };
126
+ }
127
+ else {
128
+ // Fetch APIs and service info for all services in parallel
129
+ const servicesWithApis = await Promise.all(config.services.map(async (s) => {
130
+ const [apis, serviceInfo] = await Promise.all([
131
+ fetchApisForService(s.id),
132
+ getServiceInfo(s.id),
133
+ ]);
134
+ return {
135
+ id: s.id,
136
+ name: serviceInfo.name,
137
+ apis,
138
+ };
139
+ }));
140
+ content = {
141
+ mode: 'multi',
142
+ description: 'Multi service mode - serviceId parameter is required for all tools. Use the serviceId that contains the endpoint you need.',
143
+ services: servicesWithApis,
144
+ };
145
+ }
146
+ return {
147
+ contents: [
148
+ {
149
+ uri,
150
+ mimeType: 'application/json',
151
+ text: JSON.stringify(content, null, 2),
152
+ },
153
+ ],
154
+ };
155
+ }
156
+ throw new Error(`Unknown resource: ${uri}`);
157
+ });
158
+ // Handle tool calls
159
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
160
+ const { name, arguments: args } = request.params;
161
+ const params = args;
162
+ try {
163
+ const handler = toolHandlers[name];
164
+ if (!handler) {
165
+ throw new Error(`Unknown tool: ${name}`);
166
+ }
167
+ // Extract serviceId from params and pass to handler
168
+ const { serviceId, ...restParams } = params;
169
+ const result = await handler(restParams, serviceId);
170
+ return {
171
+ content: [
172
+ {
173
+ type: 'text',
174
+ text: JSON.stringify(result, null, 2),
175
+ },
176
+ ],
177
+ };
178
+ }
179
+ catch (error) {
180
+ const errorMessage = error instanceof Error ? error.message : String(error);
181
+ return {
182
+ content: [
183
+ {
184
+ type: 'text',
185
+ text: `Error: ${errorMessage}`,
186
+ },
187
+ ],
188
+ isError: true,
189
+ };
162
190
  }
163
- throw error;
164
- }
191
+ });
192
+ return server;
165
193
  }
194
+ // Re-export for use by transport layer
195
+ export { initializeClients };
166
196
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}