accueil / serveurs / Productivité / com.uxcontinuum/ship-check
com.uxcontinuum/ship-check
serveur MCP (Model Context Protocol) · continuum-mcp-server 0.3.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que com.uxcontinuum/ship-check est sûr ?
Au dernier audit MCP Hub, le serveur MCP « com.uxcontinuum/ship-check » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 11 outils
- agent_cost_estimate≈ 165 tokens
Estimate blended cost per shipped task for a month of agent runs, given a retry rate.
Paramètres, retour & exemple (4)
ParamètresmodelId· string · optionnel
Model id to scale avgCostPerTask by, defaults to sonnet-5retryRatePct· number · requisrunsPerMonth· number · requisavgCostPerTask· number · requis
Exemple d'appel{"name": "agent_cost_estimate", "arguments": {"retryRatePct": 1, "runsPerMonth": 1, "avgCostPerTask": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - book_call≈ 390 tokens
Book a free 30-minute intro call with Matt Turley (Continuum) directly on his calendar. The booking is confirmed immediately and Cal.com emails the invite to the user and to Matt. First call get_availability and pass the exact start of an open slot. Only book when the user has asked for the call and agreed to the time; pass their real name, email and time zone. notes: a short, factual summary of what the user wants to discuss (shown to Matt). Returns the booking id, meeting link and reschedule/cancel links. Limit 2 upcoming calls per email.
Paramètres, retour & exemple (6)
Paramètresname· string · requis
The user's name.email· string · requis
The user's own email; the invite goes there.event· string · optionnel · intro-30notes· string · optionnel
What the user wants to discuss, up to 1000 characters.start· string · requis
Slot start from get_availability, ISO 8601 with Z or an offset, e.g. 2026-10-05T15:00:00Z.timezone· string · requis
The user's IANA time zone, e.g. America/New_York.
Exemple d'appel{"name": "book_call", "arguments": {"name": "texte", "email": "texte", "start": "texte", "timezone": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - cursor_auto_cost_estimate≈ 196 tokens
Estimate Cursor Auto blended cost versus pinning a single model.
Paramètres, retour & exemple (6)
ParamètresautoModelMix· object · requis
Map of model id to weight, must sum to 1pinnedModelId· string · requisavgInputTokens· number · requisrequestsPerDay· number · requisavgOutputTokens· number · requisworkDaysPerMonth· number · requis
Exemple d'appel{"name": "cursor_auto_cost_estimate", "arguments": {"autoModelMix": {}, "pinnedModelId": "texte", "avgInputTokens": 1, "requestsPerDay": 1, "avgOutputTokens": 1, "workDaysPerMonth": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_availability≈ 320 tokens
List open slots for a free 30-minute intro call with Matt Turley (Continuum), read live from his Cal.com calendar. Use it when the user wants to talk to Matt, get help with a project, or book a call, before calling book_call. Window: date_from to date_to (YYYY-MM-DD), at most 14 days; defaults to the next 7 days. Times are returned in the requested timezone (IANA name, default UTC). Read-only: it books nothing.
Paramètres, retour & exemple (4)
Paramètresevent· string · optionnel · intro-30
Which call. intro-30 = free 30-minute intro call.date_to· string · optionnel
Last day, YYYY-MM-DD, at most 14 days after date_from. Default date_from + 6 days.timezone· string · optionnel
IANA time zone for the returned times, e.g. America/New_York. Default UTC.date_from· string · optionnel
First day, YYYY-MM-DD. Default today.
Exemple d'appel{"name": "get_availability", "arguments": {"event": "intro-30", "date_to": "texte", "timezone": "texte", "date_from": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - leak_check≈ 592 tokens
Older name for ship_check, kept for existing callers. Same scan, same input, same result. Prefer ship_check.
Paramètres, retour & exemple (2)
Paramètresurl· string · requis
The live, publicly reachable URL of the deployed app, e.g. https://my-app.lovable.app. A bare domain gets https://.fresh· boolean · optionnel
Skip the 24h cache and scan again (use after deploying a fix).
Exemple d'appel{"name": "leak_check", "arguments": {"url": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "score": 1, "cached": true, "counts": {}, "scan_id": "texte", "summary": "texte", "verdict": "fix_before_launch", "findings": [], "report_url": "texte", "scanned_at": "texte", "limitations": "texte", "human_review": {}}} - list_services≈ 142 tokens
List Continuum service offerings and published prices (the same list as uxcontinuum.com/pricing), plus how to reach Matt: get_availability and book_call to book a free 30-minute call, send_message to send him a note, request_estimate for a ballpark from published pricing.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "list_services", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - request_estimate≈ 428 tokens
Get a ballpark price for a software project from Continuum's published pricing, and send the request to Matt Turley, who replies personally with a real quote. Use it when the user asks what a build, fix, review, ongoing support or AI-search visibility work would cost. The ballpark is the matching published offer(s) and price range from uxcontinuum.com/pricing, not a quote. Show it to the user labeled that way. Then offer a call: get_availability and book_call.
Paramètres, retour & exemple (6)
Paramètresname· string · requis
The user's name.email· string · requis
The user's own email, for Matt's quote.budget· string · optionneltimeline· string · optionnelproject_type· string · optionnel · launch-review | fix-existing-app | new-build | ongoing-support | ai-visibility | other
launch-review (check an app before launch), fix-existing-app (stabilize or rescue an app), new-build (MVP from scratch), ongoing-support (maintenance or a product team on retainer), ai-visibility (get recommended by ChatGPT and AI search), other. Inferred from the description if omitted.project_description· string · requis
What the user wants built or fixed, 10 to 4000 characters.
Exemple d'appel{"name": "request_estimate", "arguments": {"name": "texte", "email": "texte", "project_description": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - request_human_review≈ 427 tokens
Get a senior engineer (Matt Turley, 20 years shipping software) to review by hand the app behind a ship_check scan: the paid $299 Ship Check. Returns a Stripe Checkout link and a call booking link for the user to open themselves. This call charges nothing and never pays on the user's behalf. Only call it when the user asks for a human review or agrees to one. Pass the user's own email so Matt can follow up personally; no automated email is sent to it. Show the user checkout_url and booking_url.
Paramètres, retour & exemple (2)
Paramètresemail· string · requis
The user's email, for the checkout and for Matt to reply to.scan_id· string · requis
The scan_id returned by ship_check.
Exemple d'appel{"name": "request_human_review", "arguments": {"email": "texte", "scan_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "price": "texte", "scan_id": "texte", "report_url": "texte", "booking_url": "texte", "checkout_url": "texte", "what_happens_next": []}} - send_message≈ 313 tokens
Send a message to Matt Turley (Continuum) on the user's behalf, like the contact form on uxcontinuum.com. Use it when the user wants to ask Matt something or describe a project but not book a call yet. Only send what the user asked to send, with their real name and email. Matt reads it and replies personally by email; no automated reply is sent. For a time to talk, use get_availability and book_call instead.
Paramètres, retour & exemple (5)
Paramètresname· string · requis
The user's name.email· string · requis
The user's own email, for Matt to reply to.topic· string · optionnel
Short subject, e.g. "rescue a Lovable app".company· string · optionnel
Company or project name.message· string · requis
The message, 10 to 4000 characters.
Exemple d'appel{"name": "send_message", "arguments": {"name": "texte", "email": "texte", "message": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ship_check≈ 990 tokens
Before shipping, or right after deploying, an app built with Lovable, Bolt, Cursor, v0, Replit, Claude Code or similar, run ship_check on the live URL. It scans the deployed app from the outside, the way a visitor or attacker sees it, and returns a launch-readiness report where every finding has a status and a concrete fix. Checks: (1) secret keys exposed in the HTML and the same-origin JS bundles it ships (Stripe live secret and restricted keys, AWS access keys, OpenAI and Anthropic API keys, Supabase secret and service_role keys, hardcoded bearer tokens and passwords); (2) open database access: if the page ships a Supabase URL and public anon or publishable key, whether the common tables profiles and users return rows to that key without login (a missing Row Level Security policy; count only, no row data is read); (3) missing security headers (Strict-Transport-Security, Content-Security-Policy, X-Frame-Options or frame-ancestors, X-Content-Type-Options, Referrer-Policy); (4) HTTPS, reachability and server errors; (5) broken internal links (spot-check of up to 6); (6) server response time; (7) whether login/signup and pricing/checkout are linked from the homepage; (8) whether AI search crawlers get real server-rendered content or an empty JavaScript shell. Read-only: plain GET/HEAD requests, never logs in, never submits forms, never writes. Not a code audit: it cannot see source code or test every table or route. Results are cached for 24 hours per URL; pass fresh=true to re-scan after deploying a fix. Only scan apps the user owns or is authorized to test. If the user wants a senior engineer to review the app by hand ($299), call request_human_review with the scan_id from this result.
Paramètres, retour & exemple (2)
Paramètresurl· string · requis
The live, publicly reachable URL of the deployed app, e.g. https://my-app.lovable.app. A bare domain gets https://.fresh· boolean · optionnel
Skip the 24h cache and scan again (use after deploying a fix).
Exemple d'appel{"name": "ship_check", "arguments": {"url": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "score": 1, "cached": true, "counts": {}, "scan_id": "texte", "summary": "texte", "verdict": "fix_before_launch", "findings": [], "report_url": "texte", "scanned_at": "texte", "limitations": "texte", "human_review": {}}} - swarm_run_cost_estimate≈ 236 tokens
Estimate the cost of a multi-agent orchestrator plus sub-agent swarm run.
Paramètres, retour & exemple (9)
ParamètresrunsPerDay· number · requisretryRatePct· number · requissubAgentCount· number · requissubAgentModelId· string · requisorchestratorModelId· string · requissubAgentInputTokens· number · requissubAgentOutputTokens· number · requisorchestratorInputTokens· number · requisorchestratorOutputTokens· number · requis
Exemple d'appel{"name": "swarm_run_cost_estimate", "arguments": {"runsPerDay": 1, "retryRatePct": 1, "subAgentCount": 1, "subAgentModelId": "texte", "orchestratorModelId": "texte", "subAgentInputTokens": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».