Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Rent GPUs, launch spot instances and run serverless inference on the Xcelsior marketplace.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
XCELSIOR_ACCESS_TOKEN, XCELSIOR_API_URL비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
웹, 데스크톱, 모바일의 Claude에서 쓸 수 있어요:
https://mcp.xcelsior.ca/mcpClaude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"xcelsior": {
"command": "npx",
"args": [
"-y",
"@xcelsior-gpu/mcp"
],
"env": {
"XCELSIOR_ACCESS_TOKEN": "your-value",
"XCELSIOR_API_URL": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add --transport http xcelsior https://mcp.xcelsior.ca/mcpclaude mcp add xcelsior --env XCELSIOR_ACCESS_TOKEN=your-value --env XCELSIOR_API_URL=your-value -- npx -y @xcelsior-gpu/mcp실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"xcelsior": {
"url": "https://mcp.xcelsior.ca/mcp"
}
}
}프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"xcelsior": {
"command": "npx",
"args": [
"-y",
"@xcelsior-gpu/mcp"
],
"env": {
"XCELSIOR_ACCESS_TOKEN": "your-value",
"XCELSIOR_API_URL": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"xcelsior": {
"type": "http",
"url": "https://mcp.xcelsior.ca/mcp"
}
}
}프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"xcelsior": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@xcelsior-gpu/mcp"
],
"env": {
"XCELSIOR_ACCESS_TOKEN": "your-value",
"XCELSIOR_API_URL": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요:
https://mcp.xcelsior.ca/mcp메뉴 이름은 요금제나 시기에 따라 조금 다를 수 있어요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
XCELSIOR_API_URL env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
서버가 도구 목록을 보여 주기 전에 로그인을 요구해요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 GitHub 계정 aabiro 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
550ms 만에 응답(HTTP 401)
OAuth 로그인을 지원한다고 밝혀서, AI 앱이 로그인 화면으로 안내해 줘요
아직 점검하지 않았어요. 엔드포인트를 점검할 때 도구 목록을 읽어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 3개 중 3개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: XCELSIOR_ACCESS_TOKEN
둘 다 가능해요. 내 컴퓨터에 설치해도 되고, 클라우드 버전에 연결해도 돼요.
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(2.0.1)은 어제 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Recta
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Cheaper cross-chain stablecoin routes for AI agents; 5 % of the verified saving, nothing if none.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Hosted Model Context Protocol server for the Xcelsior GPU platform.
Requires Node.js ^20.20.0 or >=22.22.0 (the pinned PostHog MCP beta no longer supports Node 18).
cd mcp
npm ci XCELSIOR_MCP_API_URL=http://127.0.0.1:8000 npm run dev
Liveness: GET http://localhost:8770/health Readiness: GET http://localhost:8770/readyz MCP endpoint: http://localhost:8770/mcp
npx tsx scripts/check-live-surface.ts /path/to/private/token-file
The file contains a bearer token or an agent-key JSON response. The checker authenticates, lists tools, and compares names, annotations and output-schema presence with the customer registry in this checkout. It never invokes a tool handler or prints the token. This gives monorepo-aware coverage when a source scanner cannot discover the registrations; it does not prove handler behavior.
The canonical connector URL is `https://mcp.xcelsior.ca/mcp`.
Paste that URL into Claude, ChatGPT, Grok, Copilot Studio, Cursor, or VS Code and press connect. The client discovers everything it needs on its own:
/mcp with no credentials and gets 401 plus WWW-Authenticate: Bearer realm="xcelsior", resource_metadata="…"./.well-known/oauth-protected-resource, which names the authorization server and the exact resource identifier.client_id is an HTTPS URL serving the client's own metadata), by RFC 7591 dynamic registration at /oauth/register, or with the pre-provisioned public client xcelsior-connector./oauth/token (application/x-www-form-urlencoded) for a ~1h access token bound to https://mcp.xcelsior.ca/mcp, plus a 30-day refresh token.No client secret is involved, and nothing has to be pasted by hand.
client_credentialsFor CI, scripts, and headless agents where no human is present to consent. Create a machine client in Dashboard → Settings → Connect AI Agents, then:
curl -s -X POST https://xcelsior.ca/oauth/token \
-H 'Content-Type: application/x-www-form-urlencoded' \ -d 'grant_type=client_credentials' \ -d 'resource=https://mcp.xcelsior.ca/mcp' \ -d "client_id=$MCP_CLIENT_ID" -d "client_secret=$MCP_CLIENT_SECRET"
{
"mcpServers": { "xcelsior": { "url": "https://mcp.xcelsior.ca/mcp", "headers": { "Authorization": "Bearer YOUR_ACCESS_TOKEN" } } } }
client_credentials is fully supported and is not going away — it is simply not the front door for a person connecting an assistant.
https://mcp.xcelsior.ca/mcp — the exact URL a user pastes, path included. Protected-resource metadata, the resource parameter on authorization and token requests, and the aud claim all carry that one value. Tokens issued before the migration carry the bare origin https://mcp.xcelsior.ca and remain valid until 2026-11-30, after which they are rejected like any other wrong-audience token.
One codebase, one image, two exposed surfaces (XCELSIOR_MCP_TOOL_PROFILE):
| Profile | Where | Tools |
|---|---|---|
customer (default) | https://mcp.xcelsior.ca/mcp, submitted to directories | Tenant workflows only |
operator | Separate unlisted host | Adds platform-global host and control-plane tools |
Operator tools are not registered at all under the customer profile, so they cannot appear in tools/list and cannot be called by name. A token without operator scopes never enumerates them even on the operator host.
| Variable | Default | Description |
|---|---|---|
XCELSIOR_MCP_API_URL | http://127.0.0.1:8000 | Upstream FastAPI base URL |
XCELSIOR_MCP_RESOURCE_AUDIENCE | https://mcp.xcelsior.ca/mcp | Canonical RFC 8707 token audience |
XCELSIOR_MCP_LEGACY_RESOURCE_AUDIENCE | origin of the above | Pre-migration audience, accepted until sunset |
XCELSIOR_MCP_LEGACY_AUDIENCE_SUNSET | 2026-11-30T00:00:00Z | When the legacy audience stops being accepted |
XCELSIOR_MCP_RESOURCE_METADATA_URL | derived | What the 401 challenge points at |
XCELSIOR_MCP_TOOL_PROFILE | customer | customer or operator |
XCELSIOR_MCP_COMPANY_KNOWLEDGE | 0 | Register ChatGPT company-knowledge search/fetch |
XCELSIOR_MCP_POSTHOG_PROJECT_API_KEY | browser project key, then disabled | PostHog phc_ project key for MCP analytics |
XCELSIOR_MCP_POSTHOG_HOST | browser host or https://us.i.posthog.com | PostHog ingestion host |
XCELSIOR_DOCS_URL | https://docs.xcelsior.ca | Documentation corpus for company knowledge |
MCP_HOST | 0.0.0.0 | Bind address |
MCP_PORT | 8770 | Listen port |
MCP_PATH | /mcp | HTTP path |
MCP_RATE_LIMIT_PER_MIN | 60 | Per-token tool call budget |
@posthog/mcp is pinned to 0.11.4 because its pre-1.0 API may change. When a PostHog project key is configured, the server instruments both hosted HTTP and STDIO MCP traffic and emits the standard $mcp_* lifecycle/tool events. The authenticated Xcelsior user_id is used as distinct_id (with OAuth subject and tenant id as machine-principal fallbacks), so calls remain grouped across the hosted service's stateless per-request server instances.
Analytics is metadata-only: Xcelsior removes tool arguments, tool results, and exception messages before send, disables GeoIP and exception fan-out, and does not inject PostHog's context or conversation_id arguments into the reviewed tool schemas. The Streamable HTTP transport uses JSON responses so the SDK can carry its signed Mcp-Session-Id token across replicas. The shared posthog-node client is flushed during graceful shutdown.
If MCP analytics identifies users, production must also set XCELSIOR_POSTHOG_PERSONAL_API_KEY and XCELSIOR_POSTHOG_PROJECT_ID for the privacy-deletion worker. Startup validation rejects identification without those deletion credentials.
list_available_gpus, get_spot_prices, get_pricing_reference, search_marketplace, list_tierslist_instances, get_instance, get_instance_logs, create_instance, cancel_instance, terminate_instanceget_wallet_balance, estimate_job_cost, list_invoicesshould_i_run_this (estimate + wallet + optional max_hourly_cad)run_training_job, schedule_under_budgetlist_serverless_endpoints, create_serverless_endpoint, run_serverless_job, get_serverless_job_statuswatch_instance (poll status + telemetry + logs)explain_instance_placement, simulate_instance_placement, get_instance_timeline, get_active_lease, get_mcp_action_statusretry_instance, reconcile_instanceOperator profile only: get_scheduler_health, get_host_capacity, list_reconciliation_findings, drain_host, undrain_host, evict_host_workloads, retry_agent_command.
Company knowledge (optional, off by default): search and fetch, with OpenAI's exact schemas, over the documentation site, llms.txt, the pricing table, and live marketplace listings. Every result carries an absolute, human-openable URL and an internal id. Enable with XCELSIOR_MCP_COMPANY_KNOWLEDGE=1; it is deliberately not on for the base directory submission.
Resources: xcelsior://docs/llms, xcelsior://pricing/reference Prompts: cheapest-gpu-now, ca-fine-tune, serverless-inference
create_instance and create_serverless_endpoint always create a server-bound action plan first. confirm:true expresses intent but never replaces approval; execute with the returned plan_id after standing-policy or human approval. A confirmed call without a plan safely prepares a plan and returns approval_required. Host draining never evicts workloads; eviction has its own scope and action plan.
npx @xcelsior-gpu/mcp
Requires XCELSIOR_ACCESS_TOKEN. See mcp-cli/README.md.
Production promotion is blue/green across ports 8770/8771. Deployment runs readiness, bearer-authenticated protocol initialize, and tools/list against the standby before switching Nginx; a failure leaves the previous MCP serving.
MCP_CLIENT_ID=... MCP_CLIENT_SECRET=... python3 scripts/mcp_smoke.py
npx @modelcontextprotocol/inspector@latest
Point at http://localhost:8770/mcp with your MCP-audience Bearer token.