xtool-mcp
Provides tools and resources for interacting with xTool laser machines, enabling material settings recommendations, design generation, troubleshooting, and machine knowledge through natural language.
README
xtool-mcp
An unofficial Model Context Protocol server, agent, and llms.txt for xTool laser machines — so you can bring an xTool-savvy assistant into your design studio and the AI client of your choice.
⚠️ Unofficial & safety notice. Not affiliated with, endorsed by, or sponsored by xTool. Everything here — settings, generated
.xcsfiles, project designs — is guidance, not a guarantee. Always test on scrap. Never cut PVC/vinyl or chlorine-containing materials. Never run a laser unattended. See DISCLAIMER.md.
What it does
- Machine knowledge — specs, work area, laser type, and supported software for the current xTool lineup (D1 family, S1, M1/M1 Ultra, F1/F1 Ultra/F2 series, P2/P3, MetalFab).
- Material settings — power/speed/passes/DPI starting points with provenance, confidence, and safety caveats — plus a "run a test grid" path when there's no good data.
- Software & troubleshooting — XCS vs Studio workflow help and symptom → cause → fix guidance.
- Design generation — produce cut-ready
.xcs(and SVG): material test grids, finger-joint boxes, and SVG → .xcs conversion. - Runs anywhere — one shared core, two entry points: a local stdio server (
npx xtool-mcp) and a remote Cloudflare Worker (Streamable HTTP).
Quick start
Use the hosted remote server
Add this Streamable HTTP endpoint to any MCP client:
https://xtool-mcp.doublexl.workers.dev/mcp
Run locally (stdio)
{
"mcpServers": {
"xtool": { "command": "npx", "args": ["-y", "xtool-mcp"] }
}
}
Drop that into Claude Desktop's claude_desktop_config.json or Cursor's mcp.json
(see agent/clients/), and paste agent/system-prompt.md
into your client's system-prompt field for the full "xTool laser assistant" persona.
What's inside
Tools
| Tool | Purpose |
|---|---|
list_machines / get_machine_specs |
Browse the machine catalog |
recommend_settings |
Power/speed/passes/DPI for a machine + material + thickness (with confidence + safety) |
search_knowledge |
Semantic/keyword search across machines, guides, troubleshooting, safety |
troubleshoot |
Likely causes and ordered fixes for a symptom |
generate_test_grid |
A .xcs/SVG grid varying two parameters (power vs speed) |
create_box |
Finger-joint box/tray panels as .xcs/SVG |
svg_to_xcs |
Convert an SVG into a cut-ready .xcs |
validate_xcs |
Check a .xcs for common structural problems |
Resources
xtool://machines, xtool://machines/{id}, xtool://materials,
xtool://troubleshooting, xtool://guides/{id}, xtool://safety, xtool://xcs-format.
Prompts
dial_in_settings, design_finger_joint_box, convert_svg_to_project,
troubleshoot_issue, plan_beginner_project, material_safety_check.
The .xcs format
.xcs is xTool's project file. It's community-reverse-engineered (plain JSON;
shapes in canvas[0].displays; laser parameters in a parallel device.data Map keyed
by shape id). This project generates the well-trodden single-file JSON used by D1/F1-class
machines. Open generated files in Studio/XCS and verify before running. Full writeup:
docs/xcs-format.md.
Development
Requires Node ≥ 18 and pnpm.
pnpm install
pnpm build # build core + stdio
pnpm typecheck
pnpm test
pnpm start:stdio # run the local MCP server
pnpm dev:worker # run the Cloudflare Worker locally
pnpm build:llms # regenerate llms.txt / llms-full.txt
pnpm build:embeddings # (optional) precompute the Workers AI search index
Architecture: docs/architecture.md ·
Data model & how to contribute settings: docs/data-model.md,
CONTRIBUTING.md.
Deploy the Worker
cd packages/worker
pnpm dlx wrangler deploy # deploys to xtool-mcp.<account>.workers.dev with an AI binding
The Worker also serves /llms.txt
and /llms-full.txt, generated live from the knowledge base.
Contributing
Material settings especially benefit from real-world data — see CONTRIBUTING.md. Every settings row needs a source and an honest confidence level.
License
MIT. "xTool", "xTool Creative Space", and "xTool Studio" are trademarks of their respective owners, used here only to describe compatibility.
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.