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.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
XCELSIOR_ACCESS_TOKEN, XCELSIOR_API_URLค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:
https://mcp.xcelsior.ca/mcpเปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"xcelsior": {
"command": "npx",
"args": [
"-y",
"@xcelsior-gpu/mcp"
],
"env": {
"XCELSIOR_ACCESS_TOKEN": "ใส่ค่าของคุณ",
"XCELSIOR_API_URL": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http xcelsior https://mcp.xcelsior.ca/mcpclaude mcp add xcelsior --env XCELSIOR_ACCESS_TOKEN='ใส่ค่าของคุณ' --env XCELSIOR_API_URL='ใส่ค่าของคุณ' -- 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": "ใส่ค่าของคุณ",
"XCELSIOR_API_URL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .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": "ใส่ค่าของคุณ",
"XCELSIOR_API_URL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:
https://mcp.xcelsior.ca/mcpชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
XCELSIOR_API_URL envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
server ให้ล็อกอินก่อนจึงจะแสดงรายการเครื่องมือ
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub aabiro ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตอบกลับใน 550 ms (HTTP 401)
ประกาศวิธีล็อกอินแบบ OAuth ให้โปรแกรม AI พาไปล็อกอินเอง
ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: XCELSIOR_ACCESS_TOKEN
ได้ทั้งสองแบบ จะลงในเครื่องหรือต่อผ่านคลาวด์ก็ได้
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (2.0.1) เข้า registry เมื่อวาน
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Recta
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
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.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ 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.