{"name":"io.github.openpouch/openpouch","slug":"openpouch","title":null,"description":"Agent-native hosting: deploy any folder to a live URL in one command. No approve tool.","url":"https://mcp.market/server/openpouch","rating":null,"grade":"B","score":78,"certified":false,"status":"active","category":"devtools","tags":["devtools","ai"],"presence":{"score":18,"stars":0,"forks":0,"downloads_week":32,"last_push_at":"2026-07-18T10:36:14.000Z","license":"Apache-2.0"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/openpouch/openpouch","website":null,"version":"0.4.0","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@openpouch/mcp","version":"0.4.0","transport":{"type":"stdio"}}],"tools":[{"name":"openpouch_data_ls","description":"List the files in a named app's persistent /data volume \\u2014 names, sizes and timestamps only, never contents. Owner-only (account key). Use it to verify a data push/migration landed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"openpouch_data_pull","description":"Download a named app's persistent /data volume as a gzipped tar file (L13 \\u2014 the BACKUP primitive: your human's data is never locked in). Owner-only (account key). Writes the archive to a local path and returns its location + size.","write_action":false,"price_micros":0,"input_schema":null},{"name":"openpouch_data_push","description":"Replace a named app's persistent /data volume with a local directory's contents (L13 \\u2014 the migration/restore primitive). The server stops the app for the write and restarts it health-gated, so files like a SQLite DB are never swapped under a running process. Owner-only (account key); file CONTENTS never appear in logs or results (counts/sizes only). Typical migration: export data from the old","write_action":false,"price_micros":0,"input_schema":null},{"name":"openpouch_delete","description":"Delete one of YOUR OWN instant-lane apps by name (slug) \\u2192 frees a quota slot. This is the self-service fix for a 'limit reached' deploy error: list your apps, delete an unused one, redeploy. Owner-only \\u2014 it uses your account key and the server verifies ownership, so you can never delete another account's app. Deleting an ephemeral preview is NOT a governed-production action, so it needs ","write_action":true,"price_micros":0,"input_schema":null},{"name":"openpouch_deploy","description":"","write_action":true,"price_micros":0,"input_schema":null},{"name":"openpouch_deploy_preview","description":"Deploy the preview environment through the governed pipeline (policy check \\u2192 deploy \\u2192 poll \\u2192 smoke \\u2192 evidence). Default policy allows previews autonomously. For the zero-config instant preview (no manifest/provider key) use openpouch_deploy instead. On success the live URL is returned at top-level `url`, plus a plain-language `summary` to relay to your human.","write_action":true,"price_micros":0,"input_schema":null},{"name":"openpouch_deploy_production","description":"Deploy production through the governed pipeline. If policy requires approval, this returns approvalRequest{id} with isError \\u2014 ask your HUMAN to run `openpouch approve <id>` in their own terminal, then call this tool again. Agents cannot approve; there is intentionally no approve tool. Every result carries a plain-language `summary` to relay to your human; on a live deploy the URL is at top-le","write_action":true,"price_micros":0,"input_schema":null},{"name":"openpouch_init","description":"Initialize a project for openpouch: detects framework/build/env vars, writes deploy.manifest.json + deploy.policy.json (default policy: previews autonomous, production requires human approval), auto-matches an existing provider service by name. Idempotent.","write_action":false,"price_micros":0,"input_schema":null},{"name":"openpouch_inspect","description":"Answer: what is deployed, where, on which commit, which required env vars are missing (names only \\u2014 never values), and what drift exists between manifest and provider. Env vars passed at deploy time (--var/--env-file) appear as `deployProvided` (names from local evidence \\u2014 the instant lane never exposes them via the API). Read-only. The result carries a plain-language `summary` you can r","write_action":false,"price_micros":0,"input_schema":null},{"name":"openpouch_list","description":"List the instant-lane apps owned by the current openpouch account key: name (slug), kind (static/dynamic), status, live URL, and expiry. Read-only; needs an account key (anonymous previews aren't grouped under an account \\u2192 an empty list with a signup pointer). Carries a plain-language `summary` to relay to your human. Pair with openpouch_delete to free a quota slot when a deploy hits a 'limit","write_action":false,"price_micros":0,"input_schema":null},{"name":"openpouch_list_approvals","description":"List pending approval requests (read-only). Approving itself is human-only via `openpouch approve <id>` in an interactive terminal \\u2014 by design not available to agents.","write_action":false,"price_micros":0,"input_schema":null},{"name":"openpouch_logs","description":"Structured runtime logs ({timestamp, message}) of the mapped service. Read-only. This is the first step of the self-repair loop: when a deploy comes back unhealthy (a failed verify, a non-200 app, or a pending/not-yet-live URL), read the logs to find the cause, fix the code or config, redeploy, then verify \\u2014 repeat until it passes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"openpouch_plan","description":"Per environment: the policy decision (allowed / requires-approval / denied), blockers, readiness, and concrete next steps including the human-approval path. Read-only \\u2014 reports, never acts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"openpouch_rollback","description":"Redeploy the recorded rollback anchor commit (the deploy that was live before the latest one). Approval-gated like any write action \\u2014 may return approvalRequest{id} for your human.","write_action":false,"price_micros":0,"input_schema":null},{"name":"openpouch_upgrade","description":"Get a hosted-checkout URL for a paid openpouch tier (plan). Payment is deliberately a HUMAN step: hand the returned checkoutUrl to your human \\u2014 they pay in the browser at the Merchant of Record; agents never enter payment data and there is no pay tool. The account tier updates automatically after payment (verify with openpouch_whoami). Needs an API key; returns availablePlans in the error whe","write_action":false,"price_micros":0,"input_schema":null},{"name":"openpouch_verify","description":"Run the healthcheck/smoke against the environment's live URL and append the results to the evidence (deploy.evidence.json + DEPLOYMENT.md). For a full-stack app pass healthPath (e.g. /api/health) \\u2014 it is checked IN ADDITION to `/`, because a live shell can hide a dead API. The result carries a plain-language `summary` (healthy / has a problem) you can relay to your human.","write_action":true,"price_micros":0,"input_schema":null},{"name":"openpouch_whoami","description":"Report the openpouch account behind the current API key: tier (plan) and current usage (live apps, deploys this hour/day), or that the caller is anonymous. Read-only. The key is read from OPENPOUCH_API_KEY / ~/.openpouch/openpouch-run.key and never echoed. Carries a plain-language `summary` you can relay to your human. (Signup/activation are CLI/web only \\u2014 they involve a human email or browse","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":78,"grade":"B","scanned_at":"2026-09-25T17:26:44.515Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-25T17:26:44.473Z","components":{"code":{"score":20,"max":25,"notes":["2 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":12,"max":15,"notes":["last push 69 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"openpouch-mcp.js: …ode, sch); const makeValidate = new Function(`${names_1.default.self}`, `${names_1.de…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"@openpouch/mcp","version":"0.4.0","found":true,"license":"Apache-2.0","hasInstallScripts":false,"dependencyCount":0,"publishedAt":"2026-07-18T09:14:07.339Z","repositoryUrl":"git+https://github.com/openpouch/openpouch.git","weeklyDownloads":32}],"repo":{"found":true,"owner":"openpouch","repo":"openpouch","archived":false,"pushedAt":"2026-07-18T10:36:14Z","stars":0,"forks":0,"openIssues":9,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/293083635?v=4","ownerCreatedAt":"2026-06-12T11:41:53Z","license":"Apache-2.0"},"icon":{"url":null,"source":"none"},"presence":{"stars":0,"forks":0,"downloadsWeek":32,"license":"Apache-2.0","lastPushAt":"2026-07-18T10:36:14.000Z","score":18}}}},"grade_history":[],"reviews":[]}