Skylight Remote
БесплатноНе проверенRemote MCP deployment scaffold for Skylight's MCP server, hosted on Cloudflare Workers and Containers, enabling HTTP access to the stdio-based Ruby MCP server.
Описание
Remote MCP deployment scaffold for Skylight's MCP server, hosted on Cloudflare Workers and Containers, enabling HTTP access to the stdio-based Ruby MCP server.
README
Remote MCP deployment scaffold for skylight-mcp, built on Cloudflare Workers plus Cloudflare Containers.
Relevant upstream links:
- Skylight: https://skylight.io/
skylight-mcpon RubyGems: https://rubygems.org/gems/skylight-mcpskylight-mcpon Ruby China: https://gems.ruby-china.com/gems/skylight-mcp/
This repo is for people who want to expose the Ruby skylight-mcp server through a hosted HTTP endpoint instead of running it locally over stdio.
What It Does
- Terminates HTTP requests at a Cloudflare Worker.
- Protects
/mcpwith a shared bearer token. - Forwards authenticated traffic to a containerized Node bridge.
- Runs
gem exec skylight-mcp --token "$SKYLIGHT_MCP_TOKEN"inside the container. - Adapts hosted MCP traffic into the stdio-based Ruby server.
If you found this repo while searching for Skylight MCP, Skylight Ruby performance tooling, or the skylight-mcp gem, start with Skylight and the package pages on RubyGems or Ruby China.
MCP Behavior
The bridge is intentionally tolerant of real hosted-client behavior:
OPTIONS /mcpreturns204for browser preflight requests.HEAD /mcpreturns200for authenticated reachability checks.POST /mcpsupports standard JSON-RPC requests such asinitialize,tools/list, andtools/call.notifications/initializedis accepted as a notification and returns202.- If a client sends follow-up traffic without a local in-memory session, the bridge bootstraps a replacement session before forwarding the request.
Architecture
apps/worker: Cloudflare Worker request handling, auth, and CORS.apps/bridge: HTTP-to-stdio bridge service that managesskylight-mcpchild processes.Dockerfile: minimal container image for the bridge.wrangler.jsonc: Worker + container deployment config.
Request flow:
- Client sends
POST /mcpwithAuthorization: Bearer <MCP_SHARED_BEARER_TOKEN>. - Worker validates auth and forwards the request to the Cloudflare Container binding.
- Bridge creates or resumes a session, then proxies JSON-RPC over stdio to
skylight-mcp. - Bridge returns JSON-RPC responses,
mcp-session-idheaders when relevant, and browser-friendly CORS headers.
Prerequisites
- Node 22+
- npm
- Docker with
buildx - Ruby is only required if you want to run the bridge outside the container image
- A Cloudflare account with Workers and Containers enabled
- A valid Skylight MCP token
Configuration
Required secrets:
MCP_SHARED_BEARER_TOKENSKYLIGHT_MCP_TOKEN
Optional environment variables:
PORTdefault8080LOG_LEVELdefaultinfoBRIDGE_REQUEST_TIMEOUT_MSdefault30000
.env.example contains the expected variable names for local development.
Local Development
Install dependencies and run tests:
npm install
npm test
npm run build
Run the bridge directly:
export SKYLIGHT_MCP_TOKEN=your-skylight-token
export PORT=8080
npm run dev:bridge
Quick checks:
curl -i http://127.0.0.1:8080/healthz
curl -i \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"local-test","version":"1.0"}}}' \
http://127.0.0.1:8080/mcp
Deploying To Cloudflare
- Authenticate Wrangler.
- Build the workspace artifacts copied into the bridge image:
npm run build
- Set Worker secrets:
npx wrangler secret put MCP_SHARED_BEARER_TOKEN
npx wrangler secret put SKYLIGHT_MCP_TOKEN
- Build and push the bridge image:
docker buildx build --platform linux/amd64 --load -t skylight-mcp-remote:amd64 .
npx wrangler containers push skylight-mcp-remote:amd64
Update
wrangler.jsoncwith your pushed image digest.Review the account-specific values in
wrangler.jsoncbefore deploy:
- Worker
name - container
name - registry image reference under
containers[].image
- Deploy:
npx wrangler deploy
Smoke Test
Set helpers:
export BASE_URL="https://<your-worker-subdomain>.workers.dev"
export MCP_SHARED_BEARER_TOKEN="<your-shared-bearer-token>"
Health check:
curl -i "$BASE_URL/healthz"
Initialize:
curl -i \
-H "Authorization: Bearer $MCP_SHARED_BEARER_TOKEN" \
-H 'content-type: application/json' \
-H 'Mcp-Method: initialize' \
-H 'MCP-Protocol-Version: 2025-11-25' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"smoke-test","version":"1.0"}}}' \
"$BASE_URL/mcp"
Follow with notifications/initialized:
curl -i \
-H "Authorization: Bearer $MCP_SHARED_BEARER_TOKEN" \
-H 'content-type: application/json' \
-H 'Mcp-Method: notifications/initialized' \
-H 'MCP-Protocol-Version: 2025-11-25' \
-H 'mcp-session-id: <session-id>' \
-d '{"jsonrpc":"2.0","method":"notifications/initialized"}' \
"$BASE_URL/mcp"
List tools:
curl -i \
-H "Authorization: Bearer $MCP_SHARED_BEARER_TOKEN" \
-H 'content-type: application/json' \
-H 'Mcp-Method: tools/list' \
-H 'MCP-Protocol-Version: 2025-11-25' \
-H 'mcp-session-id: <session-id>' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
"$BASE_URL/mcp"
Limitations
- The repo is a deployment scaffold, not a published npm package.
wrangler.jsoncis intentionally operational and must be edited for your own Cloudflare account.- Session state is in-memory inside the bridge container. The Worker smooths over some hosted-client edge cases, but the architecture is still fundamentally a stateful bridge around a stdio server.
License
MIT. See LICENSE.
Установка Skylight Remote
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/andychongyz/skylight-mcp-remoteFAQ
Skylight Remote MCP бесплатный?
Да, Skylight Remote MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Skylight Remote?
Нет, Skylight Remote работает без API-ключей и переменных окружения.
Skylight Remote — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить Skylight Remote в Claude Desktop, Claude Code или Cursor?
Открой Skylight Remote на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Skylight Remote with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
