@kickflow/mcp-server 0.1.0 → 0.1.3

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.
@@ -1,16 +1,30 @@
1
- // file.zod.ts が存在しない、または読み込めない可能性があるため、型定義から推測して import します
2
- import { uploadFileBody } from '../../generated/file/file.zod.js';
1
+ import { z } from 'zod';
3
2
  import { createApiToolCallback } from '../../tool-utils.js';
3
+ // uploadFileBody の元のスキーマは zod.instanceof(File) を使用していますが、
4
+ // これは JSON Schema に変換できません(MCP SDK が内部で zod-to-json-schema を使用するため)。
5
+ // MCP 経由でのファイルアップロードは base64 エンコードされた文字列として受け渡すのが一般的です。
6
+ const uploadFileParamsSchema = z.object({
7
+ file: z
8
+ .string()
9
+ .describe('添付ファイル(base64エンコードされた文字列)。MCPではFileオブジェクトを直接渡すことができないため、base64形式で指定してください。'),
10
+ filename: z.string().describe('ファイル名'),
11
+ contentType: z.string().optional().describe('Content-Type(省略可能)'),
12
+ });
4
13
  const uploadFileTool = {
5
14
  name: 'upload_file',
6
- description: '添付ファイルをアップロードします',
7
- // 注意: uploadFileBody は zod.object({ file: zod.instanceof(File) }) のような形を期待しますが、
8
- // MCP経由でのFileオブジェクトの直接受け渡しは標準化されていません。
9
- // ここではスキーマ定義が存在すると仮定しますが、実際の動作はMCPクライアントの実装に依存します。
10
- paramsSchema: uploadFileBody.shape,
11
- cb: createApiToolCallback(uploadFileBody, (api, validatedArgs) =>
12
- // uploadFileBodyが { file: File } の形であることを期待
13
- api.uploadFile(validatedArgs)),
15
+ description: '添付ファイルをアップロードします。注意: MCP経由でのファイルアップロードはbase64エンコードされた文字列として指定する必要があります。',
16
+ paramsSchema: uploadFileParamsSchema.shape,
17
+ cb: createApiToolCallback(uploadFileParamsSchema, async (api, validatedArgs) => {
18
+ // base64文字列からBlobを作成してFormDataに変換
19
+ const base64Data = validatedArgs.file;
20
+ const binaryData = Buffer.from(base64Data, 'base64');
21
+ const blob = new Blob([binaryData], { type: validatedArgs.contentType || 'application/octet-stream' });
22
+ // File オブジェクトを作成(Node.js 20+ で利用可能)
23
+ const file = new File([blob], validatedArgs.filename, {
24
+ type: validatedArgs.contentType || 'application/octet-stream',
25
+ });
26
+ return api.uploadFile({ file });
27
+ }),
14
28
  };
15
29
  export default uploadFileTool;
16
30
  //# sourceMappingURL=upload-file.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"upload-file.js","sourceRoot":"","sources":["../../../../src/kickflow-api/tools/file/upload-file.ts"],"names":[],"mappings":"AACA,4DAA4D;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,MAAM,cAAc,GAAS;IAC3B,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,kBAAkB;IAC/B,gFAAgF;IAChF,uCAAuC;IACvC,mDAAmD;IACnD,YAAY,EAAE,cAAc,CAAC,KAAK;IAClC,EAAE,EAAE,qBAAqB,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE;IAC/D,4CAA4C;IAC5C,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAC9B;CACF,CAAA;AACD,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"upload-file.js","sourceRoot":"","sources":["../../../../src/kickflow-api/tools/file/upload-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,0DAA0D;AAC1D,qEAAqE;AACrE,wDAAwD;AACxD,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,CACP,4EAA4E,CAC7E;IACH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;CAClE,CAAC,CAAA;AAEF,MAAM,cAAc,GAAS;IAC3B,IAAI,EAAE,aAAa;IACnB,WAAW,EACT,yEAAyE;IAC3E,YAAY,EAAE,sBAAsB,CAAC,KAAK;IAC1C,EAAE,EAAE,qBAAqB,CAAC,sBAAsB,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE;QAC7E,kCAAkC;QAClC,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAA;QACrC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACpD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,WAAW,IAAI,0BAA0B,EAAE,CAAC,CAAA;QAEtG,oCAAoC;QACpC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,QAAQ,EAAE;YACpD,IAAI,EAAE,aAAa,CAAC,WAAW,IAAI,0BAA0B;SAC9D,CAAC,CAAA;QAEF,OAAO,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IACjC,CAAC,CAAC;CACH,CAAA;AACD,eAAe,cAAc,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kickflow/mcp-server",
3
- "version": "0.1.0",
3
+ "version": "0.1.3",
4
4
  "description": "MCP Server for kickflow API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -36,20 +36,21 @@
36
36
  },
37
37
  "type": "module",
38
38
  "dependencies": {
39
- "@modelcontextprotocol/sdk": "1.10.2",
40
- "axios": "1.9.0"
39
+ "@modelcontextprotocol/sdk": "1.24.0",
40
+ "axios": "1.12.0",
41
+ "zod": "4.1.13"
41
42
  },
42
43
  "devDependencies": {
43
- "@eslint/js": "9.25.1",
44
+ "@eslint/js": "9.27.0",
44
45
  "@types/node": "22.15.17",
45
- "eslint": "9.25.1",
46
+ "eslint": "9.27.0",
46
47
  "eslint-config-prettier": "10.1.5",
47
- "eslint-plugin-prettier": "5.2.6",
48
+ "eslint-plugin-prettier": "5.4.0",
48
49
  "globals": "^16.0.0",
49
- "orval": "7.8.0",
50
+ "orval": "7.9.0",
50
51
  "prettier": "3.5.3",
51
52
  "ts-node": "10.9.2",
52
53
  "typescript": "5.8.3",
53
- "typescript-eslint": "8.31.0"
54
+ "typescript-eslint": "8.33.0"
54
55
  }
55
56
  }