ouicu
ouicu for JavaScript: SDK and MCP server
ouicu gives the site running on your computer a public
https link, like https://studiolund.ouicu.app, so a client or teammate can
open it on any phone or computer. This repository holds ouicu's two npm
packages:
Package | What it does |
An MCP server: Claude Code, Cursor, Codex and other coding agents share your dev server or upload a build and hand you the link. | |
ouicu from Node: share a port, upload a built site, list shares and sites, see who opened them. |
MCP server
npx -y @ouicu/mcp setup claude-codeThe same works for cursor, codex, vscode, windsurf and
claude-desktop. Then ask your agent for a link in your own words, for
example "build the gallery page and send me a ouicu link". The agent shares
the dev server, or uploads the build, and hands back the address.
It is listed in the official MCP Registry as com.ouicu/mcp. Docs:
ouicu.com/docs/mcp. More in
packages/mcp.
Related MCP server: OpenCode MCP Gateway
SDK
npm install @ouicu/sdkimport { Ouicu } from "@ouicu/sdk";
const ouicu = new Ouicu({ apiKey: process.env.OUICU_API_KEY });
const share = await ouicu.share({ port: 3000, name: "studiolund" });
console.log(share.url); // https://studiolund.ouicu.appNode 20 or later, no other dependencies. Docs: ouicu.com/docs/sdk. More in packages/sdk.
What ouicu is for
Showing work in progress to people who aren't developers: a reserved name keeps the same link for each client, a password or a list of invited people keeps it private, you get an email when someone opens it, and the last version stays up while your laptop sleeps. It passes web pages (HTTP and WebSockets), not TCP, video or downloads. Plans and limits: ouicu.com/docs/plans.
The ouicu command line tool itself is installed from
ouicu.com; its releases are at
kroqdotdev/ouicu-cli.
About this repository
These packages are developed in ouicu's main repository and copied here on every change, so this history is a series of snapshots. Issues are welcome here; for a change, open an issue or a pull request and it will be made upstream. Questions: hello@ouicu.com.
pnpm install
pnpm build
pnpm testMIT licensed. See LICENSE.
Available Tools
1 toolouicu_loginLog in to ouicuA
Log in to ouicu, once per computer, before the other ouicu tools appear. It opens ouicu's approval page in the person's browser when it can and waits for them to approve. When it answers with a code and an address instead, show both to the person, ask them to open the address while logged in to ouicu.com and approve the code, then call this again to finish. The key is saved where the ouicu CLI keeps it, so ouicu in a terminal is logged in too.
| Name | Required | Description | Default |
|---|---|---|---|
| wait | No | Seconds to wait for the approval before answering (60). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The only annotation is openWorldHint=true, so the description carries most of the burden and does well: it discloses that a browser page is opened when possible, that the call blocks waiting for human approval, and that the credential is persisted where the ouicu CLI keeps it (a side effect extending beyond this server). It does not describe timeout/failure behavior or what happens if the person never approves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the purpose and scope before the procedural detail, and every sentence carries actionable information. Slightly long, but the branching instructions justify the length rather than padding it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly takes on the job of describing the two possible responses (immediate approval vs. a code plus address) and the follow-up action for each. Remaining gaps are error/timeout handling and what the person sees if approval is denied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'wait' parameter is fully documented in the schema (seconds to wait, default 60, max 600). The description mentions waiting but never ties it to the parameter or explains the trade-off of a longer wait, so it adds nothing beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Log in to ouicu') and immediately scopes it ('once per computer, before the other ouicu tools appear'). With no siblings, the scope statement plus the description of both possible outcomes leaves no ambiguity about what the tool accomplishes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear when-to-use context: call once per computer and before the other ouicu tools appear. It also explains the conditional branch (browser approval vs. code+address fallback) and explicitly says to call it again to finish in the fallback case. No exclusions or alternatives are named, but none exist given there are no sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.2- First observed
ouicu_login
TDQS
Scored across 1 tool
There is only one tool, so there is nothing to confuse it with. Its purpose (authenticate to ouicu before other tools become available) is unmistakable.
The single tool follows the server-prefixed snake_case convention (ouicu_login), which is readable and predictable. No competing conventions exist to create inconsistency.
A server exposing exactly one tool is far too thin for the apparent scope, even allowing for the fact that it is a login gate for other tools that are not described here. The surface gives an agent almost nothing to work with.
Only an authentication step is exposed; no domain operations (read/write/etc.) are available, leaving a severe gap. The description hints other ouicu tools exist after login, but they are not part of the evaluated surface.
Maintenance
Related MCP Connectors
Deploy files, sites, and Dockerfile apps to live URLs + private drives for agent memory.
Deploy AI-generated HTML/CSS/JS to instant public HTTPS URLs from any MCP-compatible agent.
Publish HTML/code from your agent to openanthropic.com and get a shareable link.
- RunCabinOAuthcom.runcabin
Put websites online from chat - instant free HTTPS, real domains, zero DNS or API-key setup.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceGive AI agents access to your localhost dev server. Zero-config tunnel that works with Claude Code, OpenClaw, and any MCP-compatible agent. No interstitial pages, no account required.-
- FlicenseNot gradedqualityDmaintenanceExposes local OpenCode instances as remote MCP servers for Claude and ChatGPT, enabling terminal access, session management, and interactive human-in-the-loop workflows. It simplifies deployment for local machines using Cloudflare Tunnels to provide secure public connectivity and OAuth support.-
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to access files and terminal of a local computer via a public HTTPS endpoint, secured with GitHub OAuth.-
- AlicenseAqualityDmaintenanceConnects AI tools to local dev servers, enabling them to view pages, call APIs, read/edit files, and run commands with safety guardrails.13MIT