Clio Kit MCP Server

clio-kit PyPI v2.10.6

Published by iowarp — 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.

CLIO Kit - MCP Servers, Clients, and Tools for AI Agents

Trust grade
A
93/100
Last scanned get badge →
Trust
A · 93/100
Adoption risk for you: the threat score, then adjusted down for blast radius, publisher verification and how much the scan could see. Deterministic; every point is auditable.
Capability
High
Blast radius if it went rogue — what the server’s tools could reach. Independent of trust.
Coverage
Source
How much the scan could actually inspect. Shallow coverage is stated, never hidden.
Share this Trust Score
𝕏 Share LinkedIn Reddit
A Why this grade threat 100 − adoption risk = 93/100

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:

PointsAdoption-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.

Findings 12

high Dynamic code execution in server code (clio-kit-mcp-servers/hdf5/src/hdf5_mcp/server.py)MTC-SRC-001

In the server's implementation (`clio-kit-mcp-servers/hdf5/src/hdf5_mcp/server.py:943`): Evaluating strings as code is the most direct RCE primitive; if any tool input reaches it, the server executes attacker-chosen code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: slice_obj = eval(f"np.s_[{slice_spec}]") except Exception: return f"Error: Invalid slice

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server clio-kit-mcp-servers/hdf5/src/hdf5_mcp/server.py

high Shell/command execution in server code (clio-agentic-search/src/clio_agentic_search/tasks.py)MTC-SRC-002

In the server's implementation (`clio-agentic-search/src/clio_agentic_search/tasks.py:9`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: -> int: completed = subprocess.run(command, check=False) return completed.returncode def lint() -> None: r

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server clio-agentic-search/src/clio_agentic_search/tasks.py

high Shell/command execution in server code (clio-kit-mcp-servers/chronolog/src/chronomcp/utils/helpers.py)MTC-SRC-002

In the server's implementation (`clio-kit-mcp-servers/chronolog/src/chronomcp/utils/helpers.py:34`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: r(cmd_args): proc = subprocess.run( cmd_args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server clio-kit-mcp-servers/chronolog/src/chronomcp/utils/helpers.py

high Shell/command execution in server code (clio-kit-mcp-servers/jarvis/src/jarvis_mcp/capabilities/jarvis_handler.py)MTC-SRC-002

In the server's implementation (`clio-kit-mcp-servers/jarvis/src/jarvis_mcp/capabilities/jarvis_handler.py:2322`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: : process = subprocess.Popen( argv, stdin=stdin_file, stdout

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server clio-kit-mcp-servers/jarvis/src/jarvis_mcp/capabilities/jarvis_handler.py

high Shell/command execution in server code (clio-kit-mcp-servers/jarvis/src/jarvis_mcp/windows_job.py)MTC-SRC-002

In the server's implementation (`clio-kit-mcp-servers/jarvis/src/jarvis_mcp/windows_job.py:99`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: SystemExit(125) child = subprocess.Popen(command, shell=message["shell"], stdin=descriptor) raise SystemExit(child.wait(

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server clio-kit-mcp-servers/jarvis/src/jarvis_mcp/windows_job.py

high Shell/command execution in server code (clio-kit-mcp-servers/ndp/src/ndp_mcp/server.py)MTC-SRC-002

In the server's implementation (`clio-kit-mcp-servers/ndp/src/ndp_mcp/server.py:168`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: ry: completed = subprocess.run( command, check=False, capture_output=True,

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server clio-kit-mcp-servers/ndp/src/ndp_mcp/server.py

high Shell/command execution in server code (clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/remote_node_info.py)MTC-SRC-002

In the server's implementation (`clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/remote_node_info.py:216`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: ommand result = subprocess.run( ssh_cmd, capture_output=True, text=True,

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/remote_node_info.py

high Shell/command execution in server code (clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/utils.py)MTC-SRC-002

In the server's implementation (`clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/utils.py:35`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: try: result = subprocess.run( command, capture_output=True, text=True, timeout=timeout )

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/utils.py

medium Untrusted input can drive an external actionMTC-FLOW-005

Untrusted-input tools ([download_paper_pdf, download_multiple_pdfs]) co-exist with external-action tools ([export_to_bibtex, export_to_json, export_to_csv, export_to_text]). A prompt injection could cause unwanted external actions, though no direct sensitive-data leak path was found.

Evidence: untrusted [download_paper_pdf, download_multiple_pdfs] → sinks [export_to_bibtex, export_to_json, export_to_csv, export_to_text]

Fix: Require confirmation for state-changing/egress actions triggered after processing untrusted content.

Location: flow download_paper_pdf → export_to_bibtex

low Shell/command execution in packaging/dev tooling (clio-kit-mcp-servers/jarvis/scripts/live_ares_semantic_mcp_probe.py)MTC-SRC-002

In a packaging/dev/install script (shipped, but not the server runtime) (`clio-kit-mcp-servers/jarvis/scripts/live_ares_semantic_mcp_probe.py:36`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: self.process = subprocess.Popen( command, stdin=subprocess.PIPE, stdout=sub

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server clio-kit-mcp-servers/jarvis/scripts/live_ares_semantic_mcp_probe.py

low Shell/command execution in packaging/dev tooling (clio-kit-mcp-servers/paraview/scripts/automate_setup.py)MTC-SRC-002

In a packaging/dev/install script (shipped, but not the server runtime) (`clio-kit-mcp-servers/paraview/scripts/automate_setup.py:52`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: process = subprocess.Popen( cmd, cwd=cwd or self.project_root,

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server clio-kit-mcp-servers/paraview/scripts/automate_setup.py

low Shell/command execution in packaging/dev tooling (clio-kit-mcp-servers/paraview/scripts/build_paraview.py)MTC-SRC-002

In a packaging/dev/install script (shipped, but not the server runtime) (`clio-kit-mcp-servers/paraview/scripts/build_paraview.py:23`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: d.split() result = subprocess.run(cmd, cwd=cwd, capture_output=False, text=True) if check and result.returncode

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server clio-kit-mcp-servers/paraview/scripts/build_paraview.py

Tools 154

Each tool and what it can reach — statically extracted from the published source.

  • download_multiple_pdfsingests untrusted input
  • download_paper_pdfingests untrusted input
  • export_to_bibtexnetwork egress
  • export_to_csvnetwork egress
  • export_to_jsonnetwork egress
  • export_to_textnetwork egress
  • allocate_slurm_nodesno sensitive capability
  • analyze_file_access_patternsno sensitive capability
  • analyze_log_statisticsno sensitive capability
  • analyze_mpiio_operationsno sensitive capability
Show 144 more tools ↓
  • analyze_posix_operationsno sensitive capability
  • append_pkgno sensitive capability
  • apply_field_coloringno sensitive capability
  • apply_filter_presetno sensitive capability
  • build_pipeline_envno sensitive capability
  • cancel_slurm_jobno sensitive capability
  • check_job_statusno sensitive capability
  • clean_datano sensitive capability
  • compare_darshan_logsno sensitive capability
  • compress_file_toolno sensitive capability
  • compute_surface_areano sensitive capability
  • configure_pkgno sensitive capability
  • configure_volume_displayno sensitive capability
  • create_data_sliceno sensitive capability
  • create_geometric_shapeno sensitive capability
  • create_pipelineno sensitive capability
  • data_infono sensitive capability
  • deallocate_slurm_nodesno sensitive capability
  • decompress_file_toolno sensitive capability
  • destroy_pipelineno sensitive capability
  • detect_log_patternsno sensitive capability
  • edit_volume_opacityno sensitive capability
  • export_pipelineno sensitive capability
  • filter_by_keywordno sensitive capability
  • filter_by_time_rangeno sensitive capability
  • filter_datano sensitive capability
  • filter_logsno sensitive capability
  • find_similar_papersno sensitive capability
  • generate_flow_streamlinesno sensitive capability
  • generate_io_summary_reportno sensitive capability
  • generate_isosurfaceno sensitive capability
  • generate_summary_reportno sensitive capability
  • get_active_source_names_by_typeno sensitive capability
  • get_allocation_statusno sensitive capability
  • get_available_arraysno sensitive capability
  • get_column_preview_toolno sensitive capability
  • get_cpu_infono sensitive capability
  • get_dataset_detailsno sensitive capability
  • get_disk_infono sensitive capability
  • get_gpu_infono sensitive capability
  • get_histogramno sensitive capability
  • get_io_performance_metricsno sensitive capability
  • get_job_detailsno sensitive capability
  • get_job_outputno sensitive capability
  • get_job_summaryno sensitive capability
  • get_memory_infono sensitive capability
  • get_network_infono sensitive capability
  • get_node_infono sensitive capability
  • get_paper_detailsno sensitive capability
  • get_pdf_urlno sensitive capability
  • get_performance_infono sensitive capability
  • get_pipelineno sensitive capability
  • get_pkg_configno sensitive capability
  • get_process_infono sensitive capability
  • get_queue_infono sensitive capability
  • get_recent_papersno sensitive capability
  • get_remote_node_infono sensitive capability
  • get_sensor_infono sensitive capability
  • get_slurm_infono sensitive capability
  • get_system_infono sensitive capability
  • get_timeline_analysisno sensitive capability
  • handle_missing_datano sensitive capability
  • health_checkno sensitive capability
  • identify_io_bottlenecksno sensitive capability
  • inspect_attributesno sensitive capability
  • inspect_variablesno sensitive capability
  • inspect_variables_at_stepno sensitive capability
  • jm_add_repono sensitive capability
  • jm_bootstrap_fromno sensitive capability
  • jm_bootstrap_listno sensitive capability
  • jm_cdno sensitive capability
  • jm_construct_pkgno sensitive capability
  • jm_create_configno sensitive capability
  • jm_get_repono sensitive capability
  • jm_graph_buildno sensitive capability
  • jm_graph_modifyno sensitive capability
  • jm_graph_showno sensitive capability
  • jm_list_pipelinesno sensitive capability
  • jm_list_reposno sensitive capability
  • jm_load_configno sensitive capability
  • jm_promote_repono sensitive capability
  • jm_remove_repono sensitive capability
  • jm_save_configno sensitive capability
  • jm_set_hostfileno sensitive capability
  • list_available_hdf5_filesno sensitive capability
  • list_bp5no sensitive capability
  • list_commandsno sensitive capability
  • list_organizationsno sensitive capability
  • list_slurm_jobsno sensitive capability
  • load_darshan_logno sensitive capability
  • load_datano sensitive capability
  • load_pipelineno sensitive capability
  • merge_datasetsno sensitive capability
  • module_availno sensitive capability
  • module_listno sensitive capability
  • module_loadno sensitive capability
  • module_restoreno sensitive capability
  • module_saveno sensitive capability
  • module_savelistno sensitive capability
  • module_showno sensitive capability
  • module_spiderno sensitive capability
  • module_swapno sensitive capability
  • module_unloadno sensitive capability
  • optimize_memoryno sensitive capability
  • parallel_sort_large_fileno sensitive capability
  • pivot_tableno sensitive capability
  • plot_over_lineno sensitive capability
  • profile_csvno sensitive capability
  • profile_datano sensitive capability
  • read_slice_toolno sensitive capability
  • read_variable_at_stepno sensitive capability
  • record_interactionno sensitive capability
  • refresh_hdf5_resourcesno sensitive capability
  • reset_camerano sensitive capability
  • retrieve_interactionno sensitive capability
  • rotate_camerano sensitive capability
  • run_pipelineno sensitive capability
  • save_contour_as_stlno sensitive capability
  • save_datano sensitive capability
  • search_arxivno sensitive capability
  • search_by_abstractno sensitive capability
  • search_by_subjectno sensitive capability
  • search_by_titleno sensitive capability
  • search_datasetsno sensitive capability
  • search_date_rangeno sensitive capability
  • search_papers_by_authorno sensitive capability
  • set_active_sourceno sensitive capability
  • set_color_mapno sensitive capability
  • set_color_map_presetno sensitive capability
  • set_representation_typeno sensitive capability
  • show_screenshot_previewno sensitive capability
  • sort_log_by_timestampno sensitive capability
  • start_chronologno sensitive capability
  • statistical_summaryno sensitive capability
  • stop_chronologno sensitive capability
  • submit_array_jobno sensitive capability
  • submit_slurm_jobno sensitive capability
  • summarize_toolno sensitive capability
  • take_viewport_screenshotno sensitive capability
  • time_series_operationsno sensitive capability
  • toggle_visibilityno sensitive capability
  • update_pipelineno sensitive capability
  • validate_datano sensitive capability
  • warp_by_vectorno sensitive capability

Toxic flows 1

Cross-tool combinations that form a data-exfiltration primitive (untrusted input → sensitive source → external sink).

What this scan could not see

Versions 10

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.

VersionScoreFindingsEngineScanned
v2.10.6 latest A 93/100 12 1.13.0 2026-08-29
v2.10.5 A 93/100 12 1.13.0 2026-08-25
v2.10.3 A 93/100 12 1.12.1 2026-08-21
v2.10.1 A 93/100 12 1.12.1 2026-08-19
v2.9.0 A 93/100 12 1.12.1 2026-08-14
Show 5 more versions ↓
v2.7.2 A 93/100 12 1.12.1 2026-08-09
v2.7.0 A 93/100 11 1.12.1 2026-08-07
v2.6.5 A 93/100 12 1.12.1 2026-07-27
v2.6.3 A 93/100 12 1.9.0 2026-07-24
v2.6.2 A 93/100 12 1.9.0 2026-07-23

Embed this score

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.

MCP Trust Score: A · 93/100
Markdown (GitHub README)
[![MCP Trust Score](https://mcptrustchecker.com/registry/clio-kit/badge.svg)](https://mcptrustchecker.com/registry/clio-kit)
HTML
<a href="https://mcptrustchecker.com/registry/clio-kit"><img src="https://mcptrustchecker.com/registry/clio-kit/badge.svg" alt="MCP Trust Score" height="20"></a>
Prefer shields.io styling? Point it at https://mcptrustchecker.com/registry/clio-kit/badge.json via https://img.shields.io/endpoint?url=…

Verify this score yourself

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 clio-kit --online --registry pypi

Use the free API → How scoring works

More in Cloud & DevOps