About PicToSTL
PicToSTL is a local stdio MCP server that sends images to pictostl.com for 3D model generation and saves GLB or STL results locally. It is intended for visualization and 3D-printing experiments, not engineering drawings.
Key features
- 01Upload a local image or HTTPS URL
- 02Start and check asynchronous generation jobs
- 03List recent generations and account credits
- 04Save GLB or locally converted STL files
Use cases
- 01Create a 3D mesh from an image
- 02Check the status of a model-generation job
- 03Save a generated model for visualization or printing experiments
MCP support
MCP clients launch the local server over stdio. It exposes seven tools for uploading images, managing generation jobs, checking account information, and downloading model files; generation runs through the pictostl.com API.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y pictostl-mcpPICTOSTL_API_KEYSecretPicToSTL API key. Create one at https://pictostl.com/api-keysPICTOSTL_API_BASEOptional override for the PicToSTL API base URLLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
7Saved tool list · updated 2w ago
This tool takes no parameters.
Details
From the project READMEpictostl-mcp
Local stdio MCP server for pictostl.com. Generation runs on pictostl.com — this package uploads photos, starts 3D jobs, and writes GLB or STL files on the machine that hosts the MCP server.
Results are AI-reconstructed meshes for visualization and 3D printing experiments. They are not engineering drawings.
This is a local stdio MCP server distributed from its GitHub repository. pictostl.com does not host a remote MCP HTTP endpoint.
Architecture and data flow
MCP client → local pictostl-mcp process → pictostl.com API
← generation status and GLB
MCP client ← local GLB/STL file ←
The MCP process runs locally and communicates with https://pictostl.com over HTTPS. Images, generation parameters, and the API key are sent to pictostl.com to upload inputs, create jobs, and retrieve results. GLB-to-STL conversion and final file writing happen locally on the machine running the MCP server.
There is no hosted PicToSTL MCP endpoint. MCP clients start this package locally over stdio; the local process then calls the hosted PicToSTL API.
Get an API key
By using the API or this MCP server you agree to the Terms of Service.
Website browser generation is separate from MCP. MCP always uses an API key.
Install from GitHub
Requires Node.js 20 or newer. The command below installs the repository through npm's Git support and runs its committed JavaScript build. It does not require a published npm package or a local TypeScript compiler.
Claude / Cursor config
{
"mcpServers": {
"pictostl": {
"command": "npx",
"args": [
"-y",
"--package=github:qduoduo-hwh/pictostl-mcp",
"pictostl-mcp"
],
"env": {
"PICTOSTL_API_KEY": "ps_live_..."
}
}
}
}
Set PICTOSTL_API_KEY to a live key from https://pictostl.com/settings/api-keys.
Optional: PICTOSTL_API_BASE (default https://pictostl.com) for a local website.
Keep the API key in your MCP client's secret or user-level configuration. Do not commit a live key to source control.
For a pinned installation, append a Git tag or commit after the repository name, for example github:qduoduo-hwh/pictostl-mcp#v0.1.0.
Local development
git clone https://github.com/qduoduo-hwh/pictostl-mcp.git
cd pictostl-mcp
corepack enable
pnpm install --frozen-lockfile
pnpm build
Then configure the MCP client to run node with the absolute path to dist/index.js as its first argument.
Tools
Seven MCP tools:
| Tool | Purpose |
|---|---|
list_generation_options | Quality, texture, multi-view rules, and credit costs |
upload_image | Upload a local file or HTTPS URL; returns assetId |
generate_model | Start an async 3D job (sends clientRequestId even if you omit it) |
get_task | Fetch a generation by task id; optional waitSeconds (max 60) |
list_my_generations | List recent generations for this API key |
get_account | Remaining credits and Pro / Ultra paid-credit status |
download_model | Write original GLB, or a local binary STL, to a path |
Typical flow: upload_image → generate_model → get_task (repeat with the same task id if it takes more than 60 seconds) → download_model with that task id.
Do not pass an upload assetId to get_task or download_model.
download_model default is format=stl, longest edge 100 mm, converted locally from the original GLB (not the website preview mesh). STL has geometry only — no color or textures. format=glb writes the original file unchanged.
Reuse clientRequestId from a previous generate_model result when retrying the same job.
Contributing
Improve tool descriptions so agents call the right tool with the right fields. Do not ask for internal fal prompts or provider payloads.
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.