mulmocast-vision 1.0.1 β 1.0.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.
- package/README.md +44 -15
- package/lib/html_class.d.ts +1 -0
- package/lib/html_class.js +9 -3
- package/lib/mcp.js +2 -2
- package/package.json +2 -3
package/README.md
CHANGED
|
@@ -3,32 +3,46 @@
|
|
|
3
3
|
**mulmocast-vision** is a tool that uses LLMs via MCP (Model Context Protocol) to automatically generate presentation slides, similar to PowerPoint.
|
|
4
4
|
With **80+ business-oriented slide templates**, you can quickly create proposals, strategy decks, and other professional materials.
|
|
5
5
|
|
|
6
|
-
---
|
|
7
6
|
|
|
8
|
-
## Features
|
|
7
|
+
## β¨ Features
|
|
9
8
|
|
|
10
|
-
- π **Rich Templates
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
-
|
|
9
|
+
- π **80+ Rich Templates**
|
|
10
|
+
Business-optimized designs for proposals, reports, and analysis documents
|
|
11
|
+
|
|
12
|
+
- β‘ **Instant Generation**
|
|
13
|
+
Create professional slides in seconds using LLMs via :contentReference[oaicite:1]{index=1} (MCP)
|
|
14
|
+
|
|
15
|
+
- βοΈ **Simple Setup**
|
|
16
|
+
Just add a small config to your MCP client (e.g. :contentReference[oaicite:2]{index=2}) to start
|
|
17
|
+
|
|
18
|
+
- πΎ **Auto Save & Easy Export**
|
|
19
|
+
Outputs are automatically saved under `~/Documents/mulmocast-vision/`
|
|
20
|
+
Export instantly to PDF
|
|
21
|
+
|
|
22
|
+
- π¨ **Fully Customizable**
|
|
23
|
+
HTML-based templates allow fine-grained design tweaks or full redesigns
|
|
24
|
+
|
|
25
|
+
You can create documents like these in just a few minutes.
|
|
26
|
+
|
|
27
|
+
[Sample AI Company Analysis Slide (PDF)](https://github.com/isamu/slide_example/blob/master/pdf/AI_Companies_Corporate_Analysis_2025.pdf)
|
|
14
28
|
|
|
15
|
-
---
|
|
16
29
|
|
|
17
30
|
## No Installation Needed
|
|
18
31
|
|
|
19
32
|
Runs directly with `npx`. No global install required.
|
|
20
33
|
|
|
21
|
-
---
|
|
22
34
|
|
|
23
|
-
##
|
|
35
|
+
## Setup
|
|
24
36
|
|
|
25
|
-
Add the following to your
|
|
37
|
+
Here is an example for Claude desktop. Add the following to your `claude_desktop_config.json`.
|
|
38
|
+
You can use similar settings for other MCPs.
|
|
26
39
|
|
|
27
40
|
```json
|
|
41
|
+
// claude_desktop_config.json
|
|
28
42
|
"mulmocast-vision": {
|
|
29
43
|
"command": "npx",
|
|
30
44
|
"args": [
|
|
31
|
-
"mulmocast-vision"
|
|
45
|
+
"mulmocast-vision@latest"
|
|
32
46
|
],
|
|
33
47
|
"transport": {
|
|
34
48
|
"stdio": true
|
|
@@ -36,15 +50,20 @@ Add the following to your MCP client settings (e.g., Claude Desktop):
|
|
|
36
50
|
}
|
|
37
51
|
```
|
|
38
52
|
|
|
39
|
-
|
|
53
|
+
That's all for the setup.
|
|
54
|
+
If the path to `npx` is not set, specify the full path.
|
|
55
|
+
If `npx` is not installed, please install it in advance.
|
|
56
|
+
|
|
40
57
|
|
|
41
58
|
## Usage
|
|
42
59
|
|
|
43
60
|
1. Launch an MCP-compatible client (e.g., Claude Desktop)
|
|
44
|
-
2.
|
|
45
|
-
3. The generated slides will be saved automatically under `~/Documents/mulmocast-vision
|
|
61
|
+
2. Just give an instruction like "Compare corporate analysis of AI companies such as OpenAi Anthropic Replicate. About 20 slides.".
|
|
62
|
+
3. The generated slides will be saved automatically under `~/Documents/mulmocast-vision/{date}`
|
|
63
|
+
|
|
64
|
+
Currently available features include creating slides for each page, updating specified slides, generating a PDF of all slides, and generating a PDF for specified slides.
|
|
65
|
+
You can instruct these actions via prompts.
|
|
46
66
|
|
|
47
|
-
---
|
|
48
67
|
|
|
49
68
|
## Output Examples
|
|
50
69
|
|
|
@@ -53,6 +72,16 @@ Add the following to your MCP client settings (e.g., Claude Desktop):
|
|
|
53
72
|
- SWOT, PEST, and 3C Analysis
|
|
54
73
|
- Summary, Agenda, and Closing Slides
|
|
55
74
|
|
|
75
|
+
## For Developers
|
|
76
|
+
|
|
77
|
+
MulmoCast Vision is open source, so you can apply various designs by modifying the HTML.
|
|
78
|
+
For adding styles, please refer to [Style.ja.md](https://github.com/receptron/mulmocast-vision/blob/main/Style.ja.md).
|
|
79
|
+
|
|
80
|
+
### Official Repository & Package
|
|
81
|
+
|
|
82
|
+
- [GitHub: receptron/mulmocast-vision](https://github.com/receptron/mulmocast-vision)
|
|
83
|
+
- [npm: mulmocast-vision](https://www.npmjs.com/package/mulmocast-vision)
|
|
84
|
+
|
|
56
85
|
---
|
|
57
86
|
|
|
58
87
|
# mulmocast-visionοΌζ₯ζ¬θͺηοΌ
|
package/lib/html_class.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export declare class htmlPlugin {
|
|
|
16
16
|
});
|
|
17
17
|
callNamedFunction: (functionName: string, args: ToolArgs, options: PluginOptionParams) => Promise<any>;
|
|
18
18
|
private generateHtml;
|
|
19
|
+
getHtml: (functionName: string, args: ToolArgs) => string;
|
|
19
20
|
setDirectory: (args: ToolArgs, __options: PluginOptionParams) => Promise<{
|
|
20
21
|
text: string;
|
|
21
22
|
}>;
|
package/lib/html_class.js
CHANGED
|
@@ -16,6 +16,7 @@ class htmlPlugin {
|
|
|
16
16
|
htmlDir, // relative path
|
|
17
17
|
templateDir, // absolute path
|
|
18
18
|
}) {
|
|
19
|
+
// api for mcp
|
|
19
20
|
this.callNamedFunction = async (functionName, args, options) => {
|
|
20
21
|
const member = this[functionName];
|
|
21
22
|
if (member && typeof member === "function") {
|
|
@@ -28,15 +29,20 @@ class htmlPlugin {
|
|
|
28
29
|
if (!functionName) {
|
|
29
30
|
throw new Error("functionName is required");
|
|
30
31
|
}
|
|
31
|
-
const
|
|
32
|
-
const templateFilePath = path_1.default.resolve(this.templateDir ? this.templateDir : path_1.default.resolve(this.rootDir, "html", this.htmlDir), `${templateFileName}.html`);
|
|
32
|
+
const html = this.getHtml(functionName, args);
|
|
33
33
|
const outfile = imageFilePath ?? path_1.default.resolve(this.outputDir, this.sessionDir, `${outputFileName}.png`);
|
|
34
34
|
const htmlFile = htmlFilePath ?? path_1.default.resolve(this.outputDir, this.sessionDir, `${outputFileName}.html`);
|
|
35
|
-
await (0, utils_1.createPage)(this.rootDir, outfile,
|
|
35
|
+
await (0, utils_1.createPage)(this.rootDir, outfile, html, { htmlFile, ...this.templateOptions });
|
|
36
36
|
return {
|
|
37
37
|
text: `html generated successfully to: ${outfile}`,
|
|
38
38
|
};
|
|
39
39
|
};
|
|
40
|
+
// for electron
|
|
41
|
+
this.getHtml = (functionName, args) => {
|
|
42
|
+
const templateFileName = (0, commons_1.functionNameToTemplateName)(functionName);
|
|
43
|
+
const templateFilePath = path_1.default.resolve(this.templateDir ? this.templateDir : path_1.default.resolve(this.rootDir, "html", this.htmlDir), `${templateFileName}.html`);
|
|
44
|
+
return nunjucks_1.default.render(templateFilePath, args);
|
|
45
|
+
};
|
|
40
46
|
// for mcp
|
|
41
47
|
this.setDirectory = async (args, __options) => {
|
|
42
48
|
this.sessionDir = args.directoryName;
|
package/lib/mcp.js
CHANGED
|
@@ -11,8 +11,8 @@ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
|
11
11
|
const utils_1 = require("./utils");
|
|
12
12
|
const getServer = (handler) => {
|
|
13
13
|
const server = new index_js_1.Server({
|
|
14
|
-
name: "mulmocast-vision
|
|
15
|
-
version: "0.
|
|
14
|
+
name: "mulmocast-vision",
|
|
15
|
+
version: "1.0.2",
|
|
16
16
|
}, {
|
|
17
17
|
capabilities: {
|
|
18
18
|
tools: {},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mulmocast-vision",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "Easy and stylish presentation slide generator",
|
|
5
5
|
"mcpName": "io.github.isamu/mulmocast-vision",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -20,8 +20,7 @@
|
|
|
20
20
|
"ai": "npx tsx ./old/presentation.ts",
|
|
21
21
|
"generate_all_images": "npx tsx ./tests/test.ts",
|
|
22
22
|
"design": "NODE_ENV=test npx tsx ./tests/design.ts",
|
|
23
|
-
"ci_test": "NODE_ENV=test npx tsx ./tests/test.ts"
|
|
24
|
-
"ci_test2": "NODE_ENV=test npx tsx ./tests/test2.ts"
|
|
23
|
+
"ci_test": "NODE_ENV=test npx tsx ./tests/test.ts"
|
|
25
24
|
},
|
|
26
25
|
"repository": {
|
|
27
26
|
"type": "git",
|