jwmcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JWMCP_HOME | No | 作図データ・スキャン・プレビュー・エクスポートの保存先(既定 `~/.jwmcp`) | ~/.jwmcp |
| JWMCP_EXCHANGE | No | 外部変形ブリッジの共有フォルダ(既定 `~/JW_MCP_Exchange`)。Google Drive 等の同期フォルダにすると Windows 側と共有できる | ~/JW_MCP_Exchange |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| jww_infoA | Open a .jww file and return a compact summary: version, paper, layer groups with scale (1/N) and layer names/counts, entity counts by type, bounding box (real mm), text sample. |
| jww_queryA | Query entities of a .jww file (real-mm coordinates). Filter by types (line, circle, arc, text, point, solid, dimfigure), layer group lg, layer ly, bbox [min_x,min_y,max_x,max_y], or regex pattern on text. Paginate with limit/offset. |
| jww_textsC | List all text strings of a .jww (room names, dimensions, notes) with position, layer and size. |
| jww_previewB | Render a .jww (or a region of it) to PNG and return the image. bbox = [min_x,min_y,max_x,max_y] in real mm to zoom; lg to show one layer group only. Use this to see the drawing. |
| jww_to_dxfC | Convert a .jww to DXF (AC1024 by default) using ezjww. Returns the output path. |
| drawing_newB | Create (or reset) a named drawing. scale = denominator of the drawing scale (100 for 1/100). paper: A0..A4, 2A..5A, 10m/50m/100m. group_names/layer_names set Jw_cad レイヤグループ名/レイヤ名 (e.g. group_names={'0':'平面図'}, layer_names={'0-1':'壁','0-2':'柱'}). |
| drawing_listB | List saved drawings. |
| presets_listA | List layer presets usable in drawing_new(preset=...) with their group/layer names and per-type defaults. |
| scan_openA | Open a scanned drawing (PDF or image) for CAD conversion. Pages are rendered to PNG. Returns page sizes and whether the PDF is vector (CAD-exported → scan_vector_import) or raster (read with scan_view). |
| scan_listC | List opened scans. |
| scan_viewB | Look at a page or a zoomed region of it (region = [x0,y0,x1,y1] in pixels, or fractions 0..1). A red pixel ruler is drawn so you can report pixel positions for scan_calibrate / placement. |
| scan_calibrateA | Define how pixels map to real mm. Either p1/p2 (pixels) + distance_mm (a known dimension on the scan), or px_per_mm, or scale= (+paper=A2 for images; PDFs know their physical size). origin_px = pixel that becomes (0,0) mm (default: bottom-left corner). |
| scan_px_to_mmC | Convert pixel positions on a calibrated page to real mm (and back with mm_points). |
| scan_overlayC | Draw a drawing on top of the scan to check alignment (needs calibration). region_px zooms. |
| scan_vector_importA | For vector PDFs (exported from CAD): import the page's line work into a drawing as lines (real mm). region_px limits the area. Set lg/ly/lc/lt for the imported lines; tag lets you remove them later. |
| scan_textsD | Text strings embedded in a PDF page with pixel and mm positions (vector PDFs). |
| drawing_infoC | Summary of a drawing (counts, layers, bbox). |
| drawing_addA | Add entities to a drawing (batch). Returns the new ids. defaults applies lg/ly/lc/lt to every entity that does not set them. entities: list of objects. Common keys: lg, ly (0-15 or hex "0".."F"), lc (1-9), lt (1-9), tag. {"type":"line","x1","y1","x2","y2"} {"type":"polyline","points":[[x,y],...],"closed":false} {"type":"rect","x","y","w","h","angle":0} (x,y = lower-left) {"type":"circle","cx","cy","r"} {"type":"arc","cx","cy","r","start","end"} (deg, CCW) {"type":"text","x","y","text","height":3,"width":3,"spacing":0,"angle":0,"align":"left|center|right","font"?,"cn"?} height/width/spacing are paper mm (図寸). x,y = baseline anchor (left-bottom unless align). {"type":"point","x","y"} {"type":"dimension","x1","y1","x2","y2","offset":500,"text"?,"text_height":3,"decimals":0} offset = real-mm distance from the measured points to the dimension line (sign = side). {"type":"solid","points":[[x,y]x3or4],"rgb":[r,g,b]?} Architectural (expand to Jw_cad lines/arcs/text): {"type":"wall","points":[[x,y],...],"thickness":150,"closed":false,"core":true,"core_ly":1,"core_extend":300, "openings":[{"at":1000,"width":800,"kind":"door|double_door|sliding|window|fixed|opening","hinge":"start|end","side":"+|-","frame":25}], "opening_lg":3,"opening_ly":0,"opening_lc":1} at = mm along the centre line; side "+" = left of travel {"type":"grid","xs":[0,3640],"ys":[0,2730],"x_labels":["X1","X2"],"y_labels":["Y1","Y2"],"extend":1500,"dims":false} {"type":"column","cx","cy","w":600,"h":600,"angle":0,"hatch":true} {"type":"room","x","y","name":"和室","height":5,"note":"6帖"} {"type":"pipe","points":[[x,y],...],"system":"給水|給湯|排水|通気|ガス|冷媒|ドレン|ダクト|給気|排気","diameter":"25A"} {"type":"equipment","kind":"toilet|sink|washbasin|bath|kitchen|ac_indoor|ac_outdoor|fan|cubicle|tank|elevator|box","x","y","w","h","angle","label"} A drawing created with a preset fills lg/ly/lc per type automatically (see presets_list). |
| drawing_entitiesC | Return entities of a drawing (optionally only those with given ids or tag). |
| drawing_removeA | Remove entities by id (or every entity with the given tag). Use clear=true to empty the drawing. |
| drawing_updateC | Replace one entity (same id) with new content. Fields not given are taken from the new object only. |
| drawing_layersC | Set/rename layer groups, layers and scales of a drawing. group_names={'0':'平面'}, layer_names={'0-1':'壁'}, group_scales={'1':'50'}. |
| drawing_previewC | Render a drawing to PNG and return the image (bbox in real mm to zoom). |
| drawing_exportC | Export a drawing. format: 'dxf' (open in Jw_cad via ファイル>開く, DXF), 'jwc_temp' (外部変形 text that JWMCP_import.bat feeds into an open Jw_cad drawing), or 'json'. Returns the output path. |
| drawing_import_jwwC | Import the entities of a .jww file (optionally filtered by lg/ly/types/bbox) into a drawing so they can be edited, re-exported or sent back to Jw_cad. |
| gaihen_setupB | Create the exchange folder and the three 外部変形 .bat files (JWMCP_send / send_all / import). exchange = folder on this machine (default ~/JW_MCP_Exchange or $JWMCP_EXCHANGE). win_exchange = the SAME folder as seen from the Windows PC running Jw_cad (e.g. 'G:\マイドライブ\JW_MCP_Exchange'). wait = seconds the .bat waits for a response. |
| gaihen_statusC | Bridge status: exchange folder, pending jobs from Jw_cad, unconsumed responses. |
| gaihen_jobsB | List jobs sent from Jw_cad (each = one 外部変形 run waiting for a response). |
| gaihen_readB | Read one job: scales per layer group, selection range, picked points, write settings, layer names and the selected entities (real mm). Use limit/offset for big selections. |
| gaihen_respondA | Answer a job: the entities are drawn into the open Jw_cad drawing as soon as the .bat sees the file. Give either entities (see drawing_add schema) or drawing=. delete_selected=true removes the originally selected figures first (replace). notice shows a message in Jw_cad. Coordinates are real mm in the job's layer group scales (gaihen_read → scales). |
| gaihen_cancelC | Cancel a job: Jw_cad reports 未実行 and changes nothing. |
| gaihen_prepare_importB | Place a drawing (or raw entities) in outbox/IMPORT.txt. The user then runs JWMCP_import.bat inside Jw_cad and the geometry appears in the open drawing with layer/colour/linetype attributes. |
| jwc_temp_parseC | Parse any JWC_TEMP.TXT-format file (e.g. one saved manually from Jw_cad) into entities. |
| gaihen_previewC | Render a job's selected entities to PNG and return the image. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 34 tools
A clear prefix scheme separates the four subsystems: jww_* for read-only .jww inspection, drawing_* for editable drawings, scan_* for raster/vector PDF conversion, and gaihen_* for the Jw_cad bridge. Within families some tools are close (jww_preview vs drawing_preview vs gaihen_preview, drawing_import_jww vs scan_vector_import, jww_info vs drawing_info), but the descriptions explain the source object well enough to disambiguate.
Every tool is snake_case with a namespace prefix (jww_, drawing_, scan_, gaihen_) plus an action or noun suffix, and the pattern is followed throughout. There is no mixing of camelCase, and the domain abbreviations (jww, gaihen, jwc) are used consistently.
34 tools is heavy, well above the comfortable 3-15 range. The breadth (four genuine subsystems of ~8 tools each) justifies much of it, but several near-duplicate previews/imports inflate the count and it would be cleaner split into sub-servers.
Coverage across read (.jww), edit (drawings), convert (scans), and the Jw_cad round-trip bridge is broad and near-complete CRUD for drawings. Minor gaps remain, e.g. no delete/rename for a saved drawing and no direct .jww write-back, but agents can work around these.