@exabugs/dynamodb-client 1.13.1 → 1.14.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/CHANGELOG.md +21 -0
  2. package/README.md +5 -15
  3. package/bin/dynamodb-access-check.js +6 -0
  4. package/dist/server/handler.cjs +3 -3
  5. package/dist/server/handler.cjs.map +1 -1
  6. package/dist/server/media-handler.cjs +2 -2
  7. package/dist/server/media-process-handler-dlq.cjs +2 -2
  8. package/dist/server/media-process-handler.cjs +2 -2
  9. package/dist/server/operations/parameterConverter.js +3 -3
  10. package/dist/server/operations/parameterConverter.js.map +1 -1
  11. package/dist/tools/dynamodb-access-check/allowlist.d.ts +39 -0
  12. package/dist/tools/dynamodb-access-check/allowlist.d.ts.map +1 -0
  13. package/dist/tools/dynamodb-access-check/allowlist.js +34 -0
  14. package/dist/tools/dynamodb-access-check/allowlist.js.map +1 -0
  15. package/dist/tools/dynamodb-access-check/check.d.ts +24 -0
  16. package/dist/tools/dynamodb-access-check/check.d.ts.map +1 -0
  17. package/dist/tools/dynamodb-access-check/check.js +40 -0
  18. package/dist/tools/dynamodb-access-check/check.js.map +1 -0
  19. package/dist/tools/dynamodb-access-check/cli.d.ts +10 -0
  20. package/dist/tools/dynamodb-access-check/cli.d.ts.map +1 -0
  21. package/dist/tools/dynamodb-access-check/cli.js +96 -0
  22. package/dist/tools/dynamodb-access-check/cli.js.map +1 -0
  23. package/dist/tools/dynamodb-access-check/forbidden.d.ts +15 -0
  24. package/dist/tools/dynamodb-access-check/forbidden.d.ts.map +1 -0
  25. package/dist/tools/dynamodb-access-check/forbidden.js +34 -0
  26. package/dist/tools/dynamodb-access-check/forbidden.js.map +1 -0
  27. package/dist/tools/dynamodb-access-check/glob.d.ts +8 -0
  28. package/dist/tools/dynamodb-access-check/glob.d.ts.map +1 -0
  29. package/dist/tools/dynamodb-access-check/glob.js +37 -0
  30. package/dist/tools/dynamodb-access-check/glob.js.map +1 -0
  31. package/dist/tools/dynamodb-access-check/index.d.ts +5 -0
  32. package/dist/tools/dynamodb-access-check/index.d.ts.map +1 -0
  33. package/dist/tools/dynamodb-access-check/index.js +4 -0
  34. package/dist/tools/dynamodb-access-check/index.js.map +1 -0
  35. package/dist/tools/dynamodb-access-check/run.d.ts +2 -0
  36. package/dist/tools/dynamodb-access-check/run.d.ts.map +1 -0
  37. package/dist/tools/dynamodb-access-check/run.js +3 -0
  38. package/dist/tools/dynamodb-access-check/run.js.map +1 -0
  39. package/dist/tools/dynamodb-access-check/scan.d.ts +25 -0
  40. package/dist/tools/dynamodb-access-check/scan.d.ts.map +1 -0
  41. package/dist/tools/dynamodb-access-check/scan.js +151 -0
  42. package/dist/tools/dynamodb-access-check/scan.js.map +1 -0
  43. package/dist/tools/eslint/index.d.ts +28 -0
  44. package/dist/tools/eslint/index.d.ts.map +1 -0
  45. package/dist/tools/eslint/index.js +34 -0
  46. package/dist/tools/eslint/index.js.map +1 -0
  47. package/docs/DYNAMODB_ACCESS.md +152 -0
  48. package/package.json +11 -11
  49. package/bin/dynamodb-mcp.js +0 -12
  50. package/dist/mcp/adapter.d.ts +0 -36
  51. package/dist/mcp/adapter.d.ts.map +0 -1
  52. package/dist/mcp/adapter.js +0 -213
  53. package/dist/mcp/adapter.js.map +0 -1
  54. package/dist/mcp/cli.d.ts +0 -2
  55. package/dist/mcp/cli.d.ts.map +0 -1
  56. package/dist/mcp/cli.js +0 -122
  57. package/dist/mcp/cli.js.map +0 -1
  58. package/dist/mcp/index.d.ts +0 -7
  59. package/dist/mcp/index.d.ts.map +0 -1
  60. package/dist/mcp/index.js +0 -6
  61. package/dist/mcp/index.js.map +0 -1
  62. package/dist/mcp/server.d.ts +0 -18
  63. package/dist/mcp/server.d.ts.map +0 -1
  64. package/dist/mcp/server.js +0 -127
  65. package/dist/mcp/server.js.map +0 -1
  66. package/dist/mcp/tools/deleteMany.d.ts +0 -12
  67. package/dist/mcp/tools/deleteMany.d.ts.map +0 -1
  68. package/dist/mcp/tools/deleteMany.js +0 -24
  69. package/dist/mcp/tools/deleteMany.js.map +0 -1
  70. package/dist/mcp/tools/deleteOne.d.ts +0 -12
  71. package/dist/mcp/tools/deleteOne.d.ts.map +0 -1
  72. package/dist/mcp/tools/deleteOne.js +0 -24
  73. package/dist/mcp/tools/deleteOne.js.map +0 -1
  74. package/dist/mcp/tools/find.d.ts +0 -12
  75. package/dist/mcp/tools/find.d.ts.map +0 -1
  76. package/dist/mcp/tools/find.js +0 -56
  77. package/dist/mcp/tools/find.js.map +0 -1
  78. package/dist/mcp/tools/findMany.d.ts +0 -12
  79. package/dist/mcp/tools/findMany.d.ts.map +0 -1
  80. package/dist/mcp/tools/findMany.js +0 -28
  81. package/dist/mcp/tools/findMany.js.map +0 -1
  82. package/dist/mcp/tools/findManyReference.d.ts +0 -12
  83. package/dist/mcp/tools/findManyReference.d.ts.map +0 -1
  84. package/dist/mcp/tools/findManyReference.js +0 -32
  85. package/dist/mcp/tools/findManyReference.js.map +0 -1
  86. package/dist/mcp/tools/findOne.d.ts +0 -12
  87. package/dist/mcp/tools/findOne.d.ts.map +0 -1
  88. package/dist/mcp/tools/findOne.js +0 -24
  89. package/dist/mcp/tools/findOne.js.map +0 -1
  90. package/dist/mcp/tools/generated.d.ts +0 -11
  91. package/dist/mcp/tools/generated.d.ts.map +0 -1
  92. package/dist/mcp/tools/generated.js +0 -171
  93. package/dist/mcp/tools/generated.js.map +0 -1
  94. package/dist/mcp/tools/index.d.ts +0 -13
  95. package/dist/mcp/tools/index.d.ts.map +0 -1
  96. package/dist/mcp/tools/index.js +0 -29
  97. package/dist/mcp/tools/index.js.map +0 -1
  98. package/dist/mcp/tools/insertMany.d.ts +0 -12
  99. package/dist/mcp/tools/insertMany.d.ts.map +0 -1
  100. package/dist/mcp/tools/insertMany.js +0 -28
  101. package/dist/mcp/tools/insertMany.js.map +0 -1
  102. package/dist/mcp/tools/insertOne.d.ts +0 -12
  103. package/dist/mcp/tools/insertOne.d.ts.map +0 -1
  104. package/dist/mcp/tools/insertOne.js +0 -24
  105. package/dist/mcp/tools/insertOne.js.map +0 -1
  106. package/dist/mcp/tools/updateMany.d.ts +0 -12
  107. package/dist/mcp/tools/updateMany.d.ts.map +0 -1
  108. package/dist/mcp/tools/updateMany.js +0 -28
  109. package/dist/mcp/tools/updateMany.js.map +0 -1
  110. package/dist/mcp/tools/updateOne.d.ts +0 -12
  111. package/dist/mcp/tools/updateOne.d.ts.map +0 -1
  112. package/dist/mcp/tools/updateOne.js +0 -38
  113. package/dist/mcp/tools/updateOne.js.map +0 -1
  114. package/dist/mcp/types.d.ts +0 -50
  115. package/dist/mcp/types.d.ts.map +0 -1
  116. package/dist/mcp/types.js +0 -49
  117. package/dist/mcp/types.js.map +0 -1
@@ -1,213 +0,0 @@
1
- /**
2
- * MCP Adapter Layer
3
- * MCPツール呼び出しを既存のLambda操作に変換
4
- */
5
- import { randomUUID } from 'node:crypto';
6
- import { executeOperation } from '../server/operations/operationDispatcher.js';
7
- import { createLogger } from '../shared/index.js';
8
- import { MCPError, MCPErrorCode } from './types.js';
9
- /**
10
- * ロガーインスタンス
11
- */
12
- const logger = createLogger({
13
- service: 'mcp-adapter',
14
- level: process.env.LOG_LEVEL || 'info',
15
- });
16
- /**
17
- * MCPアダプター
18
- * MCPツール呼び出しをLambda操作に変換する
19
- */
20
- export class MCPAdapter {
21
- constructor(config) {
22
- // 環境変数を設定(既存のLambda操作が使用)
23
- if (config.tableName) {
24
- process.env.TABLE_NAME = config.tableName;
25
- process.env.DYNAMODB_TABLE = config.tableName;
26
- }
27
- if (config.region) {
28
- process.env.AWS_REGION = config.region;
29
- }
30
- if (config.profile) {
31
- process.env.AWS_PROFILE = config.profile;
32
- }
33
- if (config.accessKeyId) {
34
- process.env.AWS_ACCESS_KEY_ID = config.accessKeyId;
35
- }
36
- if (config.secretAccessKey) {
37
- process.env.AWS_SECRET_ACCESS_KEY = config.secretAccessKey;
38
- }
39
- logger.info('MCPAdapter initialized', {
40
- tableName: config.tableName,
41
- region: config.region || 'default',
42
- });
43
- }
44
- /**
45
- * MCPツールを実行
46
- * @param toolName ツール名
47
- * @param args ツール引数
48
- * @returns 実行結果
49
- */
50
- async executeTool(toolName, args) {
51
- const requestId = this.generateRequestId();
52
- logger.debug('Executing MCP tool', {
53
- requestId,
54
- toolName,
55
- args,
56
- });
57
- try {
58
- // MCPツール名をLambda操作に変換
59
- const apiRequest = this.convertToolToApiRequest(toolName, args);
60
- // 既存のLambda操作を実行
61
- const result = await executeOperation(apiRequest, requestId);
62
- logger.debug('MCP tool executed successfully', {
63
- requestId,
64
- toolName,
65
- });
66
- return result;
67
- }
68
- catch (error) {
69
- // エラーを分類して適切なMCPErrorに変換
70
- const mcpError = this.handleError(error, toolName, requestId);
71
- logger.error('MCP tool execution failed', {
72
- requestId,
73
- toolName,
74
- errorCode: mcpError.code,
75
- errorMessage: mcpError.message,
76
- details: mcpError.details,
77
- });
78
- throw mcpError;
79
- }
80
- }
81
- /**
82
- * エラーを処理してMCPErrorに変換
83
- * @param error 元のエラー
84
- * @param toolName ツール名
85
- * @param requestId リクエストID
86
- * @returns MCPError
87
- */
88
- handleError(error, toolName, requestId) {
89
- // すでにMCPErrorの場合はそのまま返す
90
- if (error instanceof MCPError) {
91
- return error;
92
- }
93
- // Errorオブジェクトの場合
94
- if (error instanceof Error) {
95
- // AWS SDK エラーの判定
96
- if ('name' in error && typeof error.name === 'string') {
97
- // DynamoDB関連エラー
98
- if (error.name.includes('DynamoDB') ||
99
- error.name.includes('ResourceNotFound') ||
100
- error.name.includes('ValidationException')) {
101
- return new MCPError(MCPErrorCode.DYNAMODB_ERROR, error.message, {
102
- toolName,
103
- requestId,
104
- originalError: error.name,
105
- });
106
- }
107
- // 認証関連エラー
108
- if (error.name.includes('AccessDenied') ||
109
- error.name.includes('UnauthorizedOperation') ||
110
- error.name.includes('InvalidClientTokenId') ||
111
- error.name.includes('SignatureDoesNotMatch')) {
112
- return new MCPError(MCPErrorCode.AUTHENTICATION_ERROR, error.message, {
113
- toolName,
114
- requestId,
115
- originalError: error.name,
116
- });
117
- }
118
- }
119
- // パラメータ関連エラー(メッセージから判定)
120
- if (error.message.includes('Missing required parameter') ||
121
- error.message.includes('required parameter')) {
122
- return new MCPError(MCPErrorCode.MISSING_REQUIRED_PARAMETER, error.message, {
123
- toolName,
124
- requestId,
125
- });
126
- }
127
- if (error.message.includes('Invalid parameter') || error.message.includes('invalid')) {
128
- return new MCPError(MCPErrorCode.INVALID_PARAMETER, error.message, {
129
- toolName,
130
- requestId,
131
- });
132
- }
133
- // その他のエラーは内部エラーとして扱う
134
- return new MCPError(MCPErrorCode.INTERNAL_ERROR, error.message, {
135
- toolName,
136
- requestId,
137
- stack: error.stack,
138
- });
139
- }
140
- // 文字列エラーの場合
141
- if (typeof error === 'string') {
142
- return new MCPError(MCPErrorCode.INTERNAL_ERROR, error, {
143
- toolName,
144
- requestId,
145
- });
146
- }
147
- // その他の不明なエラー
148
- return new MCPError(MCPErrorCode.INTERNAL_ERROR, 'An unknown error occurred', {
149
- toolName,
150
- requestId,
151
- error: String(error),
152
- });
153
- }
154
- /**
155
- * MCPツール名をAPIリクエストに変換
156
- * @param toolName ツール名
157
- * @param args ツール引数
158
- * @returns APIリクエスト
159
- */
160
- convertToolToApiRequest(toolName, args) {
161
- // ツール名から操作名とリソース名を抽出
162
- // 例: "dynamodb_find" -> { op: "find", resource: args.collection }
163
- const toolPrefix = 'dynamodb_';
164
- if (!toolName.startsWith(toolPrefix)) {
165
- throw new MCPError(MCPErrorCode.INVALID_TOOL_NAME, `Invalid tool name: ${toolName}. Must start with "${toolPrefix}"`, { toolName });
166
- }
167
- // ツール名から操作名を抽出(キャメルケース)
168
- // 例: "dynamodb_findOne" -> "findOne"
169
- const operationCamelCase = toolName.substring(toolPrefix.length);
170
- // キャメルケースをスネークケースに変換して検証
171
- // 例: "findOne" -> "find_one"
172
- const operationSnakeCase = operationCamelCase.replace(/([A-Z])/g, '_$1').toLowerCase();
173
- const resource = args.collection;
174
- if (!resource) {
175
- throw new MCPError(MCPErrorCode.MISSING_REQUIRED_PARAMETER, 'Missing required parameter: collection', { toolName, availableParams: Object.keys(args) });
176
- }
177
- // 操作名を検証(スネークケース形式)
178
- const validOperations = [
179
- 'find',
180
- 'find_one',
181
- 'find_many',
182
- 'find_many_reference',
183
- 'insert_one',
184
- 'insert_many',
185
- 'update_one',
186
- 'update_many',
187
- 'delete_one',
188
- 'delete_many',
189
- ];
190
- if (!validOperations.includes(operationSnakeCase)) {
191
- throw new MCPError(MCPErrorCode.INVALID_OPERATION, `Unknown operation: ${operationSnakeCase}`, { toolName, operation: operationSnakeCase, validOperations });
192
- }
193
- // スネークケースをキャメルケースに変換(API呼び出し用)
194
- // 例: "find_one" -> "findOne"
195
- const camelCaseOp = operationSnakeCase.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
196
- // collectionを除いたパラメータを抽出
197
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
198
- const { collection: _, ...params } = args;
199
- return {
200
- op: camelCaseOp,
201
- resource,
202
- params,
203
- };
204
- }
205
- /**
206
- * リクエストIDを生成
207
- * @returns リクエストID
208
- */
209
- generateRequestId() {
210
- return randomUUID();
211
- }
212
- }
213
- //# sourceMappingURL=adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/mcp/adapter.ts"],"names":[],"mappings":"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"}
package/dist/mcp/cli.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=cli.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/mcp/cli.ts"],"names":[],"mappings":""}
package/dist/mcp/cli.js DELETED
@@ -1,122 +0,0 @@
1
- /**
2
- * DynamoDB Client MCP Server CLI
3
- * CLIエントリポイント
4
- */
5
- import { createLogger } from '../shared/index.js';
6
- import { DynamoDBMCPServer } from './server.js';
7
- /**
8
- * ロガーインスタンス
9
- */
10
- const logger = createLogger({
11
- service: 'mcp-cli',
12
- level: process.env.LOG_LEVEL || 'info',
13
- });
14
- /**
15
- * 環境変数から設定を取得
16
- */
17
- function getConfigFromEnv() {
18
- // 必須パラメータのチェック
19
- const tableName = process.env.DYNAMODB_TABLE;
20
- if (!tableName) {
21
- const errorMessage = 'DYNAMODB_TABLE environment variable is required';
22
- logger.error(errorMessage);
23
- console.error(`Error: ${errorMessage}`);
24
- console.error('\nUsage:');
25
- console.error(' DYNAMODB_TABLE=your-table-name npx @exabugs/dynamodb-client mcp');
26
- console.error('\nOptional environment variables:');
27
- console.error(' AWS_REGION (default: us-east-1)');
28
- console.error(' AWS_PROFILE');
29
- console.error(' AWS_ACCESS_KEY_ID');
30
- console.error(' AWS_SECRET_ACCESS_KEY');
31
- console.error(' LOG_LEVEL (debug|info|warn|error, default: info)');
32
- process.exit(1);
33
- }
34
- // 環境変数から設定を取得
35
- const config = {
36
- tableName,
37
- region: process.env.AWS_REGION || 'us-east-1',
38
- profile: process.env.AWS_PROFILE,
39
- accessKeyId: process.env.AWS_ACCESS_KEY_ID,
40
- secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
41
- };
42
- logger.debug('Configuration loaded from environment', {
43
- tableName: config.tableName,
44
- region: config.region,
45
- hasProfile: !!config.profile,
46
- hasAccessKey: !!config.accessKeyId,
47
- });
48
- return config;
49
- }
50
- /**
51
- * メイン関数
52
- */
53
- async function main() {
54
- try {
55
- logger.info('Starting DynamoDB Client MCP Server');
56
- const config = getConfigFromEnv();
57
- // MCPサーバーを起動
58
- const server = new DynamoDBMCPServer(config);
59
- await server.start();
60
- logger.info('MCP Server is running');
61
- }
62
- catch (error) {
63
- logger.error('Failed to start MCP Server', {
64
- error: error instanceof Error ? error.message : String(error),
65
- stack: error instanceof Error ? error.stack : undefined,
66
- });
67
- // ユーザーフレンドリーなエラーメッセージを表示
68
- console.error('\nFatal error occurred:');
69
- if (error instanceof Error) {
70
- console.error(` ${error.message}`);
71
- // AWS認証エラーの場合は追加のヘルプを表示
72
- if (error.message.includes('credentials') ||
73
- error.message.includes('AccessDenied') ||
74
- error.message.includes('UnauthorizedOperation')) {
75
- console.error('\nAWS authentication failed. Please check:');
76
- console.error(' 1. AWS credentials are configured correctly');
77
- console.error(' 2. AWS_PROFILE is set (if using profiles)');
78
- console.error(' 3. AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY are set (if using keys)');
79
- console.error(' 4. IAM permissions allow DynamoDB access');
80
- }
81
- // DynamoDBテーブルエラーの場合
82
- if (error.message.includes('ResourceNotFound') || error.message.includes('Table')) {
83
- console.error('\nDynamoDB table not found. Please check:');
84
- console.error(' 1. DYNAMODB_TABLE is set correctly');
85
- console.error(' 2. The table exists in the specified region');
86
- console.error(' 3. AWS_REGION is set correctly');
87
- }
88
- }
89
- else {
90
- console.error(` ${String(error)}`);
91
- }
92
- process.exit(1);
93
- }
94
- }
95
- // プロセス終了時のクリーンアップ
96
- process.on('SIGINT', () => {
97
- logger.info('Received SIGINT, shutting down gracefully');
98
- process.exit(0);
99
- });
100
- process.on('SIGTERM', () => {
101
- logger.info('Received SIGTERM, shutting down gracefully');
102
- process.exit(0);
103
- });
104
- // 未処理のPromise拒否をキャッチ
105
- process.on('unhandledRejection', (reason, promise) => {
106
- logger.error('Unhandled Promise Rejection', {
107
- reason: reason instanceof Error ? reason.message : String(reason),
108
- promise: String(promise),
109
- });
110
- console.error('\nUnhandled Promise Rejection:');
111
- console.error(reason);
112
- process.exit(1);
113
- });
114
- // エラーハンドリング付きで実行
115
- main().catch((error) => {
116
- logger.error('Unexpected error in main', {
117
- error: error instanceof Error ? error.message : String(error),
118
- });
119
- console.error('Fatal error:', error);
120
- process.exit(1);
121
- });
122
- //# sourceMappingURL=cli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/mcp/cli.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * MCP Server エントリポイント
3
- */
4
- export { DynamoDBMCPServer } from './server.js';
5
- export { MCPError, MCPErrorCode } from './types.js';
6
- export type { MCPServerConfig } from './types.js';
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACpD,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
package/dist/mcp/index.js DELETED
@@ -1,6 +0,0 @@
1
- /**
2
- * MCP Server エントリポイント
3
- */
4
- export { DynamoDBMCPServer } from './server.js';
5
- export { MCPError, MCPErrorCode } from './types.js';
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
@@ -1,18 +0,0 @@
1
- import { type MCPServerConfig } from './types.js';
2
- /**
3
- * DynamoDB Client MCPサーバー
4
- */
5
- export declare class DynamoDBMCPServer {
6
- private server;
7
- private adapter;
8
- constructor(config: MCPServerConfig);
9
- /**
10
- * リクエストハンドラーの設定
11
- */
12
- private setupHandlers;
13
- /**
14
- * サーバーを起動
15
- */
16
- start(): Promise<void>;
17
- }
18
- //# sourceMappingURL=server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAWA,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAU5D;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAa;gBAEhB,MAAM,EAAE,eAAe;IAyBnC;;OAEG;IACH,OAAO,CAAC,aAAa;IA2ErB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAY7B"}
@@ -1,127 +0,0 @@
1
- /**
2
- * DynamoDB Client MCP Server
3
- * MCPサーバー本体の実装
4
- */
5
- import { Server } from '@modelcontextprotocol/sdk/server/index.js';
6
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
7
- import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
8
- import { createLogger } from '../shared/index.js';
9
- import { MCPAdapter } from './adapter.js';
10
- import { getAllTools } from './tools/index.js';
11
- import { MCPError } from './types.js';
12
- /**
13
- * ロガーインスタンス
14
- */
15
- const logger = createLogger({
16
- service: 'mcp-server',
17
- level: process.env.LOG_LEVEL || 'info',
18
- });
19
- /**
20
- * DynamoDB Client MCPサーバー
21
- */
22
- export class DynamoDBMCPServer {
23
- server;
24
- adapter;
25
- constructor(config) {
26
- // MCPサーバーの初期化
27
- this.server = new Server({
28
- name: 'dynamodb-client',
29
- version: '1.4.0',
30
- }, {
31
- capabilities: {
32
- tools: {},
33
- },
34
- });
35
- // Adapterの初期化
36
- this.adapter = new MCPAdapter(config);
37
- // ハンドラーの設定
38
- this.setupHandlers();
39
- logger.info('DynamoDBMCPServer initialized', {
40
- version: '1.4.0',
41
- });
42
- }
43
- /**
44
- * リクエストハンドラーの設定
45
- */
46
- setupHandlers() {
47
- // ツール一覧を返す
48
- this.server.setRequestHandler(ListToolsRequestSchema, async () => {
49
- logger.debug('Listing available tools');
50
- return {
51
- tools: getAllTools(),
52
- };
53
- });
54
- // ツールを実行
55
- this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
56
- const { name, arguments: args } = request.params;
57
- logger.debug('Tool call request received', {
58
- toolName: name,
59
- hasArguments: !!args,
60
- });
61
- try {
62
- const result = await this.adapter.executeTool(name, args ?? {});
63
- logger.debug('Tool call succeeded', {
64
- toolName: name,
65
- });
66
- return {
67
- content: [
68
- {
69
- type: 'text',
70
- text: JSON.stringify(result, null, 2),
71
- },
72
- ],
73
- };
74
- }
75
- catch (error) {
76
- logger.error('Tool call failed', {
77
- toolName: name,
78
- error: error instanceof Error ? error.message : String(error),
79
- });
80
- // MCPErrorの場合は詳細情報を含めて返す
81
- if (error instanceof MCPError) {
82
- return {
83
- content: [
84
- {
85
- type: 'text',
86
- text: JSON.stringify(error.toJSON(), null, 2),
87
- },
88
- ],
89
- isError: true,
90
- };
91
- }
92
- // その他のエラーは簡潔なメッセージを返す
93
- const errorMessage = error instanceof Error ? error.message : String(error);
94
- return {
95
- content: [
96
- {
97
- type: 'text',
98
- text: JSON.stringify({
99
- error: {
100
- message: errorMessage,
101
- },
102
- }, null, 2),
103
- },
104
- ],
105
- isError: true,
106
- };
107
- }
108
- });
109
- }
110
- /**
111
- * サーバーを起動
112
- */
113
- async start() {
114
- try {
115
- const transport = new StdioServerTransport();
116
- await this.server.connect(transport);
117
- logger.info('MCP Server started successfully');
118
- }
119
- catch (error) {
120
- logger.error('Failed to start MCP Server', {
121
- error: error instanceof Error ? error.message : String(error),
122
- });
123
- throw error;
124
- }
125
- }
126
- }
127
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * dynamodb_deleteMany ツール定義
3
- * DynamoDBから複数レコードを一括削除します。
4
- */
5
- import type { Tool } from '@modelcontextprotocol/sdk/types.js';
6
- /**
7
- * dynamodb_deleteMany ツール
8
- *
9
- * DynamoDBから複数レコードを一括削除します。
10
- */
11
- export declare const deleteManyTool: Tool;
12
- //# sourceMappingURL=deleteMany.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deleteMany.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/deleteMany.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,IAiB5B,CAAC"}
@@ -1,24 +0,0 @@
1
- /**
2
- * dynamodb_deleteMany ツール
3
- *
4
- * DynamoDBから複数レコードを一括削除します。
5
- */
6
- export const deleteManyTool = {
7
- name: 'dynamodb_deleteMany',
8
- description: 'DynamoDBから複数レコードを一括削除します。',
9
- inputSchema: {
10
- type: 'object',
11
- properties: {
12
- collection: {
13
- type: 'string',
14
- description: 'コレクション名(例: venues, users)',
15
- },
16
- filter: {
17
- type: 'object',
18
- description: 'フィルター条件(MongoDB形式)。例: { status: "active", age: { $gte: 18 } }',
19
- },
20
- },
21
- required: ['collection'],
22
- },
23
- };
24
- //# sourceMappingURL=deleteMany.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deleteMany.js","sourceRoot":"","sources":["../../../src/mcp/tools/deleteMany.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAS;IAClC,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,2BAA2B;IACxC,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2BAA2B;aACzC;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+DAA+D;aAC7E;SACF;QACD,QAAQ,EAAE,CAAC,YAAY,CAAC;KACzB;CACF,CAAC"}
@@ -1,12 +0,0 @@
1
- /**
2
- * dynamodb_deleteOne ツール定義
3
- * DynamoDBから単一レコードを削除します。
4
- */
5
- import type { Tool } from '@modelcontextprotocol/sdk/types.js';
6
- /**
7
- * dynamodb_deleteOne ツール
8
- *
9
- * DynamoDBから単一レコードを削除します。
10
- */
11
- export declare const deleteOneTool: Tool;
12
- //# sourceMappingURL=deleteOne.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deleteOne.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/deleteOne.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,IAiB3B,CAAC"}
@@ -1,24 +0,0 @@
1
- /**
2
- * dynamodb_deleteOne ツール
3
- *
4
- * DynamoDBから単一レコードを削除します。
5
- */
6
- export const deleteOneTool = {
7
- name: 'dynamodb_deleteOne',
8
- description: 'DynamoDBから単一レコードを削除します。',
9
- inputSchema: {
10
- type: 'object',
11
- properties: {
12
- collection: {
13
- type: 'string',
14
- description: 'コレクション名(例: venues, users)',
15
- },
16
- id: {
17
- type: 'string',
18
- description: 'レコードID',
19
- },
20
- },
21
- required: ['collection'],
22
- },
23
- };
24
- //# sourceMappingURL=deleteOne.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deleteOne.js","sourceRoot":"","sources":["../../../src/mcp/tools/deleteOne.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAS;IACjC,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,yBAAyB;IACtC,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2BAA2B;aACzC;YACD,EAAE,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,QAAQ;aACtB;SACF;QACD,QAAQ,EAAE,CAAC,YAAY,CAAC;KACzB;CACF,CAAC"}
@@ -1,12 +0,0 @@
1
- /**
2
- * dynamodb_find ツール定義
3
- * DynamoDBからレコードを検索します。フィルター、ソート、ページネーションをサポート。
4
- */
5
- import type { Tool } from '@modelcontextprotocol/sdk/types.js';
6
- /**
7
- * dynamodb_find ツール
8
- *
9
- * DynamoDBからレコードを検索します。フィルター、ソート、ページネーションをサポート。
10
- */
11
- export declare const findTool: Tool;
12
- //# sourceMappingURL=find.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/find.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,IAiDtB,CAAC"}