rhino3dm-mcp
PyPI
v0.6.0
Published by easehee — no publish provenance, so origin is unverified, but the source is public: the repository link below is self-declared yet readable, so you can inspect the code before adopting it.
MCP server connecting Claude to McNeel Rhino 8 and Grasshopper via rhino3dm and an in-Rhino bridge plugin.
The grade answers one question — how safe is this server for you to adopt — so it is computed in two auditable stages. Nothing below is an opinion or an LLM's guess; every line is a real term the deterministic engine applied, and the same input always yields the same number.
1. Threat score — 100 − 0 = 100. What the published surface and source actually contain:
The deterministic scan raised no scored threat in the surface it inspected — the threat score stayed at 100. Capability observations and advisory notes are recorded but never lower it.
2. Client adoption risk — 100 − 7 = 93. Three small, subtract-only factors that reflect your risk in adopting it — a clean scan proves less on a powerful, unverified or barely-inspectable package, so the grade says so plainly:
| Points | Adoption-risk factor |
|---|---|
| −6 | capability blast radius (high) — client exposure if the model is manipulated |
| −1 | publisher verification (public source) — no provenance, but the source is public and inspectable |
Capability observations and info notes are shown under Findings but never scored.
Open any row's finding below for the file, line and evidence behind a deduction.
This server (without client built-ins) exposes a complete data-exfiltration chain: rhino_bim_pset_get → rhino_viewport_image → rhino_drawing_sheet_create. Untrusted input is ingested, private data is read, and it can be sent to an external sink via the agent composing the tools (→). Static analysis proves the primitive exists, not that a specific run will occur.
Fix: Remove one leg of the trifecta: isolate untrusted-input tools from secret-reading tools and from egress tools, or require human approval between them.
Location: flow rhino_bim_pset_get → rhino_viewport_image → rhino_drawing_sheet_create
Tool "gh_save_file" can write, overwrite or delete files (keyword "save_file" in tool name). Verify it is scoped to a safe directory.
Fix: Constrain file operations to an explicit, non-sensitive root; reject path traversal.
Location: tool gh_save_file
Tool "gh_save_file" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.
Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.
Location: tool gh_save_file
Each tool and what it can reach — statically extracted from the published source.
gh_save_filewrites filesrhino_bim_pset_getingests untrusted inputrhino_drawing_sheet_createnetwork egressrhino_export_dxfnetwork egressrhino_export_igesnetwork egressrhino_export_stepnetwork egressrhino_get_module_functionsingests untrusted inputrhino_viewport_imagereads sensitive datagh_add_componentno sensitive capabilitygh_bake_to_rhinono sensitive capabilitygh_bind_template_parameterno sensitive capabilitygh_cluster_createno sensitive capabilitygh_cluster_expandno sensitive capabilitygh_component_listno sensitive capabilitygh_components_searchno sensitive capabilitygh_connect_componentsno sensitive capabilitygh_connect_manyno sensitive capabilitygh_data_tree_getno sensitive capabilitygh_data_tree_setno sensitive capabilitygh_delete_componentno sensitive capabilitygh_get_parameterno sensitive capabilitygh_load_templateno sensitive capabilitygh_new_canvasno sensitive capabilitygh_open_fileno sensitive capabilitygh_place_sliderno sensitive capabilitygh_plugin_listno sensitive capabilitygh_preview_toggleno sensitive capabilitygh_resetno sensitive capabilitygh_runno sensitive capabilitygh_run_templateno sensitive capabilitygh_set_panelno sensitive capabilitygh_set_parameterno sensitive capabilitygh_set_sliderno sensitive capabilitygh_set_toggleno sensitive capabilitygh_template_listno sensitive capabilityrhino_annotation_calloutno sensitive capabilityrhino_annotation_dimension_styleno sensitive capabilityrhino_annotation_north_arrowno sensitive capabilityrhino_annotation_revision_cloudno sensitive capabilityrhino_annotation_scale_barno sensitive capabilityrhino_arcno sensitive capabilityrhino_areano sensitive capabilityrhino_attractor_displace_pointsno sensitive capabilityrhino_batch_callno sensitive capabilityrhino_batch_modifyno sensitive capabilityrhino_bendno sensitive capabilityrhino_bim_metadata_setno sensitive capabilityrhino_bim_pset_deleteno sensitive capabilityrhino_bim_pset_setno sensitive capabilityrhino_block_defineno sensitive capabilityrhino_block_explodeno sensitive capabilityrhino_block_insertno sensitive capabilityrhino_block_listno sensitive capabilityrhino_block_redefineno sensitive capabilityrhino_bounding_boxno sensitive capabilityrhino_bridge_list_instancesno sensitive capabilityrhino_bridge_select_instanceno sensitive capabilityrhino_camera_setno sensitive capabilityrhino_circleno sensitive capabilityrhino_clipping_planeno sensitive capabilityrhino_contourno sensitive capabilityrhino_create_uv_gridno sensitive capabilityrhino_curvature_analysisno sensitive capabilityrhino_curve_continuityno sensitive capabilityrhino_curve_lengthno sensitive capabilityrhino_curve_point_atno sensitive capabilityrhino_curve_splitno sensitive capabilityrhino_dimension_alignedno sensitive capabilityrhino_dimension_angularno sensitive capabilityrhino_dimension_linearno sensitive capabilityrhino_direct_irradianceno sensitive capabilityrhino_display_mode_setno sensitive capabilityrhino_distanceno sensitive capabilityrhino_document_settingsno sensitive capabilityrhino_document_summaryno sensitive capabilityrhino_document_units_getno sensitive capabilityrhino_document_units_setno sensitive capabilityrhino_draft_angleno sensitive capabilityrhino_drawing_export_pdfno sensitive capabilityrhino_drawing_section_cutno sensitive capabilityrhino_drawing_title_block_addno sensitive capabilityrhino_drawing_view_placeno sensitive capabilityrhino_dup_borderno sensitive capabilityrhino_dup_edgeno sensitive capabilityrhino_ellipseno sensitive capabilityrhino_environment_setno sensitive capabilityrhino_evaluate_surfaceno sensitive capabilityrhino_execute_pythonno sensitive capabilityrhino_export_gbxmlno sensitive capabilityrhino_export_ifcno sensitive capabilityrhino_export_objno sensitive capabilityrhino_export_stlno sensitive capabilityrhino_flow_along_curveno sensitive capabilityrhino_get_control_pointsno sensitive capabilityrhino_get_rhinoscript_docsno sensitive capabilityrhino_get_selected_objectsno sensitive capabilityrhino_get_user_textno sensitive capabilityrhino_groupno sensitive capabilityrhino_hatchno sensitive capabilityrhino_helixno sensitive capabilityrhino_importno sensitive capabilityrhino_import_ifcno sensitive capabilityrhino_interpolate_curveno sensitive capabilityrhino_isocurveno sensitive capabilityrhino_layer_createno sensitive capabilityrhino_layer_deleteno sensitive capabilityrhino_layer_listno sensitive capabilityrhino_layer_set_colorno sensitive capabilityrhino_layer_set_materialno sensitive capabilityrhino_leaderno sensitive capabilityrhino_light_addno sensitive capabilityrhino_lineno sensitive capabilityrhino_list_objectsno sensitive capabilityrhino_list_rhinoscript_modulesno sensitive capabilityrhino_make2dno sensitive capabilityrhino_material_assignno sensitive capabilityrhino_material_createno sensitive capabilityrhino_material_preset_createno sensitive capabilityrhino_material_preset_listno sensitive capabilityrhino_mesh_boolean_differenceno sensitive capabilityrhino_mesh_boolean_unionno sensitive capabilityrhino_mesh_boxno sensitive capabilityrhino_mesh_from_brepno sensitive capabilityrhino_mesh_from_surfaceno sensitive capabilityrhino_named_view_saveno sensitive capabilityrhino_nurbs_curveno sensitive capabilityrhino_object_deleteno sensitive capabilityrhino_object_infono sensitive capabilityrhino_object_move_to_layerno sensitive capabilityrhino_object_quantityno sensitive capabilityrhino_object_selectno sensitive capabilityrhino_openno sensitive capabilityrhino_origin_setno sensitive capabilityrhino_panel_curvature_classifyno sensitive capabilityrhino_panel_framesno sensitive capabilityrhino_panel_planarityno sensitive capabilityrhino_panelize_surfaceno sensitive capabilityrhino_place_gridno sensitive capabilityrhino_pointno sensitive capabilityrhino_polygonno sensitive capabilityrhino_polylineno sensitive capabilityrhino_probe_intersectionno sensitive capabilityrhino_rebuild_curveno sensitive capabilityrhino_rebuild_surfaceno sensitive capabilityrhino_rectangleno sensitive capabilityrhino_redono sensitive capabilityrhino_reduce_meshno sensitive capabilityrhino_render_queue_cancelno sensitive capabilityrhino_render_queue_listno sensitive capabilityrhino_render_queue_statusno sensitive capabilityrhino_render_queue_submitno sensitive capabilityrhino_render_setupno sensitive capabilityrhino_render_to_fileno sensitive capabilityrhino_render_viewportno sensitive capabilityrhino_replicate_along_curveno sensitive capabilityrhino_report_mesh_healthno sensitive capabilityrhino_saveno sensitive capabilityrhino_scatterno sensitive capabilityrhino_schedule_by_layerno sensitive capabilityrhino_schedule_by_materialno sensitive capabilityrhino_schedule_by_user_textno sensitive capabilityrhino_schedule_export_csvno sensitive capabilityrhino_screenshotno sensitive capabilityrhino_search_rhinoscript_functionsno sensitive capabilityrhino_sectionno sensitive capabilityrhino_section_at_axisno sensitive capabilityrhino_set_control_pointsno sensitive capabilityrhino_set_user_textno sensitive capabilityrhino_shadow_projectno sensitive capabilityrhino_skin_from_sectionsno sensitive capabilityrhino_smooth_polylineno sensitive capabilityrhino_solar_exposure_estimateno sensitive capabilityrhino_spiralno sensitive capabilityrhino_stack_floorsno sensitive capabilityrhino_sun_pathno sensitive capabilityrhino_sun_positionno sensitive capabilityrhino_surface_closest_pointno sensitive capabilityrhino_surface_developable_scoreno sensitive capabilityrhino_surface_from_pointsno sensitive capabilityrhino_surface_normal_atno sensitive capabilityrhino_taperno sensitive capabilityrhino_textno sensitive capabilityrhino_text_dotno sensitive capabilityrhino_tolerance_getno sensitive capabilityrhino_tolerance_setno sensitive capabilityrhino_turntableno sensitive capabilityrhino_turntable_renderno sensitive capabilityrhino_twistno sensitive capabilityrhino_undono sensitive capabilityrhino_unrollno sensitive capabilityrhino_unweld_meshno sensitive capabilityrhino_uv_grid_panelsno sensitive capabilityrhino_validate_brepno sensitive capabilityrhino_view_setno sensitive capabilityrhino_volumeno sensitive capabilityrhino_weld_meshno sensitive capabilityrhino_zebrano sensitive capabilityrhino_zoom_extentno sensitive capabilityrhino_zoom_layerno sensitive capabilityrhino_zoom_objectno sensitive capabilityCross-tool combinations that form a data-exfiltration primitive (untrusted input → sensitive source → external sink).
Scan history per published version. The engine is deterministic — the same version always yields the same score, so a changed score means the package itself changed.
| Version | Score | Findings | Engine | Scanned |
|---|---|---|---|---|
v0.6.0 latest |
A 93/100 | 3 | 1.13.0 | 2026-08-25 |
Show this server's live Trust Score in your README, docs or website. The badge is served straight from the registry and updates automatically after every rescan — no API key needed. It links back to this page, so anyone who sees the grade can also read the findings behind it instead of taking a number on faith.
The score above is reproducible: the same package version always yields the same result. Run it locally or over the free API — no account, no LLM, fully deterministic.
npx mcptrustchecker scan rhino3dm-mcp --online --registry pypi
MCP AgentChat - 让 AI Agent 通过 Telegram 与用户实时交互:发送消息、图片,等待用户回复
A Model Context Protocol (MCP) server for Airthings Air Quality Monitor devices.
MCP server for Anki
TypeScript package for reading and searching Apple Notes on macOS via direct SQLite access. Includes markdown conversion, attachment support, and offers a local MCP server!
Verified biotech catalyst calendar (PDUFA/AdComm/trial readouts) anchored to official sources.
Appointment booking platform letting agents check provider availability and create bookings.