sandbox@0.6.0
CAUTION· startup onlyPublisher claims: "See every MCP message: chat with any LLM and MCP server, compare models, call tools, and see what your AI editor sends to your MCP servers. 100% local. One command: npx @mokalabs/sandbox" Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Startup only; authenticated tool behavior not tested.- Tested
- server startup over stdio (initialize sent) · every file read, file written and host contacted by what ran
- Not tested
- the tool list (the server exited before answering) · what the tools do when called with real credentials
What this means for the label: Caution here covers what ran. The server's tools were not exercised with a real credential, so nothing about their behavior is asserted; the credential summary below says what to do with that.
Before you give it your token
- It will ask for
MOKA_TOKENVERCEL_OIDC_TOKENor--no-authConfiguration, not credentials: COUNTER, MOKA_CONFIG, MOKA_HOME, MOKA_HOST, MOKA_NO_OPEN, MOKA_PUBLIC_URL, MOKA_STUDIO_ASYNC_HOOKS, MOKA_SYSTEM_CA, NODE_USE_ENV_PROXY, NODE_USE_SYSTEM_CA, NOTES_DIR, OLLAMA_HOST- Where it talks to
- mokalabs.dev (its own)Also a2ui.org, vercel.com, hono.dev, cloudflare.com, unpkg.com, openxmlformats.org, foo.bar — not the publisher's domain; check what for before connecting.
- What the honeypot saw
- no credential files read · no network
- What we could not test
- the tool list (the server exited before answering) · what the tools do when called with real credentials
Connect it with a scoped credential, under the guard, and read the third-party hosts first. The code names a2ui.org, vercel.com, hono.dev, cloudflare.com, unpkg.com, openxmlformats.org, foo.bar as well as its own vendor. The guard injects MOKA_TOKEN, VERCEL_OIDC_TOKEN only into requests to mokalabs.dev (and its subdomains) and refuses the rest.
Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; startup only; authenticated tool behavior not tested) on 2026-11-15 and scored it 62/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Image alt text carrying instructions; Hex-encoded string detected; Hidden zero-width characters detected. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 20 s · 2 scenarios · 0 deviationsStatic findings
return c.json(await engine.previewUi(input, workspaceId));Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.…acketed"},{"include":"#comments"},{"captures":{"1":{"name":"keyword.other.create.sql"},"2":{"name":"keyword.other.sql"},"5":{"name":"entity.name.function.sql"}},"match":"(?i:^\\\\s*(create(?:\\\\s+or\\\\s+replace)?)\\\\s+(aggregate|convers…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.Tool tests run on two local models, three times each, with a failed run's wrong argumentFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.See every MCP message: chat with any LLM and MCP server, compare models, call tools, and see what your AI editor sends to your MCP servers. 100% local. One command: npx @mokalabs/sandboxFix: Pin versions and sources; vendor anything fetched at install time.…hp"},"5":{"name":"invalid.illegal.trailing-whitespace.php"}},"contentName":"text.xml","end":"^\\\\s*(\\\\3)(?![0-9A-Z_a-z\\\\x7F-\\\\x{10FFFF}])","endCaptures":{"0":{"name":"punctuation.section.embedded.end.php"},"1":{"name":"keyword.opera…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.… t}var Gt=/["&'<>`]/g,Kt=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,qt=/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,Jt=/[|\\{}()[\]^$+*?.]/g,Yt=new WeakMap;function Xt(e,t){return e=e.r…Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.…ude":"#math"},{"include":"#svg"},{"begin":"(<)([A-Za-z][.0-9A-Z_a-z·À-ÖØ-öø-ͽͿ-‿⁀⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-\\\\x{EFFFF}]*-[-.0-9A-Z_a-z·À-ÖØ-öø-ͽͿ-‿⁀⁰-Ⰰ-、-豈-﷏ﷰ-…Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent."description": "Models, MCP servers, skills and workspaces for Moka (npx @mokalabs/sandbox)."Fix: Pin versions and sources; vendor anything fetched at install time.…tal=console.error?console.error.bind(console,c(`FATAL`),`color: orange`):console.log.bind(console,`\x1B[35m`,c(`FATAL`))),t<=a.error&&(o.error=console.error?console.error.bind(console,c(`ERROR`),`color: orange`):console.log.bind(console,`\…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.…terns":[{"include":"#tag-stuff"},{"begin":"(?<=>)","end":"(?=</)","name":"source.json","patterns":[{"include":"source.json"}]}]},{"begin":"([-0-:A-Za-z]+)\\\\b(?=[^>]*\\\\blang\\\\s*=\\\\s*([\\"']?)jsonc\\\\b\\\\2)","beginCaptures":{"1":{"…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.…and see what your AI editor sends to your MCP servers. 100% local. One command: npx @mokalabs/sandbox", "license": "MIT", "type": "module", "bin": { "sandbox": "./dist/cli.j…Fix: Pin versions and sources; vendor anything fetched at install time.…¤`,yen:`¥`,brvbar:`¦`,sect:`§`,uml:`¨`,copy:`©`,ordf:`ª`,laquo:`«`,not:`¬`,shy:``,reg:`®`,macr:`¯`,deg:`°`,plusmn:`±`,sup2:`²`,sup3:`³`,acute:`´`,micro:`µ`,para…Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.…(e):n.rhs.push(e)}),n}function ui(e,t){var n=Pn();try{return t()}finally{console.log(e+` time: `+(Pn()-n)+`ms`)}}function di(e,t){return t()}function fi(e){function t(n){var r=e.children(n),i=e.node(n);if(r.length&&E(r,t),Object.prototype.…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.…n(4376),f=n(9297),p=n(655),m=n(6198),h=n(4659),g=n(9039),_=n(8235),v=n(4495),y=a.JSON,b=a.Number,x=a.SyntaxError,S=y&&y.parse,C=o(`Object`,`keys`),w=Object.getOwnPropertyDescriptor,T=s(``.charAt),E=s(``.slice),D=s(/./.exec),O=s([].push),k=…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.npx @mokalabs/sandbox [config.json] [options]Fix: Pin versions and sources; vendor anything fetched at install time.…ation|auto|auto_cleanup|auto_close|auto_create_statistics|auto_drop|auto_shrink|auto_update_statistics|auto_update_statistics_async|automated_backup_preference|automatic|autopilot|availability|availability_mode|backup|backup_priority|base6…Fix: Pin versions and sources; vendor anything fetched at install time.…00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc\u…Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.…t`],[G([],[])]);x.style.height=A(-u),b=[G([`vlist-r`],[y,G([`vlist-s`],[new Le(``)])]),G([`vlist-r`],[x])]}else b=[G([`vlist-r`],[y])];var S=G([`vlist-t`],b);re…Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.…/this.PDF};async function xe(e,t=`text`){if(Oe(e,document.baseURI)){let n=await fetch(e);if(!n.ok)throw Error(n.statusText);switch(t){case`blob`:return n.blob();case`bytes`:return n.bytes();case`json`:return n.json()}return n.text()}return…Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.… ?)[ \r ]*`,ta=`[̀-ͯ]`,na=RegExp(ta+`+$`),ra=`(`+Xi+`+)|`+(ea+`|`)+`([!-\\[\\]-‧-豈-]`+(ta+`*`)+`|[\ud800-\udbff][\udc00-\udfff]`+(ta+`*`)+`|\\\\verb\\*([^]).*…Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.…lation"}]},{"include":"#style-function"},{"match":"--|-?(?:[A-Z_a-z·À-ÖØ-öø-ͽͿ-‿⁀⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-\\\\x{EFFFF}]|\\\\\\\\(?:\\\\N|\\\\H|\\\\h{1,6}[R\\\\s]))(?…Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.* `.env` can get bindings (environment variables, secrets, KV namespaces, D1 database, R2 bucket etc.) in Cloudflare Workers.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.…d`,e=>ca(e,!0,!0,!0)),$(`\\message`,e=>{var t=e.consumeArgs(1)[0];return console.log(t.reverse().map(e=>e.text).join(``)),``}),$(`\\errmessage`,e=>{var t=e.consumeArgs(1)[0];return console.error(t.reverse().map(e=>e.text).join(``)),``}),$(…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.Cost to the agent
Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.
Known vulnerabilities
Not checked against OSV yet; the weekly check has not reached this version.
What would make this Verified
18 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Unclaimed publisher≈ +8 on the totalClaim mokalabs: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- Hidden instructions≈ +6 on the totalRemove HTML comments, zero-width characters and white-on-white text that carry instructions. Everything the agent is meant to read should be visible to the person reading the file.
- Obfuscated code≈ +5 on the totalRemove base64-assembled strings, eval of decoded text and minified blobs. Reviewers and scanners both treat unreadable code as hostile.
- Hex-encoded string detected≈ +4 on the totalPut hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.
- Hidden zero-width characters detected≈ +4 on the totalKeep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
- Auto-update or dynamic fetch configuration≈ +4 on the totalPin versions and sources; vendor anything fetched at install time.