@vdoninja/mcp 0.4.1 → 0.4.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/LICENSE +21 -661
- package/README.md +59 -272
- package/assets/browser-agent/audio-worklet.js +17 -0
- package/assets/browser-agent/client.js +124 -0
- package/assets/browser-agent/index.html +50 -0
- package/assets/cloudflare/worker-proxy.js +3 -0
- package/docs/.nojekyll +0 -0
- package/docs/404.html +28 -0
- package/docs/advanced-diagnostics.html +101 -0
- package/docs/assets/apple-touch-icon.png +0 -0
- package/docs/assets/favicon.svg +7 -0
- package/docs/assets/how-it-works.svg +62 -0
- package/docs/assets/icon-192.png +0 -0
- package/docs/assets/icon-512.png +0 -0
- package/docs/assets/icon-maskable-512.png +0 -0
- package/docs/assets/icons.svg +42 -0
- package/docs/assets/logo.svg +7 -0
- package/docs/assets/og-image.png +0 -0
- package/docs/assets/site.css +735 -0
- package/docs/assets/site.js +289 -0
- package/docs/browser-agent.html +122 -0
- package/docs/browser-worker.html +165 -0
- package/docs/client-config-examples.html +254 -0
- package/docs/direction.html +175 -0
- package/docs/favicon.ico +0 -0
- package/docs/guide.html +872 -0
- package/docs/http-relay.html +154 -0
- package/docs/index.html +834 -0
- package/docs/mcp-tool-contract.html +226 -0
- package/docs/quickstart-and-compat.html +222 -0
- package/docs/site.webmanifest +16 -0
- package/docs/sitemap.xml +63 -0
- package/docs/ssapp-integration.html +594 -0
- package/docs/vdo-ninja-p2p-data-notes.html +225 -0
- package/package.json +51 -9
- package/references/advanced-diagnostics.md +2 -0
- package/references/browser-agent.md +53 -0
- package/references/browser-worker.md +142 -0
- package/references/client-config-examples.md +2 -0
- package/references/direction.md +88 -0
- package/references/http-relay.md +107 -0
- package/references/mcp-tool-contract.md +11 -1
- package/references/quickstart-and-compat.md +4 -1
- package/references/ssapp-integration.md +371 -0
- package/references/vdo-ninja-p2p-data-notes.md +2 -0
- package/scripts/demo-file-workflow.js +3 -0
- package/scripts/demo-message-workflow.js +3 -0
- package/scripts/install-mcp.js +5 -2
- package/scripts/lib/bridge-session.js +143 -26
- package/scripts/lib/bridge-utils.js +3 -0
- package/scripts/lib/browser-agent.js +255 -0
- package/scripts/lib/browser-media.js +79 -0
- package/scripts/lib/browser-routes.js +119 -0
- package/scripts/lib/browser-rpc.js +214 -0
- package/scripts/lib/browser-setup.js +133 -0
- package/scripts/lib/browser-worker.js +216 -0
- package/scripts/lib/fake-network-sdk.js +3 -0
- package/scripts/lib/http-relay-transport.js +294 -0
- package/scripts/lib/load-vdo-sdk.js +3 -0
- package/scripts/lib/mcp-stdio-parser.js +3 -0
- package/scripts/lib/ssapp-worker.js +198 -0
- package/scripts/lib/tool-profiles.js +3 -0
- package/scripts/vdo-data-bridge.js +3 -0
- package/scripts/vdo-mcp-browser-agent.js +132 -0
- package/scripts/vdo-mcp-browser.js +218 -0
- package/scripts/vdo-mcp-relay.js +207 -0
- package/scripts/vdo-mcp-server.js +50 -7
- package/scripts/vdo-mcp-ssapp.js +208 -0
- package/scripts/vdo-mcp-streamable-http.js +23 -4
- package/server.json +22 -4
- package/LICENSE-SDK-EXCEPTION +0 -54
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en" data-icons="assets/icons.svg">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>Advanced diagnostics · VDO.Ninja MCP</title>
|
|
7
|
+
<meta name="description" content="Check network connectivity and diagnose connection reliability.">
|
|
8
|
+
<meta name="color-scheme" content="light dark">
|
|
9
|
+
<link rel="canonical" href="https://steveseguin.github.io/ninjamcp/advanced-diagnostics.html">
|
|
10
|
+
<link rel="icon" href="assets/favicon.svg" type="image/svg+xml">
|
|
11
|
+
<link rel="stylesheet" href="assets/site.css">
|
|
12
|
+
<script>document.documentElement.classList.add('js');</script>
|
|
13
|
+
</head>
|
|
14
|
+
<body class="reference-page">
|
|
15
|
+
<a class="skip-link" href="#main">Skip to content</a>
|
|
16
|
+
<header class="nav">
|
|
17
|
+
<div class="wrap">
|
|
18
|
+
<a aria-label="VDO.Ninja MCP home" class="brand" href="./">
|
|
19
|
+
<img alt="" height="28" src="assets/logo.svg" width="28"/>
|
|
20
|
+
<span>VDO.Ninja <small>MCP</small></span>
|
|
21
|
+
</a>
|
|
22
|
+
<nav aria-label="Primary" class="nav-links">
|
|
23
|
+
<a href="./#how">How it works</a>
|
|
24
|
+
<a href="./#privacy">Privacy</a>
|
|
25
|
+
<a href="./#tools">Tools</a>
|
|
26
|
+
<a href="./#faq">FAQ</a>
|
|
27
|
+
<a aria-current="page" href="guide.html">Docs</a>
|
|
28
|
+
</nav>
|
|
29
|
+
<div class="nav-cta">
|
|
30
|
+
<a class="btn btn-ghost" href="https://github.com/steveseguin/ninjamcp"><svg aria-hidden="true" class="icon-sm"><use href="assets/icons.svg#i-github"></use></svg>GitHub</a>
|
|
31
|
+
<a class="btn btn-dark" href="https://www.npmjs.com/package/@vdoninja/mcp"><svg aria-hidden="true" class="icon-sm"><use href="assets/icons.svg#i-package"></use></svg>npm</a>
|
|
32
|
+
</div>
|
|
33
|
+
<button aria-expanded="false" aria-label="Menu" class="nav-toggle" type="button"><svg aria-hidden="true" class="icon"><use href="assets/icons.svg#i-menu"></use></svg></button>
|
|
34
|
+
</div>
|
|
35
|
+
</header>
|
|
36
|
+
<div class="docs">
|
|
37
|
+
<aside class="sidebar" aria-label="Documentation" id="guide-contents"><h5>Documentation</h5><a href="guide.html">Getting started</a><h5>On this page</h5><a href="#overview">Overview</a><a href="#live-test-commands">Live Test Commands</a><a href="#preset-matrix-notes">Preset Matrix Notes</a><a href="#soak-matrix-knobs">Soak / Matrix Knobs</a><a href="#important">Important</a><h5>More guides</h5><a href="quickstart-and-compat.html">Quickstart</a><a href="client-config-examples.html">Client configuration</a><a href="http-relay.html">HTTP relay</a><a href="browser-worker.html">Remote Chrome</a><a href="browser-agent.html">Voice companion</a><a href="ssapp-integration.html">Remote SSApp</a><a href="mcp-tool-contract.html">Tool contract</a><a href="vdo-ninja-p2p-data-notes.html">WebRTC data notes</a><a href="direction.html">Project direction</a></aside>
|
|
38
|
+
<main class="docs-main" id="main">
|
|
39
|
+
<button class="btn docs-toggle" type="button" aria-controls="guide-contents" aria-expanded="false">Contents</button>
|
|
40
|
+
<header>
|
|
41
|
+
<p class="guide-breadcrumb"><a href="guide.html">Documentation</a> / Advanced diagnostics</p>
|
|
42
|
+
<h1 id="vdoninja-mcp-advanced-diagnostics">VDO.Ninja MCP Advanced Diagnostics</h1>
|
|
43
|
+
<p class="guide-format"><a href="https://github.com/steveseguin/ninjamcp/blob/main/references/advanced-diagnostics.md">Read in Markdown</a></p>
|
|
44
|
+
</header>
|
|
45
|
+
<section class="doc-section guide-intro" id="overview">
|
|
46
|
+
<p>This page is optional. Use it when you are debugging reliability or network edge cases.</p>
|
|
47
|
+
</section><section class="doc-section" id="live-test-commands"><h2>Live Test Commands</h2>
|
|
48
|
+
<pre><code class="lang-sh">LIVE_VDO_TEST=1 npm run test:mcp:live
|
|
49
|
+
LIVE_VDO_TEST=1 npm run test:mcp:soak
|
|
50
|
+
LIVE_VDO_TEST=1 npm run test:mcp:matrix
|
|
51
|
+
LIVE_VDO_TEST=1 npm run test:mcp:preset:matrix
|
|
52
|
+
LIVE_VDO_TEST=1 SOAK_MATRIX_SWEEP_RUNS=20 npm run test:mcp:matrix:sweep
|
|
53
|
+
</code></pre>
|
|
54
|
+
<p>Secure preset matrix:</p>
|
|
55
|
+
<pre><code class="lang-sh">LIVE_VDO_TEST=1 VDON_MCP_JOIN_TOKEN_SECRET=change_me npm run test:mcp:preset:matrix
|
|
56
|
+
</code></pre>
|
|
57
|
+
</section><section class="doc-section" id="preset-matrix-notes"><h2>Preset Matrix Notes</h2>
|
|
58
|
+
<ul>
|
|
59
|
+
<li><code>PRESET_MATRIX_ADAPTIVE_FALLBACK=1</code> enables candidate fallback.</li>
|
|
60
|
+
<li><code>PRESET_MATRIX_ALLOW_DIRECT_FALLBACK=1</code> allows direct fallback after TURN candidates.</li>
|
|
61
|
+
<li><code>PRESET_MATRIX_STRICT=1</code> fails process when any profile fails.</li>
|
|
62
|
+
<li><code>PRESET_CONNECT_ATTEMPTS</code>, <code>PRESET_CONNECT_TIMEOUT_MS</code>, and <code>PRESET_CHANNEL_READY_TIMEOUT_MS</code> control connect behavior.</li>
|
|
63
|
+
</ul>
|
|
64
|
+
<p>Artifacts are written to:</p>
|
|
65
|
+
<ul>
|
|
66
|
+
<li><code>tests/artifacts/latest-preset-matrix-report.json</code></li>
|
|
67
|
+
<li><code>tests/artifacts/latest-preset-matrix-summary.txt</code></li>
|
|
68
|
+
<li><code>tests/artifacts/history/preset-matrix-*.json</code></li>
|
|
69
|
+
<li><code>tests/artifacts/history/preset-matrix-*.txt</code></li>
|
|
70
|
+
</ul>
|
|
71
|
+
</section><section class="doc-section" id="soak-matrix-knobs"><h2>Soak / Matrix Knobs</h2>
|
|
72
|
+
<ul>
|
|
73
|
+
<li>Smoke: <code>LIVE_SMOKE_RETRIES</code>, <code>LIVE_SMOKE_TIMEOUT_MS</code></li>
|
|
74
|
+
<li>Soak: <code>SOAK_RETRIES</code>, <code>SOAK_TIMEOUT_MS</code></li>
|
|
75
|
+
<li>Matrix: <code>SOAK_MATRIX_PROFILE_RETRIES</code>, <code>SOAK_MATRIX_PROFILE_TIMEOUT_MS</code></li>
|
|
76
|
+
<li>Sweep: <code>SOAK_MATRIX_SWEEP_RUNS</code>, <code>SOAK_MATRIX_SWEEP_TIMEOUT_MS</code>, <code>SOAK_MATRIX_SWEEP_MIN_SUCCESS_RATE</code></li>
|
|
77
|
+
</ul>
|
|
78
|
+
</section><section class="doc-section" id="important"><h2>Important</h2>
|
|
79
|
+
<ul>
|
|
80
|
+
<li>WebRTC data channels are the transport.</li>
|
|
81
|
+
<li>TURN helps reachability but is not a universal bypass for all enterprise firewall policies.</li>
|
|
82
|
+
</ul></section>
|
|
83
|
+
<nav class="pager" aria-label="More documentation"><a href="guide.html#guides"><small>Keep reading</small><b>Browse all guides</b></a><a href="https://discord.vdo.ninja"><small>Need help?</small><b>Ask on Discord</b></a></nav>
|
|
84
|
+
</main>
|
|
85
|
+
</div>
|
|
86
|
+
<footer class="footer">
|
|
87
|
+
<div class="wrap">
|
|
88
|
+
<a class="brand" href="./"><img alt="" height="24" src="assets/logo.svg" width="24"/><span>VDO.Ninja <small>MCP</small></span></a>
|
|
89
|
+
<nav aria-label="Footer">
|
|
90
|
+
<a href="./">Home</a>
|
|
91
|
+
<a href="https://github.com/steveseguin/ninjamcp">GitHub</a>
|
|
92
|
+
<a href="https://www.npmjs.com/package/@vdoninja/mcp">npm</a>
|
|
93
|
+
<a href="https://discord.vdo.ninja">Discord</a>
|
|
94
|
+
<a href="https://vdo.ninja">VDO.Ninja</a>
|
|
95
|
+
</nav>
|
|
96
|
+
<span>MIT · © 2026 Steve Seguin</span>
|
|
97
|
+
</div>
|
|
98
|
+
</footer>
|
|
99
|
+
<script src="assets/site.js" defer></script>
|
|
100
|
+
</body>
|
|
101
|
+
</html>
|
|
Binary file
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="VDO.Ninja MCP">
|
|
2
|
+
<rect width="64" height="64" rx="16" fill="#14161b"/>
|
|
3
|
+
<path d="M8 27.5c7.5-4 15.5-6 24-6s16.5 2 24 6v9c-7.5 4-15.5 6-24 6s-16.5-2-24-6z" fill="#3d5afe"/>
|
|
4
|
+
<circle cx="21" cy="32" r="5" fill="#fff"/>
|
|
5
|
+
<circle cx="43" cy="32" r="5" fill="#fff"/>
|
|
6
|
+
<path d="M27.8 32h8.6" stroke="#fff" stroke-width="2.4" stroke-linecap="round" stroke-dasharray="0.1 4.1"/>
|
|
7
|
+
</svg>
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 350" width="900" height="350" role="img" aria-label="Two agents, each with a local VDO.Ninja MCP server, connected by a direct encrypted WebRTC data channel. A handshake server helps them connect; a TURN relay is a fallback.">
|
|
2
|
+
<title>How VDO.Ninja MCP works</title>
|
|
3
|
+
<style>
|
|
4
|
+
text { font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; fill: #4a4e58; font-size: 13px; }
|
|
5
|
+
.strong { fill: #111318; font-weight: 600; font-size: 14px; }
|
|
6
|
+
.mono { font-family: ui-monospace, "SF Mono", Consolas, monospace; font-size: 11.5px; fill: #80848e; }
|
|
7
|
+
.ok { fill: #16a34a; font-weight: 600; font-size: 12.5px; }
|
|
8
|
+
.box { fill: #ffffff; stroke: #d6d6d0; stroke-width: 1.2; }
|
|
9
|
+
.soft { fill: #f3f3f0; stroke: #e4e4df; stroke-width: 1.2; }
|
|
10
|
+
.machine { fill: none; stroke: #d6d6d0; stroke-width: 1.2; stroke-dasharray: 5 5; }
|
|
11
|
+
.ln { stroke: #80848e; stroke-width: 1.4; fill: none; }
|
|
12
|
+
.dash { stroke: #80848e; stroke-width: 1.3; stroke-dasharray: 4 5; fill: none; }
|
|
13
|
+
.p2p { stroke: #16a34a; stroke-width: 3; fill: none; }
|
|
14
|
+
</style>
|
|
15
|
+
<defs>
|
|
16
|
+
<marker id="a" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0 0 10 5 0 10z" fill="#80848e"/></marker>
|
|
17
|
+
<marker id="g" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse"><path d="M0 0 10 5 0 10z" fill="#16a34a"/></marker>
|
|
18
|
+
</defs>
|
|
19
|
+
<rect x="0.5" y="0.5" width="899" height="349" rx="20" fill="#fafaf8" stroke="#e4e4df"/>
|
|
20
|
+
<g transform="translate(0 10)">
|
|
21
|
+
<rect class="machine" x="16" y="98" width="346" height="134" rx="16"/>
|
|
22
|
+
<rect class="machine" x="538" y="98" width="346" height="134" rx="16"/>
|
|
23
|
+
<text x="32" y="122" class="mono">MACHINE A</text>
|
|
24
|
+
<text x="868" y="122" class="mono" text-anchor="end">MACHINE B</text>
|
|
25
|
+
|
|
26
|
+
<rect class="box" x="32" y="136" width="122" height="80" rx="12"/>
|
|
27
|
+
<text x="93" y="170" class="strong" text-anchor="middle">Agent A</text>
|
|
28
|
+
<text x="93" y="190" text-anchor="middle">MCP client</text>
|
|
29
|
+
<rect class="box" x="214" y="136" width="132" height="80" rx="12"/>
|
|
30
|
+
<text x="280" y="170" class="strong" text-anchor="middle">MCP server</text>
|
|
31
|
+
<text x="280" y="190" class="mono" text-anchor="middle">vdon-mcp-server</text>
|
|
32
|
+
<path class="ln" d="M154 176h58" marker-end="url(#a)" marker-start="url(#a)"/>
|
|
33
|
+
<text x="184" y="166" class="mono" text-anchor="middle">stdio</text>
|
|
34
|
+
|
|
35
|
+
<rect class="box" x="554" y="136" width="132" height="80" rx="12"/>
|
|
36
|
+
<text x="620" y="170" class="strong" text-anchor="middle">MCP server</text>
|
|
37
|
+
<text x="620" y="190" class="mono" text-anchor="middle">vdon-mcp-server</text>
|
|
38
|
+
<rect class="box" x="746" y="136" width="122" height="80" rx="12"/>
|
|
39
|
+
<text x="807" y="170" class="strong" text-anchor="middle">Agent B</text>
|
|
40
|
+
<text x="807" y="190" text-anchor="middle">MCP client</text>
|
|
41
|
+
<path class="ln" d="M688 176h56" marker-end="url(#a)" marker-start="url(#a)"/>
|
|
42
|
+
<text x="716" y="166" class="mono" text-anchor="middle">stdio</text>
|
|
43
|
+
|
|
44
|
+
<path class="p2p" d="M348 176h204" marker-end="url(#g)" marker-start="url(#g)"/>
|
|
45
|
+
<text x="450" y="164" class="ok" text-anchor="middle">WebRTC data channel</text>
|
|
46
|
+
<text x="450" y="196" class="mono" text-anchor="middle">DTLS-encrypted</text>
|
|
47
|
+
|
|
48
|
+
<rect class="soft" x="370" y="8" width="160" height="56" rx="12"/>
|
|
49
|
+
<text x="450" y="32" class="strong" text-anchor="middle">Handshake server</text>
|
|
50
|
+
<text x="450" y="50" class="mono" text-anchor="middle">wss.vdo.ninja</text>
|
|
51
|
+
<path class="dash" d="M300 136 382 66"/>
|
|
52
|
+
<path class="dash" d="M600 136 518 66"/>
|
|
53
|
+
<text x="300" y="86" class="mono" text-anchor="middle">find peers</text>
|
|
54
|
+
<text x="600" y="86" class="mono" text-anchor="middle">find peers</text>
|
|
55
|
+
|
|
56
|
+
<rect class="soft" x="350" y="266" width="200" height="56" rx="12"/>
|
|
57
|
+
<text x="450" y="290" class="strong" text-anchor="middle">TURN relay</text>
|
|
58
|
+
<text x="450" y="308" class="mono" text-anchor="middle">fallback · ciphertext only</text>
|
|
59
|
+
<path class="dash" d="M300 216 382 266"/>
|
|
60
|
+
<path class="dash" d="M600 216 518 266"/>
|
|
61
|
+
</g>
|
|
62
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<defs>
|
|
3
|
+
<style>symbol{overflow:visible}</style>
|
|
4
|
+
</defs>
|
|
5
|
+
<symbol id="i-message" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20.5 12a8.5 8.5 0 0 1-12.4 7.55L3.5 20.5l1-4.4A8.5 8.5 0 1 1 20.5 12Z"/><path d="M8.5 12h.01M12 12h.01M15.5 12h.01"/></symbol>
|
|
6
|
+
<symbol id="i-file" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8l-5-5Z"/><path d="M14 3v5h5M9 13h6M9 17h4"/></symbol>
|
|
7
|
+
<symbol id="i-layers" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m12 3 9 5-9 5-9-5 9-5Z"/><path d="m3 12.5 9 5 9-5"/><path d="m3 17 9 5 9-5"/></symbol>
|
|
8
|
+
<symbol id="i-shield" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3 5 6v5.5c0 4.3 2.9 8 7 9.5 4.1-1.5 7-5.2 7-9.5V6l-7-3Z"/><path d="m9 12 2.2 2.2L15.5 10"/></symbol>
|
|
9
|
+
<symbol id="i-lock" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><rect x="4.5" y="10.5" width="15" height="10.5" rx="2.2"/><path d="M8 10.5V7.5a4 4 0 0 1 8 0v3"/></symbol>
|
|
10
|
+
<symbol id="i-key" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><circle cx="8" cy="15.5" r="4.5"/><path d="m11.2 12.3 8.8-8.8M16.5 7l3 3M14.3 9.2l2 2"/></symbol>
|
|
11
|
+
<symbol id="i-users" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="8" r="3.5"/><path d="M2.5 20.5a6.5 6.5 0 0 1 13 0"/><path d="M16 4.6a3.5 3.5 0 0 1 0 6.8M18 14.2a6.5 6.5 0 0 1 3.5 6.3"/></symbol>
|
|
12
|
+
<symbol id="i-terminal" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="16" rx="2.5"/><path d="m7.5 9.5 3 2.5-3 2.5M13 15h3.5"/></symbol>
|
|
13
|
+
<symbol id="i-zap" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2.5 4.5 13.5H11l-1 8 8.5-11H12l1-8Z"/></symbol>
|
|
14
|
+
<symbol id="i-globe" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3c2.5 2.6 3.8 5.6 3.8 9s-1.3 6.4-3.8 9c-2.5-2.6-3.8-5.6-3.8-9S9.5 5.6 12 3Z"/></symbol>
|
|
15
|
+
<symbol id="i-server" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><rect x="3.5" y="4" width="17" height="7" rx="2"/><rect x="3.5" y="13" width="17" height="7" rx="2"/><path d="M7.5 7.5h.01M7.5 16.5h.01M11 7.5h5M11 16.5h5"/></symbol>
|
|
16
|
+
<symbol id="i-relay" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="2"/><path d="M8.5 8.5a5 5 0 0 0 0 7M15.5 8.5a5 5 0 0 1 0 7M5.6 5.6a9 9 0 0 0 0 12.8M18.4 5.6a9 9 0 0 1 0 12.8"/></symbol>
|
|
17
|
+
<symbol id="i-eye" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M2.5 12S6 5.5 12 5.5 21.5 12 21.5 12 18 18.5 12 18.5 2.5 12 2.5 12Z"/><circle cx="12" cy="12" r="2.8"/></symbol>
|
|
18
|
+
<symbol id="i-eye-off" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M10.4 5.6A9 9 0 0 1 12 5.5c6 0 9.5 6.5 9.5 6.5a16 16 0 0 1-2.5 3.3M6.6 6.9C3.9 8.7 2.5 12 2.5 12S6 18.5 12 18.5c1.7 0 3.2-.5 4.5-1.2M3.5 3.5l17 17M9.9 10a2.8 2.8 0 0 0 4 4"/></symbol>
|
|
19
|
+
<symbol id="i-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m5 12.5 4.5 4.5L19 7.5"/></symbol>
|
|
20
|
+
<symbol id="i-x" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6.5 6.5l11 11M17.5 6.5l-11 11"/></symbol>
|
|
21
|
+
<symbol id="i-minus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M6 12h12"/></symbol>
|
|
22
|
+
<symbol id="i-plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round"><path d="M12 5v14M5 12h14"/></symbol>
|
|
23
|
+
<symbol id="i-copy" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="11.5" height="11.5" rx="2.2"/><path d="M5.5 15H5a1.5 1.5 0 0 1-1.5-1.5V5A1.5 1.5 0 0 1 5 3.5h8.5A1.5 1.5 0 0 1 15 5v.5"/></symbol>
|
|
24
|
+
<symbol id="i-arrow-right" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></symbol>
|
|
25
|
+
<symbol id="i-arrow-up-right" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17 17 7M8 7h9v9"/></symbol>
|
|
26
|
+
<symbol id="i-package" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m12 2.8 8.5 4.7v9L12 21.2l-8.5-4.7v-9L12 2.8Z"/><path d="m3.7 7.6 8.3 4.6 8.3-4.6M12 12.2v9"/></symbol>
|
|
27
|
+
<symbol id="i-refresh" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 11.5A8 8 0 0 0 5.6 7M4 3.5V7.5h4M4 12.5A8 8 0 0 0 18.4 17M20 20.5v-4h-4"/></symbol>
|
|
28
|
+
<symbol id="i-clock" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3.2 2"/></symbol>
|
|
29
|
+
<symbol id="i-laptop" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><rect x="4.5" y="5" width="15" height="10.5" rx="1.6"/><path d="M2.5 19h19"/></symbol>
|
|
30
|
+
<symbol id="i-cloud" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 18.5a4.75 4.75 0 0 1-.55-9.47 6 6 0 0 1 11.3 1.02A4.25 4.25 0 0 1 17.25 18.5H7Z"/></symbol>
|
|
31
|
+
<symbol id="i-book" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4.5 5A1.5 1.5 0 0 1 6 3.5h13.5v14H6a1.5 1.5 0 0 0-1.5 1.5V5Z"/><path d="M4.5 19A1.5 1.5 0 0 0 6 20.5h13.5v-3"/></symbol>
|
|
32
|
+
<symbol id="i-sliders" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 7h10M18 7h2M4 17h4M12 17h8"/><circle cx="16" cy="7" r="2"/><circle cx="10" cy="17" r="2"/></symbol>
|
|
33
|
+
<symbol id="i-alert" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M10.3 4.2 2.8 17.5A2 2 0 0 0 4.5 20.5h15a2 2 0 0 0 1.7-3L13.7 4.2a2 2 0 0 0-3.4 0Z"/><path d="M12 9.5v4M12 17h.01"/></symbol>
|
|
34
|
+
<symbol id="i-info" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M12 11v5.5M12 7.8h.01"/></symbol>
|
|
35
|
+
<symbol id="i-hash" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4.5 9h15M4.5 15h15M10 3.5 8 20.5M16 3.5l-2 17"/></symbol>
|
|
36
|
+
<symbol id="i-plug" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M9 2.5v5M15 2.5v5M6 7.5h12v3.5a6 6 0 0 1-12 0V7.5ZM12 17v4.5"/></symbol>
|
|
37
|
+
<symbol id="i-git-branch" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><circle cx="6.5" cy="5.5" r="2"/><circle cx="6.5" cy="18.5" r="2"/><circle cx="17.5" cy="7.5" r="2"/><path d="M6.5 7.5v9M17.5 9.5c0 4-5 4-11 7"/></symbol>
|
|
38
|
+
<symbol id="i-moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 0 1 9.5 4a8 8 0 1 0 10.5 10.5Z"/></symbol>
|
|
39
|
+
<symbol id="i-menu" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round"><path d="M4 7h16M4 12h16M4 17h16"/></symbol>
|
|
40
|
+
<symbol id="i-scale" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3.5v17M7 20.5h10M4.5 7.5h15M4.5 7.5 2 13.5a3 3 0 0 0 5 0L4.5 7.5ZM19.5 7.5 17 13.5a3 3 0 0 0 5 0l-2.5-6Z"/></symbol>
|
|
41
|
+
<symbol id="i-github" viewBox="0 0 24 24" fill="currentColor"><path d="M12 .8C5.8.8.8 5.8.8 12c0 4.95 3.2 9.15 7.66 10.63.56.1.76-.24.76-.54v-1.9c-3.12.68-3.78-1.5-3.78-1.5-.5-1.3-1.24-1.64-1.24-1.64-1.02-.7.08-.68.08-.68 1.12.08 1.71 1.15 1.71 1.15 1 1.72 2.62 1.22 3.26.93.1-.73.39-1.22.71-1.5-2.49-.28-5.11-1.25-5.11-5.55 0-1.22.44-2.23 1.15-3.01-.11-.29-.5-1.43.11-2.98 0 0 .94-.3 3.08 1.15a10.7 10.7 0 0 1 5.6 0c2.14-1.45 3.08-1.15 3.08-1.15.61 1.55.23 2.69.11 2.98.72.78 1.15 1.79 1.15 3.01 0 4.31-2.62 5.26-5.12 5.54.4.35.76 1.03.76 2.08v3.08c0 .3.2.65.77.54A11.2 11.2 0 0 0 23.2 12C23.2 5.8 18.2.8 12 .8Z"/></symbol>
|
|
42
|
+
</svg>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="VDO.Ninja MCP">
|
|
2
|
+
<rect width="64" height="64" rx="16" fill="#14161b"/>
|
|
3
|
+
<path d="M8 27.5c7.5-4 15.5-6 24-6s16.5 2 24 6v9c-7.5 4-15.5 6-24 6s-16.5-2-24-6z" fill="#3d5afe"/>
|
|
4
|
+
<circle cx="21" cy="32" r="5" fill="#fff"/>
|
|
5
|
+
<circle cx="43" cy="32" r="5" fill="#fff"/>
|
|
6
|
+
<path d="M27.8 32h8.6" stroke="#fff" stroke-width="2.4" stroke-linecap="round" stroke-dasharray="0.1 4.1"/>
|
|
7
|
+
</svg>
|
|
Binary file
|