vizo-mcp 0.1.0 → 0.2.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 (47) hide show
  1. package/README.md +9 -0
  2. package/dist/fonts/CascadiaCode-Regular.ttf +0 -0
  3. package/dist/fonts/CascadiaCode-Regular.woff2 +0 -0
  4. package/dist/fonts/ComicShanns-Regular-279a7b317d12eb88de06167bd672b4b4.ttf +0 -0
  5. package/dist/fonts/ComicShanns-Regular-279a7b317d12eb88de06167bd672b4b4.woff2 +0 -0
  6. package/dist/fonts/ComicShanns-Regular-6e066e8de2ac57ea9283adb9c24d7f0c.ttf +0 -0
  7. package/dist/fonts/ComicShanns-Regular-6e066e8de2ac57ea9283adb9c24d7f0c.woff2 +0 -0
  8. package/dist/fonts/ComicShanns-Regular-dc6a8806fa96795d7b3be5026f989a17.ttf +0 -0
  9. package/dist/fonts/ComicShanns-Regular-dc6a8806fa96795d7b3be5026f989a17.woff2 +0 -0
  10. package/dist/fonts/ComicShanns-Regular-fcb0fc02dcbee4c9846b3e2508668039.ttf +0 -0
  11. package/dist/fonts/ComicShanns-Regular-fcb0fc02dcbee4c9846b3e2508668039.woff2 +0 -0
  12. package/dist/fonts/Excalifont-Regular-349fac6ca4700ffec595a7150a0d1e1d.ttf +0 -0
  13. package/dist/fonts/Excalifont-Regular-349fac6ca4700ffec595a7150a0d1e1d.woff2 +0 -0
  14. package/dist/fonts/Excalifont-Regular-3f2c5db56cc93c5a6873b1361d730c16.ttf +0 -0
  15. package/dist/fonts/Excalifont-Regular-3f2c5db56cc93c5a6873b1361d730c16.woff2 +0 -0
  16. package/dist/fonts/Excalifont-Regular-41b173a47b57366892116a575a43e2b6.ttf +0 -0
  17. package/dist/fonts/Excalifont-Regular-41b173a47b57366892116a575a43e2b6.woff2 +0 -0
  18. package/dist/fonts/Excalifont-Regular-623ccf21b21ef6b3a0d87738f77eb071.ttf +0 -0
  19. package/dist/fonts/Excalifont-Regular-623ccf21b21ef6b3a0d87738f77eb071.woff2 +0 -0
  20. package/dist/fonts/Excalifont-Regular-a88b72a24fb54c9f94e3b5fdaa7481c9.ttf +0 -0
  21. package/dist/fonts/Excalifont-Regular-a88b72a24fb54c9f94e3b5fdaa7481c9.woff2 +0 -0
  22. package/dist/fonts/Excalifont-Regular-b9dcf9d2e50a1eaf42fc664b50a3fd0d.ttf +0 -0
  23. package/dist/fonts/Excalifont-Regular-b9dcf9d2e50a1eaf42fc664b50a3fd0d.woff2 +0 -0
  24. package/dist/fonts/Excalifont-Regular-be310b9bcd4f1a43f571c46df7809174.ttf +0 -0
  25. package/dist/fonts/Excalifont-Regular-be310b9bcd4f1a43f571c46df7809174.woff2 +0 -0
  26. package/dist/fonts/LiberationSans-Regular.ttf +0 -0
  27. package/dist/fonts/LiberationSans-Regular.woff2 +0 -0
  28. package/dist/fonts/Lilita-Regular-i7dPIFZ9Zz-WBtRtedDbYE98RXi4EwSsbg.ttf +0 -0
  29. package/dist/fonts/Lilita-Regular-i7dPIFZ9Zz-WBtRtedDbYE98RXi4EwSsbg.woff2 +0 -0
  30. package/dist/fonts/Lilita-Regular-i7dPIFZ9Zz-WBtRtedDbYEF8RXi4EwQ.ttf +0 -0
  31. package/dist/fonts/Lilita-Regular-i7dPIFZ9Zz-WBtRtedDbYEF8RXi4EwQ.woff2 +0 -0
  32. package/dist/fonts/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTA3j6zbXWjgevT5.ttf +0 -0
  33. package/dist/fonts/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTA3j6zbXWjgevT5.woff2 +0 -0
  34. package/dist/fonts/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTQ3j6zbXWjgeg.ttf +0 -0
  35. package/dist/fonts/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTQ3j6zbXWjgeg.woff2 +0 -0
  36. package/dist/fonts/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTk3j6zbXWjgevT5.ttf +0 -0
  37. package/dist/fonts/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTk3j6zbXWjgevT5.woff2 +0 -0
  38. package/dist/fonts/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTo3j6zbXWjgevT5.ttf +0 -0
  39. package/dist/fonts/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTo3j6zbXWjgevT5.woff2 +0 -0
  40. package/dist/fonts/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTs3j6zbXWjgevT5.ttf +0 -0
  41. package/dist/fonts/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTs3j6zbXWjgevT5.woff2 +0 -0
  42. package/dist/fonts/Virgil-Regular.ttf +0 -0
  43. package/dist/fonts/Virgil-Regular.woff2 +0 -0
  44. package/dist/fonts/fonts.json +146 -0
  45. package/dist/index.js +2778 -79
  46. package/fonts/README.md +15 -0
  47. package/package.json +13 -9
package/README.md CHANGED
@@ -9,3 +9,12 @@ claude mcp add vizo -- npx -y vizo-mcp --url https://vizo.twinkle.hk --token vz_
9
9
  Create a token at `<url>/settings`. `VIZO_URL` and `VIZO_TOKEN` work instead of the flags.
10
10
 
11
11
  Diagrams (`draw_diagram`, `update_diagram`) are laid out on your machine and sent to the server finished. The proxy's layout version must match the server's: if they differ, the server refuses the call and asks you to update, e.g. `npx -y vizo-mcp@latest`.
12
+
13
+ ## Exporting images
14
+
15
+ The proxy adds an `export_image` tool: it saves a board, or chosen diagrams or elements, as PNG or SVG on your machine. It also returns a small preview, so the agent can check what it drew. Rendering happens locally: the server only hands over the board's elements and images (`get_board_scene`, which only the proxy can see). It uses the same hand-drawn strokes and fonts as the editor.
16
+
17
+ - SVG files embed the fonts they use.
18
+ - PNGs are drawn with [resvg](https://github.com/RazrFalcon/resvg). Characters the bundled fonts lack (e.g. Chinese, Japanese) use a system font. Emoji are left out of PNGs, because resvg can't draw color emoji fonts; SVGs keep them.
19
+ - Fonts are Excalidraw's, under their own licenses: see `fonts/README.md`.
20
+
Binary file
Binary file
@@ -0,0 +1,146 @@
1
+ [
2
+ {
3
+ "family": "Excalifont",
4
+ "id": 5,
5
+ "file": "Excalifont-Regular-a88b72a24fb54c9f94e3b5fdaa7481c9.woff2",
6
+ "unicodeRange": "U+20-7e,U+a0-a3,U+a5-a6,U+a8-ab,U+ad-b1,U+b4,U+b6-b8,U+ba-ff,U+131,U+152-153,U+2bc,U+2c6,U+2da,U+2dc,U+304,U+308,U+2013-2014,U+2018-201a,U+201c-201e,U+2020,U+2022,U+2024-2026,U+2030,U+2039-203a,U+20ac,U+2122,U+2212",
7
+ "ttfFamily": "Excalifont"
8
+ },
9
+ {
10
+ "family": "Excalifont",
11
+ "id": 5,
12
+ "file": "Excalifont-Regular-be310b9bcd4f1a43f571c46df7809174.woff2",
13
+ "unicodeRange": "U+100-130,U+132-137,U+139-149,U+14c-151,U+154-17e,U+192,U+1fc-1ff,U+218-21b,U+237,U+1e80-1e85,U+1ef2-1ef3,U+2113",
14
+ "ttfFamily": "Excalifont 2"
15
+ },
16
+ {
17
+ "family": "Excalifont",
18
+ "id": 5,
19
+ "file": "Excalifont-Regular-b9dcf9d2e50a1eaf42fc664b50a3fd0d.woff2",
20
+ "unicodeRange": "U+400-45f,U+490-491,U+2116",
21
+ "ttfFamily": "Excalifont 3"
22
+ },
23
+ {
24
+ "family": "Excalifont",
25
+ "id": 5,
26
+ "file": "Excalifont-Regular-41b173a47b57366892116a575a43e2b6.woff2",
27
+ "unicodeRange": "U+37e,U+384-38a,U+38c,U+38e-393,U+395-3a1,U+3a3-3a8,U+3aa-3cf,U+3d7",
28
+ "ttfFamily": "Excalifont 4"
29
+ },
30
+ {
31
+ "family": "Excalifont",
32
+ "id": 5,
33
+ "file": "Excalifont-Regular-3f2c5db56cc93c5a6873b1361d730c16.woff2",
34
+ "unicodeRange": "U+2c7,U+2d8-2d9,U+2db,U+2dd,U+302,U+306-307,U+30a-30c,U+326-328,U+212e,U+2211,U+fb01-fb02",
35
+ "ttfFamily": "Excalifont 5"
36
+ },
37
+ {
38
+ "family": "Excalifont",
39
+ "id": 5,
40
+ "file": "Excalifont-Regular-349fac6ca4700ffec595a7150a0d1e1d.woff2",
41
+ "unicodeRange": "U+462-463,U+472-475,U+4d8-4d9,U+4e2-4e3,U+4e6-4e9,U+4ee-4ef",
42
+ "ttfFamily": "Excalifont 6"
43
+ },
44
+ {
45
+ "family": "Excalifont",
46
+ "id": 5,
47
+ "file": "Excalifont-Regular-623ccf21b21ef6b3a0d87738f77eb071.woff2",
48
+ "unicodeRange": "U+300-301,U+303",
49
+ "ttfFamily": "Excalifont 7"
50
+ },
51
+ {
52
+ "family": "Nunito",
53
+ "id": 6,
54
+ "file": "Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTk3j6zbXWjgevT5.woff2",
55
+ "unicodeRange": "U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F",
56
+ "ttfFamily": "Nunito 2"
57
+ },
58
+ {
59
+ "family": "Nunito",
60
+ "id": 6,
61
+ "file": "Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTA3j6zbXWjgevT5.woff2",
62
+ "unicodeRange": "U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116",
63
+ "ttfFamily": "Nunito 3"
64
+ },
65
+ {
66
+ "family": "Nunito",
67
+ "id": 6,
68
+ "file": "Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTs3j6zbXWjgevT5.woff2",
69
+ "unicodeRange": "U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB",
70
+ "ttfFamily": "Nunito 4"
71
+ },
72
+ {
73
+ "family": "Nunito",
74
+ "id": 6,
75
+ "file": "Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTo3j6zbXWjgevT5.woff2",
76
+ "unicodeRange": "U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF",
77
+ "ttfFamily": "Nunito 5"
78
+ },
79
+ {
80
+ "family": "Nunito",
81
+ "id": 6,
82
+ "file": "Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTQ3j6zbXWjgeg.woff2",
83
+ "unicodeRange": "U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD",
84
+ "ttfFamily": "Nunito"
85
+ },
86
+ {
87
+ "family": "Lilita One",
88
+ "id": 7,
89
+ "file": "Lilita-Regular-i7dPIFZ9Zz-WBtRtedDbYE98RXi4EwSsbg.woff2",
90
+ "unicodeRange": "U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF",
91
+ "ttfFamily": "Lilita One 2"
92
+ },
93
+ {
94
+ "family": "Lilita One",
95
+ "id": 7,
96
+ "file": "Lilita-Regular-i7dPIFZ9Zz-WBtRtedDbYEF8RXi4EwQ.woff2",
97
+ "unicodeRange": "U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD",
98
+ "ttfFamily": "Lilita One"
99
+ },
100
+ {
101
+ "family": "Comic Shanns",
102
+ "id": 8,
103
+ "file": "ComicShanns-Regular-279a7b317d12eb88de06167bd672b4b4.woff2",
104
+ "unicodeRange": "U+20-7e,U+a1-a6,U+a8,U+ab-ac,U+af-b1,U+b4,U+b8,U+bb-bc,U+bf-cf,U+d1-d7,U+d9-de,U+e0-ef,U+f1-f7,U+f9-ff,U+131,U+152-153,U+2c6,U+2da,U+2dc,U+2013-2014,U+2018-201a,U+201c-201d,U+2020-2022,U+2026,U+2039-203a,U+2044,U+20ac,U+2191,U+2193,U+2212",
105
+ "ttfFamily": "Comic Shanns"
106
+ },
107
+ {
108
+ "family": "Comic Shanns",
109
+ "id": 8,
110
+ "file": "ComicShanns-Regular-fcb0fc02dcbee4c9846b3e2508668039.woff2",
111
+ "unicodeRange": "U+100-10f,U+112-125,U+128-130,U+134-137,U+139-13c,U+141-148,U+14c-151,U+154-161,U+164-165,U+168-17f,U+1bf,U+1f7,U+218-21b,U+237,U+1e80-1e85,U+1ef2-1ef3,U+a75b",
112
+ "ttfFamily": "Comic Shanns 2"
113
+ },
114
+ {
115
+ "family": "Comic Shanns",
116
+ "id": 8,
117
+ "file": "ComicShanns-Regular-dc6a8806fa96795d7b3be5026f989a17.woff2",
118
+ "unicodeRange": "U+2c7,U+2d8-2d9,U+2db,U+2dd,U+315,U+2190,U+2192,U+2200,U+2203-2204,U+2264-2265,U+f6c3",
119
+ "ttfFamily": "Comic Shanns 3"
120
+ },
121
+ {
122
+ "family": "Comic Shanns",
123
+ "id": 8,
124
+ "file": "ComicShanns-Regular-6e066e8de2ac57ea9283adb9c24d7f0c.woff2",
125
+ "unicodeRange": "U+3bb",
126
+ "ttfFamily": "Comic Shanns 4"
127
+ },
128
+ {
129
+ "family": "Virgil",
130
+ "id": 1,
131
+ "file": "Virgil-Regular.woff2",
132
+ "ttfFamily": "Virgil"
133
+ },
134
+ {
135
+ "family": "Cascadia",
136
+ "id": 3,
137
+ "file": "CascadiaCode-Regular.woff2",
138
+ "ttfFamily": "Cascadia"
139
+ },
140
+ {
141
+ "family": "Liberation Sans",
142
+ "id": 9,
143
+ "file": "LiberationSans-Regular.woff2",
144
+ "ttfFamily": "Liberation Sans"
145
+ }
146
+ ]