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 CHANGED
@@ -1,119 +1,112 @@
1
- # 📖 mulmo vision とは?
1
+ # mulmocast-vision
2
2
 
3
- mulmo vision LLM(大規模言語モデル) を使って、プレゼンテーション資料を自動で作成するツールです。
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
- - スライド設計(LLM)
14
- LLM が情報を読み取り、必要なスライド構成と文言を決定します。
15
+ ---
15
16
 
16
- - HTML テンプレート生成
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
- ```mermaid
24
- flowchart TD
23
+ ## Configuration
25
24
 
26
- A[📝 ユーザーが情報を入力] --> B[🤖 LLM: スライド設計 & 文言作成]
27
- B --> C[⚙️ Node 関数: HTML テンプレートに適用]
28
- C --> D[🖼 HTML レンダリング: スライド画像生成]
29
- D --> E[📑 完成したプレゼン資料]
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
- ### sample: 80このサンプルデータを使ってhtml -> imageを生成する
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
- outdir/{timeStamp}/{index}.png に画像生成
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
- ### openaiのエージェントでprompt -> tools -> html作成
58
+ # mulmocast-vision(日本語版)
53
59
 
54
- ```
55
- yarn run ai
56
- ```
60
+ **mulmocast-vision** は、MCP (Model Context Protocol) 経由で LLM を活用し、パワーポイントのようなスライド資料を自動生成できるツールです。
61
+ ビジネスに特化した **80種類のスライドテンプレート** を備えており、企画書・提案資料・戦略資料などを簡単に作成できます。
57
62
 
58
- プロンプトはソースに直接書いている `src/presentation.ts`
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
- ### mcp
78
+ ---
80
79
 
81
- buildする
82
- ```
83
- yarn run build
84
- ```
80
+ ## 設定方法
85
81
 
86
- mcp設定
82
+ MCP対応ツール(例: Claude Desktop)の設定ファイルに以下を追記してください。
87
83
 
88
- for dev
89
- ```
90
- "mulmocast-vision": {
91
- "command": "npx",
92
- "args": [
93
- "mulmocast-vision",
94
- "page"
95
- ],
96
- "transport": {
97
- "stdio": true
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
- for dev
104
- ```
105
- "mulmocast-vision": {
106
- "command": "env",
107
- "args": [
108
- "node",
109
- "/path/to/mulmocast-vision/lib/mcp/server.js"
110
- ],
111
- "transport": {
112
- "stdio": true
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
@@ -1,2 +1,3 @@
1
1
  export * from "./tools";
2
2
  export * from "./commons";
3
+ export * from "./type";
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, ...mcp_tools_1.mcp_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
+ ];
@@ -0,0 +1,2 @@
1
+ import { OpenAITool } from "../type";
2
+ export declare const toolsBase: OpenAITool[];