Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Work a running OrcaSlicer with AI: slice, tune, and understand what each setting costs
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
ORCA_API_TOKEN, ORCA_API_URL, ORCA_MCP_ALLOW_KEYS, ORCA_PRINTER_URL, ORCA_PRINTER_API_KEY, ORCA_PRINTER_ID비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"orcaslicer": {
"command": "uvx",
"args": [
"orcaslicer-mcp"
],
"env": {
"ORCA_API_TOKEN": "your-value",
"ORCA_API_URL": "your-value",
"ORCA_MCP_ALLOW_KEYS": "your-value",
"ORCA_PRINTER_URL": "your-value",
"ORCA_PRINTER_API_KEY": "your-value",
"ORCA_PRINTER_ID": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add orcaslicer --env ORCA_API_TOKEN=your-value --env ORCA_API_URL=your-value --env ORCA_MCP_ALLOW_KEYS=your-value --env ORCA_PRINTER_URL=your-value --env ORCA_PRINTER_API_KEY=your-value --env ORCA_PRINTER_ID=your-value -- uvx orcaslicer-mcp실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"orcaslicer": {
"command": "uvx",
"args": [
"orcaslicer-mcp"
],
"env": {
"ORCA_API_TOKEN": "your-value",
"ORCA_API_URL": "your-value",
"ORCA_MCP_ALLOW_KEYS": "your-value",
"ORCA_PRINTER_URL": "your-value",
"ORCA_PRINTER_API_KEY": "your-value",
"ORCA_PRINTER_ID": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"orcaslicer": {
"type": "stdio",
"command": "uvx",
"args": [
"orcaslicer-mcp"
],
"env": {
"ORCA_API_TOKEN": "your-value",
"ORCA_API_URL": "your-value",
"ORCA_MCP_ALLOW_KEYS": "your-value",
"ORCA_PRINTER_URL": "your-value",
"ORCA_PRINTER_API_KEY": "your-value",
"ORCA_PRINTER_ID": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
ORCA_API_URL envORCA_MCP_ALLOW_KEYS envORCA_PRINTER_URL envORCA_PRINTER_ID env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 GitHub 계정 MaxEllis 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: ORCA_API_TOKEN, ORCA_PRINTER_API_KEY
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.1.19)은 5일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Python (uv)도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, NexusWindows
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ 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.
Windows computer use in the background: desktop apps driven without your mouse or keyboard.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Let Claude work alongside you in a real, running OrcaSlicer. It loads models, arranges the plate, tunes settings, slices, and reads the result back as numbers you can question: which feature ate the print time, what a setting actually does, whether a profile breaks your printer's physics. Every change lands in the GUI while you watch, so the slicer stays yours and you get better at it as you go.
This package is an MCP server: it bundles no model. It talks to OrcaSlicer, at an address you configure (localhost by default), and, when you use the printer tools, makes read-only requests to your 3D printer. It sends the printer no commands and uploads nothing to it. The model comes from your MCP client. If that client uses a hosted one, your conversation goes there as any chat does; your models, profiles, and gcode stay on the machine running the slicer. Point the client at a local model and nothing goes to a hosted service.
An offline settings reference ships with the package, carrying the authoritative label, tooltip, type, range, enum, and default for each key, so describe_setting, search_settings, and compare_settings answer from OrcaSlicer's own source instead of guessing. consult composes curated slicing knowledge and your saved notes by topic, symptom, or goal.
check_profile_physics is a deterministic gate. It overlays proposed changes on the live config, runs flow, temperature, geometry, and cooling math, then returns ok, warnings, or blocked. Accelerations your printer cannot reach and speeds past the flow ceiling get caught before they reach a print.
Read and write any of roughly 800 OrcaSlicer settings on the live config, for the whole plate or scoped narrower: get_config, set_config, find_config_keys, set_layer_height, set_height_range for a band of layers, and set_object_config for one object's overrides.
On a multi-filament setup, per-filament keys are read merged across every loaded slot but written one preset at a time, and selecting a preset discards unsaved overrides in every group. So make filament edits first and print edits second; docs/order-of-operations.md explains why and gives the sequence.
list_presets, select_preset, get_preset_config, edit_preset, save_preset, rename_preset, delete_preset. select_preset discards unsaved overrides in every group, not only the one switched; see docs/order-of-operations.md.
slice, slice_and_wait, apply_and_slice, cancel_slice, get_slice_status, get_slice_warnings, get_gcode.
get_slice_breakdown returns per-feature time, filament, and flow. OrcaSlicer shows the same information in the legend beside its preview, sized for a screen; this returns it as numbers an assistant can compare and act on:
role time share filament mean flow
inner_wall 5m 41s 30.8% 6.43 g 16.0 mm3/s outer_wall 3m 19s 18.0% 3.20 g 13.6 mm3/s sparse_infill 3m 07s 17.0% 3.57 g 17.0 mm3/s internal_solid_infill 2m 01s 11.0% 1.72 g 11.8 mm3/s bridge 52s 4.7% 0.26 g 4.4 mm3/s support_interface 36s 3.2% 0.52 g 12.3 mm3/s overhang_perimeter 28s 2.5% 0.13 g 3.7 mm3/s internal_bridge 21s 1.9% 0.45 g 19.9 mm3/s top_surface 19s 1.7% 0.29 g 12.5 mm3/s brim 12s 1.1% 0.21 g 14.7 mm3/s bottom_surface 7s 0.7% 0.10 g 11.8 mm3/s 18m 24s 16.89 g
It answers which feature is eating the time without slicing repeatedly to find out. A prediction_check rides along and flags any role where the profile's requested speed got throttled at the flow ceiling.
compare_slices slices the current plate under several named variants and returns one comparison, so "what does layer height actually cost me?" is a single question rather than four manual slices. It applies each variant over your original config, restores it when done, and hands back a verdict plus a table with every delta already worked out:
Recommended: 0.4mm - fastest with no warnings.
variant time filament vs 0.4mm (baseline) 0.3mm 8h 10m 41.0 g +1h 30m (+22%), -7.0 g (-15%) 0.4mm * 6h 40m 48.0 g baseline 0.5mm 5h 20m 53.4 g -1h 20m (-20%), +5.4 g (+11%) 0.6mm 4h 35m 57.1 g -2h 05m (-31%), +9.1 g (+19%) thin-wall warning
It only crowns a winner when one variant genuinely beats the rest on time, filament, and warnings; when they trade off, it names the fastest, the lightest, and where the warnings landed, and leaves the choice in front of you. Pass detail=True for the per-feature split of each variant.
load_model (.stl, .obj, .3mf, plus .step and .stp on fork v2.3.2-mcp.3 and later), list_objects with each object's world-space bounding box and an on_plate flag, transform_object, duplicate_object, delete_object, arrange_plate, auto_orient, check_placement, diagnose_plate, get_job_status.
list_plates, add_plate, select_plate, delete_plate and move_object_to_plate build a multi-plate project the way the toolbar does: one part per plate, each sliced on its own. Slicing, G-code, renders and job status always act on the current plate, so select a plate before you slice it. list_objects reports the plate each object sits on. Keep arrange_plate away from a layout like this: OrcaSlicer's arrange packs every unlocked plate together again. These need fork v2.4.2-mcp.13 or later.
CANVAS slots. With an Elegoo Centauri Carbon 2 and a CANVAS unit, get_printer_slots reads the trays (label, status, material, colour), get_filament_slot_mapping shows which tray each filament of the current plate would use, and set_filament_slot_mapping changes that choice. Only the mapping can be changed. Nothing is sent: OrcaSlicer's Send dialog opens pre-filled and you still click Send. For any other printer, or when the printer cannot be reached, the reply is supported: false with a reason and a message. These need fork v2.4.2-mcp.14 or later.
save_project writes the project as a .3mf exactly as File > Save does: plates, placement, per-object and per-plate settings, height ranges, slot presets and colours, unsaved overrides. It never replaces an existing file unless told to. open_project brings a saved project back as File > Open Project does (not a geometry import), open_recent_project does the same for an entry of File > Recent, and new_project starts over. OrcaSlicer's prompts ("save changes?", "keep modified presets?") would hang a remote caller, so each one is answered from an argument: if_unsaved is fail by default, so nothing is lost without being asked for. get_project and get_status report the project's name, path and whether there is something to save, so an agent knows when to save.
Around the files themselves: list_recent_projects shows File > Recent and whether each file still exists, forget_recent_project tidies that list, browse_projects lists the .3mf files in a folder on the OrcaSlicer host, move_project_file renames or moves a project file (the window follows when it is the open project), and delete_project_file removes one from disk, permanently, never the open project's own file. These need fork v2.4.2-mcp.15 or later.
render_plate hands back a PNG, so the assistant can look instead of inferring from coordinates. A rotation reads instantly as a picture and barely at all as three Euler angles. Seven camera angles cover iso, top, front, left, right, rear, and bottom. Use frame="plate" to stand back for the whole bed, or frame="object" to lean in on the part. Requires fork v2.3.2-mcp.4 or later.
view="editor" | view="preview" |
|---|---|
| Your models on the bed. Answers orientation, plate contact, and first-layer footprint. | Sliced toolpaths coloured by feature role, so support placement is plain to see. |
describe_plate answers the same questions as numbers and one sentence per object, computed from the sliced G-code: how the part stands (flat, tilted, or on an edge or corner, from first-layer contact against its widest layer), the first-layer footprint as islands, where overhang extrusions concentrate by height band, where support stands and where it touches the part, and which side the seams sit on, checked against seam_position. It exists because an assistant reads a sentence more reliably than a picture. Copies of an object are aggregated; the islands still show each copy's contact patch. On a plate of three tilted bracket copies it reads: "bracket.stl (3 copies) stands on an edge or corner: first-layer contact is 5% of its widest layer, in 3 islands of about 50 mm2 each. Overhang extrusions concentrate at Z 0 to 10 mm. Support is present from Z 0.4 to 56.8 mm, standing in 3 places and touching the part in 7 zones. Seams align on the +Y side (91%), matching seam_position=back."
get_status and watch_events report what the slicer is doing now. remember persists machine, user, and project facts for later sessions, as plain local files in ~/.orcaslicer-mcp/notes/, relocatable with ORCA_MCP_NOTES_DIR.
get_printer_status reports what the printer is doing now: idle, heating, printing, paused, finished, or stopped by a fault, with nozzle and bed temperatures, the job's progress and time left, and any problems the printer reports in its own words. Common Klipper messages come with a short plain-English hint. wait_for_printer waits until the printer has heated, started extruding, or finished the first layer, or until the job ends (completed, cancelled or failed). OctoPrint reports no extrusion, so there waiting for printing means waiting until the job is running with the heaters at temperature. It returns early if the printer reports a fault, or if the job ends before the point it waits for, as when you cancel a print while it heats. It rides out brief network drops: after three failed checks in a row it stops and reports "Lost contact with the printer" along with the last status it saw. list_print_history lists recent jobs with how each one ended, how long it took against the slicer's estimate, and, for failed ones, the printer's reason while its console still holds it. check_printer_match compares the active profile with the printer's own settings: nozzle size, bed size, speed and acceleration limits, maximum temperatures, and firmware retraction. A check without enough data comes back as unknown, and when nothing could be checked the answer says so instead of reporting a match. Asking for more acceleration than Klipper's max_accel earns a warning because current Klipper accepts the higher value when the G-code sets it (M204 or SET_VELOCITY_LIMIT), so the printer acc
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요