TODAY
Local BYOK
Concept, separate views, and a GLB with your GEMINI_API_KEY and MESHY_API_KEY. No CrafThinkERA token.
CRAFTY MCP · DEVELOPER BETA
A CrafThinkERA token is not required for local BYOK. Your Gemini and Meshy keys stay on your machine and you pay those providers. The runtime is free; provider usage is not. The package is not on npm; install from the commit below.
TODAY
Concept, separate views, and a GLB with your GEMINI_API_KEY and MESHY_API_KEY. No CrafThinkERA token.
ACCESS REQUIRED
Bearer ctk_ against /api/mcp. File and read a project. request_quote asks a human for a price; it does not charge. Payment is not live.
NOT YET
A local GLB is not a quote or a production record. For a physical request, use the Make form; human review is required.
On a clean machine: install, build, and run doctor. Then add the stdio connection below to your host. The first safe check is crafty_status; it reports configuration without exposing secrets. Use start_project for the first project. npx @crafthinkera/mcp will not work because the package is not on the registry.
git clone https://github.com/crafthinkera/mcp.git
cd mcp
git checkout dc96400b4bfff26cad4f42eb689d5c8af0d299fa
pnpm install --frozen-lockfile
pnpm build
pnpm exec crafthinkera-mcp doctorpin dc96400b4bfff26cad4f42eb689d5c8af0d299fa
[mcp_servers.crafty]
command = "node"
args = ["/absolute/path/to/mcp/dist/cli.js"]
env = { GEMINI_API_KEY = "...", MESHY_API_KEY = "..." }Replace the path with dist/cli.js in your clone. After the host connects, call crafty_status, then send a text intent through start_project. A local GLB or other artifact is not imported into a physical quote in this pilot.
MCP without a key returns 401. Discovery: /.well-known/mcp.json. Initialize, then tools/list. Contact us with your use case for a hosted access review. The local runtime needs --remote for the hosted bridge.
Discuss hosted accessThis table is the hosted contract (0.2.0). Local BYOK tools are a different list; tools/list is the source of truth. Quote and order tools read human pricing and the approval path; an agent cannot charge.
| Tool | Scope | Behavior |
|---|---|---|
| start_project | project:create | Create a project from intent; reuse idempotencyKey on retry. |
| get_project | project:read | Read project status and interpretation. |
| inspect_project | project:read | Read project artifacts, steps and blocking questions. |
| work_on_project | work:run | Interpret or advance eligible digital work; no commercial approval. |
| prepare_execution | project:read | Read step readiness without executing work. |
| request_quote | quote:request | Submit an immutable production specification for human quoting; idempotencyKey required. |
| get_quotes | quote:read | Read exact quote revisions, amounts in minor units and expiry. |
| prepare_production_order | order:prepare | Get the authenticated human approval path for an exact quote; no approval or charge occurs. |
| get_production_job | production:read | Read the job created by verified payment; AWAITING_MAKER is not physical production or delivery. |
Example tools/call. Save projectId and read it with get_project. Use work_on_project only with work:run. Paid providers need extra permission. This call does not start physical making.
{
"name": "start_project",
"arguments": {
"intent": "I would like a 20 cm painted figure from my own drawing.",
"locale": "en"
}
}