Skydeo Landing MCP

Skydeo Landing MCP

Enables creating, previewing, and revising Skydeo landing pages with authenticated Sandbox previews and draft state management.

Category
Visit Server

README

Skydeo Landing MCP

Hosted control plane for creating, previewing, revising, and eventually publishing Skydeo landing pages through Model Context Protocol clients.

Documentation

Current milestone

This repository currently provides a production-authenticated draft and preview workflow:

  • Streamable HTTP MCP transport through Cloudflare Agents SDK
  • a Cloudflare Access OAuth integration for Skydeo team identity
  • manage_landing for deterministic initial page discovery and persisted legacy-draft status reads
  • confirm_publish as a separate landings:publish boundary that currently fails closed without reading draft state or taking repository action
  • create_draft, get_draft, update_draft, and revoke_preview MCP tools
  • a typed landing-draft state machine
  • one SQLite-backed Durable Object per draft
  • one isolated Sandbox preview runtime per draft
  • immutable SHA-256 revisions with revision-bound preview URLs
  • a fail-closed preview proxy that verifies Cloudflare Access assertions before forwarding production preview traffic to a Sandbox
  • a configurable preview TTL (24 hours by default), revocation, Durable Object alarms, and idempotent Sandbox cleanup
  • no production publishing capability or credentials

manage_landing is the intended public workflow boundary. Its safe discovery and status paths are active now. Repository-backed create/edit requests and all publish requests fail closed without allocating a Sandbox or changing state until the canonical repository and credentials are configured. The direct-HTML draft tools remain available as legacy foundation capabilities during that migration.

The deployed /mcp route uses Cloudflare Access-backed OAuth. npm run dev explicitly enables a local-only mode, while npm run dev:access exercises the complete Access OAuth flow after local secrets are configured.

Local checks

npm run cf-typegen
npm run check

Docker is required when starting the Sandbox-backed Worker locally:

npm run dev

The first container build can take several minutes. The MCP endpoint is available at http://localhost:8787/mcp, and health is available at http://localhost:8787/healthz.

The repository includes a project-scoped Codex MCP configuration at .codex/config.toml. Trust the repository, keep npm run dev running, and restart Codex (or open a new task) to make the skydeo_landing tools available directly in the app, CLI, or IDE extension. The configuration allow-lists only status and the draft/create/update workflow; it contains no publish tool.

create_draft accepts a hostname, base revision, and complete HTML document. update_draft replaces the HTML and requires the current revision as expected_revision, preventing one editor from silently overwriting another. Every successful create or update returns a preview URL for that immutable HTML revision. Local preview URLs remain development-only capability URLs. Production preview hostnames are routed through the Worker and require a valid assertion from the wildcard Cloudflare Access preview application before Sandbox proxying. The Worker also asks the draft coordinator for an active lifecycle decision before proxying. get_draft reports active, expired, revoked, or cleaned_up, and revoke_preview fails closed immediately while cleanup proceeds durably.

Planned capability sequence

  1. Create isolated repository workspaces from a pinned skydeo-landings revision instead of accepting complete HTML.
  2. Add validation and structured landing-page edit operations.
  3. Add a durable, explicitly approved publish workflow with production safeguards.

The MCP session is not the source of truth for a draft. Each draft is addressed by a stable Skydeo-scoped ID and stored in its own Durable Object so work survives client reconnections and can be resumed from different MCP hosts.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured