mulmocast-vision 0.1.1 → 0.1.2
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.
- package/README.md +78 -85
- package/lib/browser.d.ts +1 -0
- package/lib/browser.js +1 -0
- package/lib/mcp/cli.js +0 -0
- package/lib/mcp/core.js +1 -2
- package/lib/tools/index.d.ts +19 -0
- package/lib/tools/index.js +75 -0
- package/lib/tools/tools_base.d.ts +2 -0
- package/lib/tools/tools_base.js +1685 -0
- package/package.json +2 -5
- package/lib/mcp/server.d.ts +0 -2
- package/lib/mcp/server.js +0 -21
- package/lib/podcast.d.ts +0 -1
- package/lib/podcast.js +0 -123
- package/lib/presentation.d.ts +0 -1
- package/lib/presentation.js +0 -67
- package/lib/presentationHandlers/vision_data_class.d.ts +0 -92
- package/lib/presentationHandlers/vision_data_class.js +0 -255
- package/lib/runner.d.ts +0 -1
- package/lib/runner.js +0 -26
- package/lib/server.d.ts +0 -2
- package/lib/server.js +0 -76
- package/lib/test.d.ts +0 -1
- package/lib/test.js +0 -71
package/README.md
CHANGED
|
@@ -1,119 +1,112 @@
|
|
|
1
|
-
#
|
|
1
|
+
# mulmocast-vision
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**mulmocast-vision** is a tool that uses LLMs via MCP (Model Context Protocol) to automatically generate presentation slides, similar to PowerPoint.
|
|
4
|
+
With **80+ business-oriented slide templates**, you can quickly create proposals, strategy decks, and other professional materials.
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
「伝えたい情報」を入力すれば、スライドの文章とデザインが自動生成されます。
|
|
6
|
+
---
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
## Features
|
|
9
9
|
|
|
10
|
-
-
|
|
11
|
-
|
|
10
|
+
- 📑 **Rich Templates**: 80 business-optimized slide designs
|
|
11
|
+
- ⚡ **Instant Generation**: Create slides in seconds using LLMs via MCP
|
|
12
|
+
- 🖥️ **Simple Setup**: Just add a small config to your MCP client (e.g., Claude Desktop)
|
|
13
|
+
- 📂 **Auto Save**: Output files are saved under `~/Documents/mulmocast-vision/`
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
LLM が情報を読み取り、必要なスライド構成と文言を決定します。
|
|
15
|
+
---
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
Node.js 関数が呼ばれ、スライド用の HTML テンプレートに文言が埋め込まれます。
|
|
17
|
+
## No Installation Needed
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
HTML をレンダリングし、最終的なスライド画像を作成します。
|
|
19
|
+
Runs directly with `npx`. No global install required.
|
|
21
20
|
|
|
21
|
+
---
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
flowchart TD
|
|
23
|
+
## Configuration
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
Add the following to your MCP client settings (e.g., Claude Desktop):
|
|
26
|
+
|
|
27
|
+
```json
|
|
28
|
+
"mulmocast-vision": {
|
|
29
|
+
"command": "npx",
|
|
30
|
+
"args": [
|
|
31
|
+
"mulmocast-vision"
|
|
32
|
+
],
|
|
33
|
+
"transport": {
|
|
34
|
+
"stdio": true
|
|
35
|
+
}
|
|
36
|
+
}
|
|
30
37
|
```
|
|
31
38
|
|
|
39
|
+
---
|
|
32
40
|
|
|
33
|
-
|
|
34
|
-
- LLMがtoolsを使ってスライドの内容を決める
|
|
35
|
-
- [slideを作成するtoolsの関数定義](./src/tools.ts)
|
|
36
|
-
- [runner](./src/runner.ts)でtoolsの結果から関数を呼び出す
|
|
37
|
-
- [呼び出される関数](./src/presentationHandlers/html_class.ts)
|
|
38
|
-
- [html + tailwindを使ったベースhtml](./assets/templates/tailwind.html) + [スライドごとの個別のhtml](./assets/html/) でhtmlページをつくる
|
|
39
|
-
- outdirに画像として保存する
|
|
41
|
+
## Usage
|
|
40
42
|
|
|
43
|
+
1. Launch an MCP-compatible client (e.g., Claude Desktop)
|
|
44
|
+
2. Call `mulmocast-vision` to request slide generation
|
|
45
|
+
3. The generated slides will be saved automatically under `~/Documents/mulmocast-vision/`
|
|
41
46
|
|
|
42
|
-
|
|
47
|
+
---
|
|
43
48
|
|
|
44
|
-
|
|
45
|
-
yarn run generate_all_images
|
|
46
|
-
```
|
|
47
|
-
- [その関数で生成される80種類のサンプルのデータ](./tests/ai_referencing_80_tool_calls.ts)
|
|
49
|
+
## Output Examples
|
|
48
50
|
|
|
49
|
-
|
|
51
|
+
- Proposal (Problem → Solution → Value → Next Action)
|
|
52
|
+
- Business Model Canvas
|
|
53
|
+
- SWOT, PEST, and 3C Analysis
|
|
54
|
+
- Summary, Agenda, and Closing Slides
|
|
50
55
|
|
|
56
|
+
---
|
|
51
57
|
|
|
52
|
-
|
|
58
|
+
# mulmocast-vision(日本語版)
|
|
53
59
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
```
|
|
60
|
+
**mulmocast-vision** は、MCP (Model Context Protocol) 経由で LLM を活用し、パワーポイントのようなスライド資料を自動生成できるツールです。
|
|
61
|
+
ビジネスに特化した **80種類のスライドテンプレート** を備えており、企画書・提案資料・戦略資料などを簡単に作成できます。
|
|
57
62
|
|
|
58
|
-
|
|
63
|
+
---
|
|
59
64
|
|
|
65
|
+
## 特徴
|
|
60
66
|
|
|
61
|
-
|
|
67
|
+
- 📑 **豊富なテンプレート**: ビジネスに最適化された 80種類以上のスライドデザイン
|
|
68
|
+
- ⚡ **即時生成**: LLM と MCP を通じて、最短数秒でプレゼン資料を出力
|
|
69
|
+
- 🖥️ **シンプルな利用方法**: MCP対応ツール(例: Claude Desktop)に設定するだけ
|
|
70
|
+
- 📂 **自動保存**: 生成された資料は `~/Documents/mulmocast-vision/` 以下に保存
|
|
62
71
|
|
|
63
|
-
|
|
64
|
-
- toolsから呼ばれる関数群を変更する(html以外でも書き出せる)
|
|
65
|
-
- htmlのベースファイルに変更、もしくはstyleの追加
|
|
66
|
-
- assets/templates以下のファイルを書き換える
|
|
67
|
-
- templateファイルの指定
|
|
68
|
-
- `const handler = new htmlPlugin({ outputDir, rootDir, templateOptions: {htmlTemplateFile: "tailwind-sea"}});`
|
|
69
|
-
- templateのheaderへstyleを注入
|
|
70
|
-
- `const handler = new htmlPlugin({ outputDir, rootDir, templateOptions: {headerStyle: darkStyle}});`
|
|
71
|
-
- 各スライド用の個別のhtmlファイルの変更
|
|
72
|
-
- `assets/html/` 以下のファイルを編集
|
|
73
|
-
- 各スライド用のフォルダーを変更する
|
|
74
|
-
`const templateFileName = path.resolve(this.rootDir, "./assets/html/", `${fileName}.html`);`
|
|
72
|
+
---
|
|
75
73
|
|
|
76
|
-
|
|
74
|
+
## インストール不要
|
|
77
75
|
|
|
76
|
+
追加のインストールは不要です。`npx` 経由で直接実行できます。
|
|
78
77
|
|
|
79
|
-
|
|
78
|
+
---
|
|
80
79
|
|
|
81
|
-
|
|
82
|
-
```
|
|
83
|
-
yarn run build
|
|
84
|
-
```
|
|
80
|
+
## 設定方法
|
|
85
81
|
|
|
86
|
-
|
|
82
|
+
MCP対応ツール(例: Claude Desktop)の設定ファイルに以下を追記してください。
|
|
87
83
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
99
|
-
}
|
|
84
|
+
```json
|
|
85
|
+
"mulmocast-vision": {
|
|
86
|
+
"command": "npx",
|
|
87
|
+
"args": [
|
|
88
|
+
"mulmocast-vision"
|
|
89
|
+
],
|
|
90
|
+
"transport": {
|
|
91
|
+
"stdio": true
|
|
92
|
+
}
|
|
93
|
+
}
|
|
100
94
|
```
|
|
101
95
|
|
|
96
|
+
---
|
|
102
97
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
98
|
+
## 使い方
|
|
99
|
+
|
|
100
|
+
1. MCP対応クライアント(Claude Desktop など)を起動
|
|
101
|
+
2. `mulmocast-vision` を呼び出してスライド生成を指示
|
|
102
|
+
3. 完成した資料が自動的に `~/Documents/mulmocast-vision/` に保存されます
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## 出力例
|
|
107
|
+
|
|
108
|
+
- 企画書(Problem → Solution → Value → Next Action)
|
|
109
|
+
- ビジネスモデルキャンバス
|
|
110
|
+
- SWOT分析、PEST分析、3C分析
|
|
111
|
+
- サマリースライド、アジェンダスライド、クロージングスライド
|
|
116
112
|
|
|
117
|
-
mulmocast-vision/output以下に画像が出力される。
|
|
118
|
-
セッションごとにfolderができるので注意
|
|
119
|
-
(連続すると画像が上書きされるかも)
|
package/lib/browser.d.ts
CHANGED
package/lib/browser.js
CHANGED
|
@@ -16,3 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./tools"), exports);
|
|
18
18
|
__exportStar(require("./commons"), exports);
|
|
19
|
+
__exportStar(require("./type"), exports);
|
package/lib/mcp/cli.js
CHANGED
|
File without changes
|
package/lib/mcp/core.js
CHANGED
|
@@ -5,7 +5,6 @@ exports.getServer = void 0;
|
|
|
5
5
|
const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
|
|
6
6
|
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
7
7
|
const tools_1 = require("../tools");
|
|
8
|
-
const mcp_tools_1 = require("../mcp_tools");
|
|
9
8
|
const html_class_1 = require("../presentationHandlers/html_class");
|
|
10
9
|
const commons_1 = require("../commons");
|
|
11
10
|
const getServer = (rootDir, outputDir) => {
|
|
@@ -19,7 +18,7 @@ const getServer = (rootDir, outputDir) => {
|
|
|
19
18
|
});
|
|
20
19
|
// List available tools
|
|
21
20
|
server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
|
|
22
|
-
return (0, commons_1.openAIToolsToAnthropicTools)([...tools_1.tools, ...
|
|
21
|
+
return (0, commons_1.openAIToolsToAnthropicTools)([...tools_1.tools, ...tools_1.mcp_tools]);
|
|
23
22
|
});
|
|
24
23
|
const handler = new html_class_1.htmlPlugin({ outputDir, rootDir });
|
|
25
24
|
// Handle tool calls
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { OpenAITool } from "../type";
|
|
2
|
+
export * from "./tools_base";
|
|
3
|
+
export declare const tools: {
|
|
4
|
+
type: "function";
|
|
5
|
+
function: {
|
|
6
|
+
name: string;
|
|
7
|
+
description: string;
|
|
8
|
+
parameters: import("../type").ToolParametersSchema;
|
|
9
|
+
};
|
|
10
|
+
}[];
|
|
11
|
+
export declare const toolsForBeat: {
|
|
12
|
+
type: "function";
|
|
13
|
+
function: {
|
|
14
|
+
name: string;
|
|
15
|
+
description: string;
|
|
16
|
+
parameters: import("../type").ToolParametersSchema;
|
|
17
|
+
};
|
|
18
|
+
}[];
|
|
19
|
+
export declare const mcp_tools: OpenAITool[];
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.mcp_tools = exports.toolsForBeat = exports.tools = void 0;
|
|
18
|
+
const tools_base_1 = require("./tools_base");
|
|
19
|
+
__exportStar(require("./tools_base"), exports);
|
|
20
|
+
exports.tools = tools_base_1.toolsBase.map((tool) => {
|
|
21
|
+
const { type, function: func } = tool;
|
|
22
|
+
const { name, description, parameters } = func;
|
|
23
|
+
return {
|
|
24
|
+
type,
|
|
25
|
+
function: {
|
|
26
|
+
name: `create${name}Slide`,
|
|
27
|
+
description: `Create or update ${description}`,
|
|
28
|
+
parameters,
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
exports.toolsForBeat = tools_base_1.toolsBase.map((tool) => {
|
|
33
|
+
const { type, function: func } = tool;
|
|
34
|
+
const { name, description, parameters } = func;
|
|
35
|
+
return {
|
|
36
|
+
type,
|
|
37
|
+
function: {
|
|
38
|
+
name: `updateBeatStyleTo${name}`,
|
|
39
|
+
description: `Change the beat image to ${description}`,
|
|
40
|
+
parameters,
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
// updateBeatImageForXXStyle
|
|
45
|
+
// Change the beat image to
|
|
46
|
+
exports.mcp_tools = [
|
|
47
|
+
{
|
|
48
|
+
type: "function",
|
|
49
|
+
function: {
|
|
50
|
+
name: "setDirectory",
|
|
51
|
+
description: "Specify a directory for each session and output the content to that directory. Call it once before creating a slide, and again when creating the next new slide.",
|
|
52
|
+
parameters: {
|
|
53
|
+
type: "object",
|
|
54
|
+
properties: {
|
|
55
|
+
directoryName: { type: "string", description: "Directory name" },
|
|
56
|
+
},
|
|
57
|
+
required: ["directoryName"],
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
type: "function",
|
|
63
|
+
function: {
|
|
64
|
+
name: "createPDF",
|
|
65
|
+
description: "combine images to create a PDF.",
|
|
66
|
+
parameters: {
|
|
67
|
+
type: "object",
|
|
68
|
+
properties: {
|
|
69
|
+
status: { type: "string", description: "statis" },
|
|
70
|
+
},
|
|
71
|
+
required: ["status"],
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
];
|