clio-kit 2.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (506) hide show
  1. clio_kit/__init__.py +334 -0
  2. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/.claude-plugin/plugin.json +5 -0
  3. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/.gitignore +27 -0
  4. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/.mcp.json +9 -0
  5. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/README.md +323 -0
  6. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/docs/adios_setup.md +86 -0
  7. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/docs/basic_install.md +110 -0
  8. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/docs/example_uses.md +113 -0
  9. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/pyproject.toml +57 -0
  10. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/sample_data/data1.bp/data.0 +0 -0
  11. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/sample_data/data1.bp/md.0 +0 -0
  12. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/sample_data/data1.bp/md.idx +0 -0
  13. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/sample_data/data1.bp/mmd.0 +0 -0
  14. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/sample_data/data2.bp/data.0 +0 -0
  15. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/sample_data/data2.bp/md.0 +0 -0
  16. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/sample_data/data2.bp/md.idx +0 -0
  17. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/sample_data/data2.bp/mmd.0 +0 -0
  18. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/sample_data/data3.bp/data.0 +0 -0
  19. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/sample_data/data3.bp/md.0 +0 -0
  20. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/sample_data/data3.bp/md.idx +0 -0
  21. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/sample_data/data3.bp/mmd.0 +0 -0
  22. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/sample_data/data4.bp/data.0 +0 -0
  23. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/sample_data/data4.bp/md.0 +0 -0
  24. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/sample_data/data4.bp/md.idx +0 -0
  25. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/sample_data/data4.bp/mmd.0 +0 -0
  26. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/server.json +56 -0
  27. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/src/adios_mcp/__init__.py +0 -0
  28. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/src/adios_mcp/implementation/__init__.py +21 -0
  29. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/src/adios_mcp/implementation/bp5_attributes.py +52 -0
  30. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/src/adios_mcp/implementation/bp5_inspect_variables.py +36 -0
  31. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/src/adios_mcp/implementation/bp5_inspect_variables_at_step.py +46 -0
  32. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/src/adios_mcp/implementation/bp5_list.py +16 -0
  33. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/src/adios_mcp/implementation/bp5_read_variable_at_step.py +39 -0
  34. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/src/adios_mcp/mcp_handlers.py +100 -0
  35. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/src/adios_mcp/server.py +164 -0
  36. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/tests/__init__.py +0 -0
  37. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/tests/test_bp5_attributes.py +140 -0
  38. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/tests/test_bp5_inspect_variables.py +165 -0
  39. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/tests/test_bp5_inspect_variables_at_step.py +166 -0
  40. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/tests/test_bp5_list.py +152 -0
  41. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/tests/test_bp5_read_variable_at_step.py +196 -0
  42. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/tests/test_mcp_handlers.py +468 -0
  43. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/tests/test_server.py +350 -0
  44. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/adios/uv.lock +1840 -0
  45. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/.claude-plugin/plugin.json +5 -0
  46. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/.gitignore +30 -0
  47. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/.mcp.json +9 -0
  48. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/README.md +366 -0
  49. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/demo.py +91 -0
  50. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/docs/basic_install.md +115 -0
  51. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/pyproject.toml +45 -0
  52. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/server.json +87 -0
  53. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/__init__.py +0 -0
  54. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/__init__.py +21 -0
  55. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/arxiv_base.py +183 -0
  56. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/category_search.py +89 -0
  57. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/date_search.py +55 -0
  58. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/download_paper.py +201 -0
  59. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/export_utils.py +110 -0
  60. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/paper_details.py +145 -0
  61. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/capabilities/text_search.py +107 -0
  62. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/mcp_handlers.py +370 -0
  63. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/src/arxiv_mcp/server.py +300 -0
  64. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/tests/__init__.py +0 -0
  65. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/tests/test_advanced_scenarios.py +463 -0
  66. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/tests/test_arxiv_base.py +393 -0
  67. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/tests/test_arxiv_base_errors.py +512 -0
  68. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/tests/test_category_search.py +97 -0
  69. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/tests/test_date_search.py +245 -0
  70. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/tests/test_download_paper.py +220 -0
  71. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/tests/test_edge_cases.py +342 -0
  72. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/tests/test_export_utils.py +170 -0
  73. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/tests/test_fastmcp_tools.py +415 -0
  74. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/tests/test_integration.py +201 -0
  75. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/tests/test_mcp_handlers.py +826 -0
  76. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/tests/test_paper_details.py +146 -0
  77. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/tests/test_server.py +934 -0
  78. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/tests/test_text_search.py +123 -0
  79. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/arxiv/uv.lock +1769 -0
  80. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/.claude-plugin/plugin.json +5 -0
  81. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/.mcp.json +9 -0
  82. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/README.md +224 -0
  83. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/assets/mcp-client.png +0 -0
  84. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/assets/mcp-clientstartchronolog.png +0 -0
  85. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/assets/mcp-retievecopilot.png +0 -0
  86. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/assets/mcp-retrieve-diseasepred.png +0 -0
  87. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/docs/Chronolog_setup.md +146 -0
  88. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/pyproject.toml +63 -0
  89. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/server.json +51 -0
  90. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/src/chronomcp/__init__.py +21 -0
  91. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/src/chronomcp/capabilities/__init__.py +0 -0
  92. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/src/chronomcp/capabilities/record_handler.py +18 -0
  93. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/src/chronomcp/capabilities/retrieve_handler.py +45 -0
  94. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/src/chronomcp/capabilities/start_handler.py +37 -0
  95. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/src/chronomcp/capabilities/stop_handler.py +25 -0
  96. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/src/chronomcp/reader_script/CMakeLists.txt +46 -0
  97. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/src/chronomcp/reader_script/HDF5ArchiveReadingAgent.h +140 -0
  98. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/src/chronomcp/reader_script/reader.cpp +113 -0
  99. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/src/chronomcp/server.py +115 -0
  100. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/src/chronomcp/utils/config.py +47 -0
  101. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/src/chronomcp/utils/helpers.py +37 -0
  102. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/tests/__init__.py +0 -0
  103. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/tests/test_helpers.py +36 -0
  104. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/tests/test_integration.py +61 -0
  105. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/tests/test_record_handler.py +67 -0
  106. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/tests/test_retrieve_handler.py +71 -0
  107. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/tests/test_server.py +113 -0
  108. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/tests/test_start_handler.py +39 -0
  109. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/tests/test_stop_handler.py +49 -0
  110. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/tests/test_utils.py +47 -0
  111. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/chronolog/uv.lock +1830 -0
  112. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/.claude-plugin/plugin.json +5 -0
  113. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/.gitignore +54 -0
  114. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/.mcp.json +9 -0
  115. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/README.md +291 -0
  116. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/data/sample_data.csv +51 -0
  117. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/data/sample_log.txt +93 -0
  118. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/pyproject.toml +44 -0
  119. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/pytest.ini +6 -0
  120. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/server.json +43 -0
  121. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/src/compression_mcp/__init__.py +0 -0
  122. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/src/compression_mcp/capabilities/__init__.py +21 -0
  123. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/src/compression_mcp/capabilities/compression_base.py +99 -0
  124. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/src/compression_mcp/mcp_handlers.py +40 -0
  125. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/src/compression_mcp/server.py +108 -0
  126. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/tests/__init__.py +1 -0
  127. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/tests/test_compression_handler.py +109 -0
  128. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/tests/test_integration.py +34 -0
  129. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/tests/test_mcp_handlers.py +33 -0
  130. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/tests/test_server_basic.py +155 -0
  131. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/tests/test_server_coverage_completion.py +104 -0
  132. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/tests/test_server_execution_simple.py +132 -0
  133. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/compression/uv.lock +1781 -0
  134. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/darshan/.claude-plugin/plugin.json +5 -0
  135. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/darshan/.mcp.json +9 -0
  136. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/darshan/README.md +334 -0
  137. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/darshan/pyproject.toml +62 -0
  138. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/darshan/server.json +75 -0
  139. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/darshan/src/darshan_mcp/__init__.py +21 -0
  140. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/darshan/src/darshan_mcp/capabilities/__init__.py +1 -0
  141. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/darshan/src/darshan_mcp/capabilities/darshan_parser.py +857 -0
  142. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/darshan/src/darshan_mcp/server.py +315 -0
  143. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/darshan/tests/__init__.py +1 -0
  144. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/darshan/tests/test_darshan_parser.py +400 -0
  145. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/darshan/tests/test_darshan_parser_error_paths.py +454 -0
  146. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/darshan/tests/test_darshan_parser_posix_mpiio.py +460 -0
  147. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/darshan/tests/test_darshan_parser_text_parsing.py +519 -0
  148. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/darshan/tests/test_darshan_parser_timeline.py +506 -0
  149. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/darshan/tests/test_server.py +360 -0
  150. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/darshan/tests/test_server_main.py +156 -0
  151. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/darshan/uv.lock +2525 -0
  152. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/.claude-plugin/plugin.json +5 -0
  153. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/.gitignore +88 -0
  154. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/.mcp.json +9 -0
  155. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/README.md +725 -0
  156. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/TESTING.md +291 -0
  157. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/docs/ARCHITECTURE.md +425 -0
  158. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/docs/EXAMPLES.md +421 -0
  159. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/docs/MIGRATION.md +257 -0
  160. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/docs/TOOLS.md +499 -0
  161. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/docs/TRANSPORTS.md +274 -0
  162. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/examples/README.md +103 -0
  163. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/examples/create_demo_data.py +70 -0
  164. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/examples/demo_script.py +106 -0
  165. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/pyproject.toml +66 -0
  166. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/server.json +165 -0
  167. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/src/hdf5_mcp/__init__.py +21 -0
  168. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/src/hdf5_mcp/config.py +409 -0
  169. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/src/hdf5_mcp/resources.py +610 -0
  170. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/src/hdf5_mcp/server.py +2363 -0
  171. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/src/hdf5_mcp/utils.py +384 -0
  172. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/tests/conftest.py +145 -0
  173. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/tests/test_config_module.py +836 -0
  174. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/tests/test_placeholder.py +6 -0
  175. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/tests/test_resources_module.py +870 -0
  176. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/tests/test_utils_module.py +720 -0
  177. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/hdf5/uv.lock +2103 -0
  178. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/.claude-plugin/plugin.json +5 -0
  179. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/.mcp.json +9 -0
  180. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/README.md +582 -0
  181. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/docs/GUIDE.md +105 -0
  182. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 160800.png +0 -0
  183. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 162219.png +0 -0
  184. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 162322.png +0 -0
  185. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 162545.png +0 -0
  186. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 162922.png +0 -0
  187. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 163023.png +0 -0
  188. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 163516.png +0 -0
  189. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 163651.png +0 -0
  190. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/docs/assets/Screenshot 2025-05-15 163759.png +0 -0
  191. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/docs/basic_install.md +93 -0
  192. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/pyproject.toml +55 -0
  193. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/requirements.txt +9 -0
  194. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/server.json +150 -0
  195. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/__init__.py +0 -0
  196. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/capabilities/__init__.py +21 -0
  197. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/capabilities/jarvis_handler.py +144 -0
  198. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/src/jarvis_mcp/server.py +612 -0
  199. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/tests/__init__.py +1 -0
  200. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/tests/conftest.py +180 -0
  201. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/tests/run_tests.py +150 -0
  202. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/tests/test_basic.py +267 -0
  203. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/tests/test_edge_cases.py +361 -0
  204. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/tests/test_integration.py +395 -0
  205. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/tests/test_jarvis_handler.py +479 -0
  206. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/tests/test_performance.py +0 -0
  207. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/tests/test_server.py +700 -0
  208. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/tests/test_server_direct.py +655 -0
  209. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/tests/utils.py +593 -0
  210. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/jarvis/uv.lock +2081 -0
  211. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/lmod/.claude-plugin/plugin.json +5 -0
  212. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/lmod/.mcp.json +9 -0
  213. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/lmod/README.md +328 -0
  214. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/lmod/pyproject.toml +44 -0
  215. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/lmod/server.json +75 -0
  216. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/lmod/src/lmod_mcp/__init__.py +0 -0
  217. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/lmod/src/lmod_mcp/capabilities/__init__.py +21 -0
  218. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/lmod/src/lmod_mcp/capabilities/lmod_handler.py +397 -0
  219. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/lmod/src/lmod_mcp/server.py +275 -0
  220. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/lmod/tests/__init__.py +1 -0
  221. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/lmod/tests/test_lmod_handler.py +446 -0
  222. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/lmod/tests/test_server.py +462 -0
  223. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/lmod/uv.lock +1749 -0
  224. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/ndp/.claude-plugin/plugin.json +5 -0
  225. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/ndp/.mcp.json +9 -0
  226. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/ndp/README.md +282 -0
  227. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/ndp/docs/mcp_development_guide.md +660 -0
  228. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/ndp/docs/ndp_api.md +220 -0
  229. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/ndp/docs/ndp_docs.md +305 -0
  230. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/ndp/pyproject.toml +71 -0
  231. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/ndp/server.json +47 -0
  232. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/ndp/src/ndp_mcp/__init__.py +8 -0
  233. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/ndp/src/ndp_mcp/server.py +395 -0
  234. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/ndp/tests/__init__.py +1 -0
  235. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/ndp/tests/conftest.py +61 -0
  236. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/ndp/tests/test_init.py +31 -0
  237. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/ndp/tests/test_main.py +135 -0
  238. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/ndp/tests/test_mcp_tool_handlers.py +509 -0
  239. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/ndp/tests/test_mcp_tools.py +35 -0
  240. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/ndp/tests/test_ndp_client.py +324 -0
  241. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/ndp/tests/test_server.py +129 -0
  242. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/ndp/uv.lock +1976 -0
  243. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/.claude-plugin/plugin.json +5 -0
  244. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/.gitignore +257 -0
  245. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/.mcp.json +9 -0
  246. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/README.md +305 -0
  247. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/pyproject.toml +48 -0
  248. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/server.json +78 -0
  249. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/__init__.py +0 -0
  250. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/__init__.py +21 -0
  251. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/cpu_info.py +104 -0
  252. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/disk_info.py +112 -0
  253. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/gpu_info.py +118 -0
  254. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/hardware_summary.py +91 -0
  255. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/memory_info.py +71 -0
  256. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/network_info.py +127 -0
  257. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/performance_monitor.py +128 -0
  258. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/process_info.py +101 -0
  259. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/remote_node_info.py +478 -0
  260. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/sensor_info.py +132 -0
  261. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/system_info.py +78 -0
  262. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/capabilities/utils.py +107 -0
  263. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/mcp_handlers.py +819 -0
  264. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/server.py +376 -0
  265. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/utils/__init__.py +21 -0
  266. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/src/node_hardware_mcp/utils/output_formatter.py +347 -0
  267. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/tests/conftest.py +230 -0
  268. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/tests/test_capabilities.py +703 -0
  269. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/tests/test_complete.py +431 -0
  270. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/tests/test_coverage_boost.py +1031 -0
  271. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/tests/test_direct_coverage.py +911 -0
  272. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/tests/test_mcp_handlers.py +428 -0
  273. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/node-hardware/tests/test_server.py +77 -0
  274. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/.claude-plugin/plugin.json +5 -0
  275. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/.gitignore +237 -0
  276. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/.mcp.json +9 -0
  277. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/README.md +329 -0
  278. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/example_script/create_sample_data.py +273 -0
  279. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/pyproject.toml +72 -0
  280. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/pytest.ini +12 -0
  281. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/server.json +95 -0
  282. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/src/pandas_mcp/__init__.py +0 -0
  283. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/__init__.py +21 -0
  284. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/data_cleaning.py +302 -0
  285. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/data_io.py +294 -0
  286. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/data_profiling.py +209 -0
  287. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/filtering.py +378 -0
  288. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/memory_optimization.py +384 -0
  289. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/output_formatter.py +373 -0
  290. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/pandas_statistics.py +203 -0
  291. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/time_series.py +319 -0
  292. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/transformations.py +359 -0
  293. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/src/pandas_mcp/implementation/validation.py +411 -0
  294. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/src/pandas_mcp/mcp_handlers.py +176 -0
  295. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/src/pandas_mcp/server.py +666 -0
  296. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/tests/__init__.py +1 -0
  297. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/tests/test_capabilities.py +213 -0
  298. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/tests/test_data_cleaning.py +367 -0
  299. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/tests/test_data_io.py +563 -0
  300. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/tests/test_data_profiling.py +313 -0
  301. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/tests/test_filtering.py +498 -0
  302. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/tests/test_mcp_handlers.py +175 -0
  303. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/tests/test_memory_optimization.py +496 -0
  304. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/tests/test_output_formatter.py +398 -0
  305. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/tests/test_pandas_statistics.py +380 -0
  306. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/tests/test_time_series.py +343 -0
  307. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/tests/test_transformations.py +522 -0
  308. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/pandas/tests/test_validation.py +396 -0
  309. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/.claude-plugin/plugin.json +5 -0
  310. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/.gitignore +29 -0
  311. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/.mcp.json +9 -0
  312. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/README.md +357 -0
  313. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/USAGE_GUIDE.md +188 -0
  314. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/pyproject.toml +46 -0
  315. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/pytest.ini +4 -0
  316. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/server.json +87 -0
  317. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/__init__.py +0 -0
  318. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/implementation/__init__.py +21 -0
  319. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/implementation/export_handler.py +314 -0
  320. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/implementation/filter_handler.py +619 -0
  321. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/implementation/parallel_processor.py +574 -0
  322. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/implementation/pattern_detection.py +536 -0
  323. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/implementation/sort_handler.py +133 -0
  324. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/implementation/statistics_handler.py +343 -0
  325. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/mcp_handlers.py +164 -0
  326. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/src/parallel_sort_mcp/server.py +437 -0
  327. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/tests/__init__.py +3 -0
  328. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/tests/test_edge_cases.py +224 -0
  329. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/tests/test_export_handler.py +268 -0
  330. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/tests/test_filter_advanced.py +455 -0
  331. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/tests/test_filter_handler.py +350 -0
  332. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/tests/test_mcp_handlers.py +270 -0
  333. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/tests/test_mcp_handlers_errors.py +171 -0
  334. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/tests/test_parallel_processor.py +821 -0
  335. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/tests/test_pattern_detection.py +254 -0
  336. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/tests/test_server.py +38 -0
  337. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/tests/test_server_main.py +120 -0
  338. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/tests/test_sort_handler.py +217 -0
  339. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/tests/test_statistics_handler.py +177 -0
  340. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parallel-sort/uv.lock +1946 -0
  341. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/.claude-plugin/plugin.json +5 -0
  342. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/.gitignore +140 -0
  343. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/.mcp.json +9 -0
  344. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/LICENSE +38 -0
  345. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/README.md +559 -0
  346. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/USAGE_README.md +263 -0
  347. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/prompt.md +12 -0
  348. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/pyproject.toml +72 -0
  349. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/pytest.ini +6 -0
  350. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/requirements.txt +2 -0
  351. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/scripts/__init__.py +3 -0
  352. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/scripts/automate_setup.py +490 -0
  353. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/scripts/build_paraview.py +265 -0
  354. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/scripts/configure_paraview.py +267 -0
  355. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/scripts/install_deps.py +273 -0
  356. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/scripts/installation_example.py +40 -0
  357. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/scripts/launch_gui.py +79 -0
  358. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/scripts/launch_server.py +121 -0
  359. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/scripts/test_installation.py +355 -0
  360. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/server.json +139 -0
  361. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/src/paraview_mcp/__init__.py +0 -0
  362. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/src/paraview_mcp/implementation/__init__.py +0 -0
  363. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/src/paraview_mcp/implementation/paraview_capabilities.py +2202 -0
  364. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/src/paraview_mcp/server.py +1066 -0
  365. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/src/paraview_mcp/viz.html +47 -0
  366. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/tests/__init__.py +0 -0
  367. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/tests/test_paraview_adios2.py +510 -0
  368. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/tests/test_paraview_capabilities.py +656 -0
  369. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/tests/test_paraview_filters.py +611 -0
  370. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/tests/test_paraview_rendering.py +575 -0
  371. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/tests/test_paraview_utilities.py +527 -0
  372. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/tests/test_server.py +175 -0
  373. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/paraview/uv.lock +2015 -0
  374. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/.claude-plugin/plugin.json +5 -0
  375. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/.gitignore +57 -0
  376. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/.mcp.json +9 -0
  377. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/README.md +368 -0
  378. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/data/data.csv +76 -0
  379. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/data/huge_log.txt +10 -0
  380. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/data/small_log.txt +4 -0
  381. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/data/weather_data.parquet +0 -0
  382. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/datasets/batch_1.parquet +0 -0
  383. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/datasets/batch_large_strings.parquet +0 -0
  384. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/evaluation.xml +43 -0
  385. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/images/compress.png +0 -0
  386. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/images/getResource.png +0 -0
  387. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/images/listResources.png +0 -0
  388. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/images/listTools.png +0 -0
  389. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/images/pandas.png +0 -0
  390. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/images/parquet.png +0 -0
  391. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/images/sort.png +0 -0
  392. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/images/tests.png +0 -0
  393. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/pyproject.toml +48 -0
  394. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/pytest.ini +6 -0
  395. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/server.json +51 -0
  396. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/src/__init__.py +3 -0
  397. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/src/parquet_mcp/__init__.py +3 -0
  398. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/src/parquet_mcp/capabilities/__init__.py +1 -0
  399. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/src/parquet_mcp/capabilities/parquet_handler.py +839 -0
  400. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/src/parquet_mcp/server.py +199 -0
  401. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/README.md +133 -0
  402. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/__init__.py +4 -0
  403. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/conftest.py +68 -0
  404. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_additional_edge_cases.py +233 -0
  405. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_aggregate_column.py +343 -0
  406. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_boundary_rows.py +286 -0
  407. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_column_selection.py +242 -0
  408. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_data_types.py +222 -0
  409. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_default_parameters.py +195 -0
  410. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_estimate_slice_size.py +269 -0
  411. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_filter_edge_cases.py +249 -0
  412. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_filter_operations.py +418 -0
  413. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_filtered_slice.py +273 -0
  414. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_filtering.py +320 -0
  415. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_get_column_preview.py +234 -0
  416. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_json_response_validation.py +351 -0
  417. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_malformed_files.py +234 -0
  418. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_null_handling.py +153 -0
  419. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_path_security.py +222 -0
  420. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_performance.py +309 -0
  421. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_read_slice.py +146 -0
  422. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_response_format.py +269 -0
  423. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_server.py +97 -0
  424. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_summarize.py +54 -0
  425. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/tests/test_tool_consistency.py +280 -0
  426. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/parquet/uv.lock +1855 -0
  427. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/plot/.claude-plugin/plugin.json +5 -0
  428. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/plot/.gitignore +20 -0
  429. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/plot/.mcp.json +9 -0
  430. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/plot/README.md +351 -0
  431. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/plot/data/sample_data.csv +11 -0
  432. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/plot/data/temperature.csv +48471 -0
  433. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/plot/pyproject.toml +51 -0
  434. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/plot/pytest.ini +15 -0
  435. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/plot/server.json +59 -0
  436. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/plot/src/plot_mcp/__init__.py +0 -0
  437. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/plot/src/plot_mcp/implementation/__init__.py +21 -0
  438. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/plot/src/plot_mcp/implementation/plot_capabilities.py +387 -0
  439. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/plot/src/plot_mcp/server.py +315 -0
  440. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/plot/tests/__init__.py +3 -0
  441. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/plot/tests/conftest.py +49 -0
  442. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/plot/tests/test_capabilities.py +385 -0
  443. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/plot/tests/test_complete.py +644 -0
  444. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/plot/tests/test_handlers.py +431 -0
  445. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/plot/tests/test_integration.py +479 -0
  446. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/plot/tests/test_server.py +261 -0
  447. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/plot/uv.lock +2250 -0
  448. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/.claude-plugin/plugin.json +5 -0
  449. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/.gitignore +71 -0
  450. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/.mcp.json +9 -0
  451. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/README.md +313 -0
  452. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/docs/MCP_SERVER_GUIDE.md +57 -0
  453. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/docs/basic_install.md +93 -0
  454. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/docs/run.md +375 -0
  455. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/docs/slurm_installation/NATIVE_SLURM_SUCCESS_REPORT.md +139 -0
  456. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/docs/slurm_installation/SLURM_INSTALLATION_GUIDE.md +491 -0
  457. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/docs/slurm_installation/final_verification.sh +209 -0
  458. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/docs/slurm_installation/install_slurm.sh +350 -0
  459. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/docs/slurm_installation/parallel_job.sh +64 -0
  460. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/docs/slurm_installation/quick_native_test.sh +11 -0
  461. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/docs/slurm_installation/slurm.conf +40 -0
  462. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/docs/slurm_installation/slurm_config.conf +32 -0
  463. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/example_scripts/README.md +242 -0
  464. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/example_scripts/SLURM_SCRIPT_GENERATION_PROMPT.md +236 -0
  465. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/example_scripts/array_job.sh +60 -0
  466. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/example_scripts/data_processing.sh +140 -0
  467. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/example_scripts/generate_slurm_script.sh +395 -0
  468. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/example_scripts/hello_world.sh +0 -0
  469. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/example_scripts/long_simulation.sh +121 -0
  470. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/example_scripts/python_computation.sh +0 -0
  471. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/logs/README.md +39 -0
  472. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/pyproject.toml +48 -0
  473. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/pytest.ini +6 -0
  474. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/server.json +87 -0
  475. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/src/slurm_mcp/__init__.py +4 -0
  476. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/__init__.py +21 -0
  477. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/array_jobs.py +118 -0
  478. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/cluster_info.py +63 -0
  479. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_cancellation.py +49 -0
  480. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_details.py +87 -0
  481. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_listing.py +75 -0
  482. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_output.py +91 -0
  483. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_status.py +50 -0
  484. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/job_submission.py +167 -0
  485. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/node_allocation.py +493 -0
  486. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/node_info.py +52 -0
  487. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/queue_info.py +104 -0
  488. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/slurm_handler.py +59 -0
  489. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/src/slurm_mcp/implementation/utils.py +24 -0
  490. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/src/slurm_mcp/mcp_handlers.py +349 -0
  491. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/src/slurm_mcp/server.py +519 -0
  492. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/tests/__init__.py +4 -0
  493. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/tests/conftest.py +433 -0
  494. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/tests/test_capabilities.py +364 -0
  495. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/tests/test_coverage_improvement.py +1524 -0
  496. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/tests/test_init.py +20 -0
  497. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/tests/test_integration.py +395 -0
  498. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/tests/test_mcp_handlers.py +733 -0
  499. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/tests/test_node_allocation_coverage.py +347 -0
  500. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/tests/test_performance.py +559 -0
  501. clio_kit-2.0.0.data/data/clio-kit-mcp-servers/slurm/tests/test_server_tools.py +1236 -0
  502. clio_kit-2.0.0.dist-info/METADATA +345 -0
  503. clio_kit-2.0.0.dist-info/RECORD +506 -0
  504. clio_kit-2.0.0.dist-info/WHEEL +4 -0
  505. clio_kit-2.0.0.dist-info/entry_points.txt +2 -0
  506. clio_kit-2.0.0.dist-info/licenses/LICENSE +29 -0
clio_kit/__init__.py ADDED
@@ -0,0 +1,334 @@
1
+ #!/usr/bin/env python3
2
+ import os
3
+ import sys
4
+ import subprocess
5
+ from pathlib import Path
6
+ import click
7
+
8
+ # Determine if we're running from development or installed package
9
+ MODULE_DIR = Path(__file__).parent
10
+
11
+ def get_servers_path():
12
+ """Get the path to servers directory (dev or installed)"""
13
+ # First try development path (../../clio-kit-mcp-servers from module)
14
+ dev_path = MODULE_DIR.parent.parent / "clio-kit-mcp-servers"
15
+ if dev_path.exists():
16
+ return dev_path
17
+
18
+ # Try to find shared data in the installed package
19
+ # When installed via wheel, shared data goes to site-packages/
20
+ # Look for clio-kit-mcp-servers directory in various possible locations
21
+ possible_paths = [
22
+ # Standard site-packages installation
23
+ MODULE_DIR.parent / "clio-kit-mcp-servers", # ../clio-kit-mcp-servers from module
24
+ # Alternative installation paths
25
+ MODULE_DIR / "clio-kit-mcp-servers", # ./clio-kit-mcp-servers from module (if included directly)
26
+ # System-wide data directory
27
+ Path(sys.prefix) / "share" / "clio-kit" / "clio-kit-mcp-servers",
28
+ # Local data directory
29
+ Path.home() / ".local" / "share" / "clio-kit" / "clio-kit-mcp-servers",
30
+ ]
31
+
32
+ # Try each possible path
33
+ for path in possible_paths:
34
+ if path.exists() and path.is_dir():
35
+ return path
36
+
37
+ # If none found, check if we're in an isolated environment (like uvx)
38
+ # and try to find the data directory relative to the Python executable
39
+ python_path = Path(sys.executable)
40
+ isolated_paths = [
41
+ # uvx style isolated environment - clio-kit-mcp-servers is at the root level
42
+ python_path.parent.parent / "clio-kit-mcp-servers",
43
+ python_path.parent.parent / "share" / "clio-kit-mcp-servers",
44
+ python_path.parent.parent / "purelib" / "clio-kit-mcp-servers",
45
+ python_path.parent.parent / "data" / "clio-kit-mcp-servers",
46
+ ]
47
+
48
+ for path in isolated_paths:
49
+ if path.exists() and path.is_dir():
50
+ return path
51
+
52
+ # Last resort: return the dev path even if it doesn't exist
53
+ # so the caller can handle the missing directory appropriately
54
+ return dev_path
55
+
56
+ def get_prompts_path():
57
+ """Get the path to prompts directory (dev or installed)"""
58
+ # First try development path (../../prompts from module)
59
+ dev_path = MODULE_DIR.parent.parent / "prompts"
60
+ if dev_path.exists():
61
+ return dev_path
62
+
63
+ # Try to find shared data in the installed package
64
+ possible_paths = [
65
+ # Standard site-packages installation
66
+ MODULE_DIR.parent / "prompts", # ../prompts from module
67
+ # Alternative installation paths
68
+ MODULE_DIR / "prompts", # ./prompts from module
69
+ # System-wide data directory
70
+ Path(sys.prefix) / "share" / "clio-kit" / "prompts",
71
+ # Local data directory
72
+ Path.home() / ".local" / "share" / "clio-kit" / "prompts",
73
+ ]
74
+
75
+ # Try each possible path
76
+ for path in possible_paths:
77
+ if path.exists() and path.is_dir():
78
+ return path
79
+
80
+ # If none found, check if we're in an isolated environment (like uvx)
81
+ python_path = Path(sys.executable)
82
+ isolated_paths = [
83
+ # uvx style isolated environment
84
+ python_path.parent.parent / "prompts",
85
+ python_path.parent.parent / "share" / "prompts",
86
+ python_path.parent.parent / "purelib" / "prompts",
87
+ python_path.parent.parent / "data" / "prompts",
88
+ ]
89
+
90
+ for path in isolated_paths:
91
+ if path.exists() and path.is_dir():
92
+ return path
93
+
94
+ # Last resort: return the dev path
95
+ return dev_path
96
+
97
+ def auto_discover_mcps():
98
+ """Auto-discover MCP servers from the clio-kit-mcp-servers directory"""
99
+ servers_path = get_servers_path()
100
+ if not servers_path.exists():
101
+ return {}, {}
102
+
103
+ server_command_map = {}
104
+ dir_name_map = {}
105
+
106
+ # Scan for directories containing pyproject.toml
107
+ for item in servers_path.iterdir():
108
+ if item.is_dir() and not item.name.startswith('.'):
109
+ pyproject_file = item / "pyproject.toml"
110
+ if pyproject_file.exists():
111
+ # Read pyproject.toml to extract entry point
112
+ try:
113
+ with open(pyproject_file, 'r') as f:
114
+ content = f.read()
115
+
116
+ # Simple parsing to find the entry point
117
+ # Look for lines like: server-name-mcp = "module:main"
118
+ entry_point = None
119
+ for line in content.split('\n'):
120
+ line = line.strip()
121
+ if '-mcp =' in line and '=' in line:
122
+ entry_point = line.split('=')[0].strip().strip('"\'')
123
+ break
124
+
125
+ if entry_point:
126
+ # Create server name by removing -mcp suffix
127
+ server_name = entry_point.replace('-mcp', '').lower()
128
+ # Handle special cases for naming
129
+ if server_name == 'node-hardware':
130
+ server_name = 'node-hardware'
131
+ elif server_name == 'parallel-sort':
132
+ server_name = 'parallel-sort'
133
+
134
+ server_command_map[server_name] = entry_point
135
+ dir_name_map[server_name] = item.name
136
+
137
+ except Exception as e:
138
+ # Skip directories that can't be processed
139
+ continue
140
+
141
+ return server_command_map, dir_name_map
142
+
143
+ def auto_discover_prompts():
144
+ """Auto-discover prompts from the prompts directory (recursively)"""
145
+ prompts_path = get_prompts_path()
146
+ if not prompts_path.exists():
147
+ return {}
148
+
149
+ prompt_map = {}
150
+
151
+ # Recursively scan for .md files
152
+ for md_file in prompts_path.rglob("*.md"):
153
+ # Get relative path from prompts directory
154
+ relative_path = md_file.relative_to(prompts_path)
155
+
156
+ # Create prompt name from relative path without extension
157
+ # e.g., "code-coverage-prompt.md" -> "code-coverage-prompt"
158
+ # e.g., "testing/foo.md" -> "testing/foo"
159
+ prompt_name = str(relative_path.with_suffix(''))
160
+
161
+ # Also support underscore version
162
+ # "code-coverage-prompt" -> also accessible as "code_coverage_prompt"
163
+ prompt_map[prompt_name] = md_file
164
+ prompt_map[prompt_name.replace('-', '_')] = md_file
165
+
166
+ return prompt_map
167
+
168
+ def list_available_servers():
169
+ """List all available servers"""
170
+ server_command_map, _ = auto_discover_mcps()
171
+ return sorted(server_command_map.keys())
172
+
173
+ def list_available_prompts():
174
+ """List all available prompts"""
175
+ prompt_map = auto_discover_prompts()
176
+ # Remove duplicates (dash vs underscore versions)
177
+ unique_prompts = set()
178
+ for name in prompt_map.keys():
179
+ # Normalize to dash version for display
180
+ unique_prompts.add(name.replace('_', '-'))
181
+ return sorted(unique_prompts)
182
+
183
+ @click.group(invoke_without_command=True)
184
+ @click.pass_context
185
+ def main(ctx):
186
+ """clio-kit: Unified launcher for MCP servers and AI prompts"""
187
+ if ctx.invoked_subcommand is None:
188
+ click.echo("clio-kit: Unified launcher for MCP servers and AI prompts")
189
+ click.echo("\nAvailable commands:")
190
+ click.echo(" mcp-server Run an MCP server")
191
+ click.echo(" mcp-servers List all available MCP servers")
192
+ click.echo(" prompt Print a prompt to stdout")
193
+ click.echo(" prompts List all available prompts")
194
+ click.echo("\nUsage:")
195
+ click.echo(" uvx clio-kit mcp-server <server-name>")
196
+ click.echo(" uvx clio-kit prompt <prompt-name>")
197
+ click.echo("\nFor more help: uvx clio-kit <command> --help")
198
+
199
+ @main.command("mcp-server")
200
+ @click.argument('server', required=False)
201
+ @click.option('-b', '--branch', help='Git branch to use (for development)')
202
+ @click.argument('args', nargs=-1, type=click.UNPROCESSED)
203
+ def mcp_server(server, branch, args):
204
+ """Run an MCP server. List all if no server specified."""
205
+
206
+ server_command_map, dir_name_map = auto_discover_mcps()
207
+
208
+ if not server:
209
+ click.echo("Available MCP servers:")
210
+ for s in sorted(server_command_map.keys()):
211
+ click.echo(f" - {s}")
212
+ click.echo("\nUsage: uvx clio-kit mcp-server <server-name>")
213
+ click.echo(" or: clio-kit mcp-server <server-name> (if installed)")
214
+ return
215
+
216
+ # Normalize server name to lowercase
217
+ server_lower = server.lower()
218
+
219
+ if server_lower not in server_command_map:
220
+ click.echo(f"Error: Unknown server '{server}'")
221
+ click.echo(f"Available servers: {', '.join(sorted(server_command_map.keys()))}")
222
+ sys.exit(1)
223
+
224
+ # Get the entry point command and directory name
225
+ entry_command = server_command_map[server_lower]
226
+ actual_dir = dir_name_map[server_lower]
227
+
228
+ # Build uvx command
229
+ if branch:
230
+ # Run from git branch
231
+ cmd = [
232
+ "uvx",
233
+ "--from",
234
+ f"git+https://github.com/iowarp/clio-kit.git@{branch}#subdirectory=clio-kit-mcp-servers/{actual_dir}",
235
+ entry_command
236
+ ]
237
+ else:
238
+ # Run from local path in development mode
239
+ servers_path = get_servers_path()
240
+ server_path = servers_path / actual_dir
241
+
242
+ if server_path.exists():
243
+ # Development mode - run from local path
244
+ cmd = [
245
+ "uvx",
246
+ "--from",
247
+ str(server_path),
248
+ entry_command
249
+ ]
250
+ else:
251
+ # Not in development, try to run the command directly (if installed)
252
+ cmd = [entry_command]
253
+
254
+ # Add any additional arguments
255
+ cmd.extend(args)
256
+
257
+ # Execute the command
258
+ try:
259
+ subprocess.run(cmd, check=True)
260
+ except subprocess.CalledProcessError as e:
261
+ sys.exit(e.returncode)
262
+ except FileNotFoundError:
263
+ if cmd[0] == "uvx":
264
+ click.echo("Error: uvx not found. Please install uv: https://github.com/astral-sh/uv")
265
+ else:
266
+ click.echo(f"Error: {entry_command} not found. Please install the server package.")
267
+ sys.exit(1)
268
+
269
+ @main.command("mcp-servers")
270
+ def list_mcp_servers():
271
+ """List all available MCP servers"""
272
+ servers = list_available_servers()
273
+ if servers:
274
+ click.echo("Available MCP servers:")
275
+ for s in servers:
276
+ click.echo(f" - {s}")
277
+ else:
278
+ click.echo("No MCP servers found.")
279
+
280
+ @main.command("prompt")
281
+ @click.argument('prompt_name', required=False)
282
+ def prompt(prompt_name):
283
+ """Print a prompt to stdout. List all if no name specified."""
284
+
285
+ prompt_map = auto_discover_prompts()
286
+
287
+ if not prompt_name:
288
+ # List all prompts
289
+ prompts = list_available_prompts()
290
+ if prompts:
291
+ click.echo("Available prompts:")
292
+ for p in prompts:
293
+ click.echo(f" - {p}")
294
+ else:
295
+ click.echo("No prompts found.")
296
+ click.echo("\nUsage: uvx clio-kit prompt <prompt-name>")
297
+ click.echo(" or: clio-kit prompt <prompt-name> (if installed)")
298
+ return
299
+
300
+ # Normalize prompt name (support both dash and underscore)
301
+ prompt_lower = prompt_name.lower()
302
+
303
+ if prompt_lower not in prompt_map:
304
+ click.echo(f"Error: Unknown prompt '{prompt_name}'")
305
+ click.echo(f"Available prompts: {', '.join(list_available_prompts())}")
306
+ sys.exit(1)
307
+
308
+ # Read and print the prompt file
309
+ prompt_file = prompt_map[prompt_lower]
310
+ try:
311
+ with open(prompt_file, 'r') as f:
312
+ content = f.read()
313
+ click.echo(content)
314
+ except Exception as e:
315
+ click.echo(f"Error reading prompt file: {e}")
316
+ sys.exit(1)
317
+
318
+ @main.command("prompts")
319
+ def list_prompts_cmd():
320
+ """List all available prompts"""
321
+ prompts = list_available_prompts()
322
+ if prompts:
323
+ click.echo("Available prompts:")
324
+ for p in prompts:
325
+ click.echo(f" - {p}")
326
+ else:
327
+ click.echo("No prompts found.")
328
+
329
+ def cli():
330
+ """Entry point for the CLI"""
331
+ main()
332
+
333
+ if __name__ == "__main__":
334
+ main()
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "clio-adios",
3
+ "description": "Fetch and analyze BP5 data files using ADIOS2. Access scientific data, metadata, and attributes for research and analysis purposes.",
4
+ "version": "1.0.0"
5
+ }
@@ -0,0 +1,27 @@
1
+
2
+ .venv/
3
+
4
+
5
+ __pycache__/
6
+ *.pyc
7
+
8
+
9
+ *.gz
10
+ *.png
11
+ *.log
12
+
13
+
14
+ *.coverage
15
+ .coverage
16
+ htmlcov/
17
+
18
+
19
+ .vscode/
20
+ .idea/
21
+
22
+ # Python packaging artifacts
23
+ *.egg-info/
24
+ *.egg-info
25
+ build/
26
+ dist/
27
+ *.egg
@@ -0,0 +1,9 @@
1
+ {
2
+ "clio-adios": {
3
+ "command": "uvx",
4
+ "args": [
5
+ "clio-kit",
6
+ "adios"
7
+ ]
8
+ }
9
+ }
@@ -0,0 +1,323 @@
1
+ # Adios MCP Server
2
+
3
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
+ [![PyPI version](https://img.shields.io/pypi/v/adios-mcp.svg)](https://pypi.org/project/adios-mcp/)
5
+ [![Python](https://img.shields.io/badge/Python-3.10%2B-blue)](https://www.python.org/)
6
+
7
+ **Part of [CLIO Kit](https://toolkit.iowarp.ai/) - Gnosis Research Center**
8
+
9
+ ADIOS MCP is a comprehensive Model Context Protocol (MCP) server that enables Language Learning Models (LLMs) to access and analyze scientific simulation and real-time data through the ADIOS2 framework. This server provides read-only access to BP5 datasets with intelligent data handling and seaml...
10
+
11
+ ## Quick Start
12
+
13
+ ```bash
14
+ uvx clio-kit mcp-server adios
15
+ ```
16
+
17
+ ## Documentation
18
+
19
+ - **Full Documentation**: [CLIO Kit Website](https://toolkit.iowarp.ai/)
20
+ - **Installation Guide**: See [INSTALLATION.md](../../../CLAUDE.md#setup--installation)
21
+ - **Contributing**: See [Contribution Guide](https://github.com/iowarp/clio-kit/wiki/Contribution)
22
+
23
+ ---
24
+
25
+ ## Description
26
+
27
+ ADIOS MCP is a comprehensive Model Context Protocol (MCP) server that enables Language Learning Models (LLMs) to access and analyze scientific simulation and real-time data through the ADIOS2 framework. This server provides read-only access to BP5 datasets with intelligent data handling and seamless integration with AI coding assistants.
28
+
29
+
30
+
31
+ **Key Features:**
32
+ - **High-Performance Data Access**: Read-only access to ADIOS2 BP5 files with optimized I/O operations
33
+ - **Intelligent Data Processing**: Automatic variable type detection, shape analysis, and step-based data handling
34
+ - **Multiple Data Operations**: Variable inspection, attribute reading, data slicing, and statistical analysis
35
+ - **Scientific Computing Support**: Time-series analysis, multi-dimensional arrays, and metadata handling
36
+ - **Cross-Platform Compatibility**: Pure Python implementation for Linux, macOS, and Windows
37
+ - **MCP Integration**: Full Model Context Protocol compliance for seamless LLM integration
38
+
39
+
40
+
41
+ ## 🛠️ Installation
42
+
43
+ ### Requirements
44
+
45
+ - Python 3.10 or higher
46
+ - [uv](https://docs.astral.sh/uv/) package manager (recommended)
47
+ - Linux/macOS environment (Windows supported)
48
+
49
+ <details>
50
+ <summary><b>Install in Cursor</b></summary>
51
+
52
+ Go to: `Settings` -> `Cursor Settings` -> `MCP` -> `Add new global MCP server`
53
+
54
+ Pasting the following configuration into your Cursor `~/.cursor/mcp.json` file is the recommended approach. You may also install in a specific project by creating `.cursor/mcp.json` in your project folder. See [Cursor MCP docs](https://docs.cursor.com/context/model-context-protocol) for more info.
55
+
56
+ ```json
57
+ {
58
+ "mcpServers": {
59
+ "adios-mcp": {
60
+ "command": "uvx",
61
+ "args": ["clio-kit", "mcp-server", "adios"]
62
+ }
63
+ }
64
+ }
65
+ ```
66
+
67
+ </details>
68
+
69
+ <details>
70
+ <summary><b>Install in VS Code</b></summary>
71
+
72
+ Add this to your VS Code MCP config file. See [VS Code MCP docs](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) for more info.
73
+
74
+ ```json
75
+ "mcp": {
76
+ "servers": {
77
+ "adios-mcp": {
78
+ "type": "stdio",
79
+ "command": "uvx",
80
+ "args": ["clio-kit", "mcp-server", "adios"]
81
+ }
82
+ }
83
+ }
84
+ ```
85
+
86
+ </details>
87
+
88
+ <details>
89
+ <summary><b>Install in Claude Code</b></summary>
90
+
91
+ Run this command. See [Claude Code MCP docs](https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/tutorials#set-up-model-context-protocol-mcp) for more info.
92
+
93
+ ```sh
94
+ claude mcp add adios-mcp -- uvx clio-kit mcp-server adios
95
+ ```
96
+
97
+ </details>
98
+
99
+ <details>
100
+ <summary><b>Install in Claude Desktop</b></summary>
101
+
102
+ Add this to your Claude Desktop `claude_desktop_config.json` file. See [Claude Desktop MCP docs](https://modelcontextprotocol.io/quickstart/user) for more info.
103
+
104
+ ```json
105
+ {
106
+ "mcpServers": {
107
+ "adios-mcp": {
108
+ "command": "uvx",
109
+ "args": ["clio-kit", "mcp-server", "adios"]
110
+ }
111
+ }
112
+ }
113
+ ```
114
+
115
+ </details>
116
+
117
+ <details>
118
+ <summary><b>Manual Setup</b></summary>
119
+
120
+ **Linux/macOS:**
121
+ ```bash
122
+ CLONE_DIR=$(pwd)
123
+ git clone https://github.com/iowarp/clio-kit.git
124
+ uv --directory=$CLONE_DIR/clio-kit/clio-kit-mcp-servers/adios run adios-mcp --help
125
+ ```
126
+
127
+ **Windows CMD:**
128
+ ```cmd
129
+ set CLONE_DIR=%cd%
130
+ git clone https://github.com/iowarp/clio-kit.git
131
+ uv --directory=%CLONE_DIR%\clio-kit\clio-kit-mcp-servers\adios run adios-mcp --help
132
+ ```
133
+
134
+ **Windows PowerShell:**
135
+ ```powershell
136
+ $env:CLONE_DIR=$PWD
137
+ git clone https://github.com/iowarp/clio-kit.git
138
+ uv --directory=$env:CLONE_DIR\clio-kit\clio-kit-mcp-servers\adios run adios-mcp --help
139
+ ```
140
+
141
+ </details>
142
+
143
+ ## Capabilities
144
+
145
+ ### `list_bp5`
146
+ **Description**: Lists all BP5 files in a given directory. The 'directory' parameter must be an absolute path.
147
+ **Hints**: read-only, idempotent
148
+ **Tags**: adios, scientific-io
149
+
150
+ ### `inspect_variables`
151
+ **Description**: Inspects variables in a BP5 file, returning type, shape, and steps. Optionally filters by variable name.
152
+ **Hints**: read-only, idempotent
153
+ **Tags**: adios, variables
154
+
155
+ ### `inspect_variables_at_step`
156
+ **Description**: Inspects a specific variable at a given step in a BP5 file. All parameters are required.
157
+ **Hints**: read-only, idempotent
158
+ **Tags**: adios, variables
159
+
160
+ ### `inspect_attributes`
161
+ **Description**: Reads global or variable-specific attributes from a BP5 file. The 'variable_name' is optional.
162
+ **Hints**: read-only, idempotent
163
+ **Tags**: adios, attributes
164
+
165
+ ### `read_variable_at_step`
166
+ **Description**: Reads a named variable at a specific step from a BP5 file. All parameters are required.
167
+ **Hints**: read-only, idempotent
168
+ **Tags**: adios, variables
169
+
170
+ ### Resources
171
+
172
+ - `adios://capabilities` - ADIOS2 file format capabilities and supported engines.
173
+
174
+ ### Prompts
175
+
176
+ - **explore_bp_file**: Guided workflow for exploring an ADIOS2 BP file.
177
+ ## Claude Code
178
+
179
+ ```bash
180
+ claude mcp add clio-adios -- uvx clio-kit adios
181
+ ```
182
+
183
+ Or install via the CLIO Kit plugin marketplace:
184
+
185
+ ```
186
+ /plugin marketplace add iowarp/clio-kit
187
+ /plugin install clio-adios@iowarp-clio-kit
188
+ ```
189
+ ## Claude Desktop
190
+
191
+ Add to your Claude Desktop config (`claude_desktop_config.json`):
192
+
193
+ ```json
194
+ {
195
+ "mcpServers": {
196
+ "clio-adios": {
197
+ "command": "uvx",
198
+ "args": [
199
+ "clio-kit",
200
+ "adios"
201
+ ]
202
+ }
203
+ }
204
+ }
205
+ ```
206
+ ## Gemini CLI
207
+
208
+ Add to `~/.gemini/settings.json`:
209
+
210
+ ```json
211
+ {
212
+ "mcpServers": {
213
+ "clio-adios": {
214
+ "command": "uvx",
215
+ "args": [
216
+ "clio-kit",
217
+ "adios"
218
+ ]
219
+ }
220
+ }
221
+ }
222
+ ```
223
+
224
+ Or install the CLIO Kit extension:
225
+
226
+ ```bash
227
+ gemini extensions install https://github.com/iowarp/clio-kit
228
+ ```
229
+ ## Examples
230
+
231
+ ### 1. Scientific Data Structure Analysis
232
+ ```
233
+ I have a BP5 simulation file at /data/simulation_results.bp. Can you first analyze the data structure and then show me the temperature variable evolution over time?
234
+ ```
235
+
236
+ **Tools called:**
237
+ - `inspect_variables` - Analyze the dataset structure and available variables
238
+ - `read_variable_at_step` - Read temperature data at specific time steps
239
+
240
+ This prompt will:
241
+ - Use `inspect_variables` to analyze the BP5 file structure and discover all variables
242
+ - Extract temperature variable data using `read_variable_at_step` at different time steps
243
+ - Provide insights about the simulation data structure and temporal evolution
244
+
245
+ ### 2. Multi-Variable Scientific Analysis
246
+ ```
247
+ Using the file /data/fluid_dynamics.bp, perform a comprehensive analysis showing:
248
+ 1. All available variables and their properties
249
+ 2. Pressure field at step 50
250
+ 3. Variable metadata and attributes for the pressure field
251
+ ```
252
+
253
+ **Tools called:**
254
+ - `inspect_variables` - List all available variables and properties
255
+ - `read_variable_at_step` - Extract pressure field at step 50
256
+ - `inspect_attributes` - Get pressure variable metadata
257
+
258
+ This prompt will:
259
+ - Generate comprehensive variable inventory using `inspect_variables`
260
+ - Extract specific time step data using `read_variable_at_step`
261
+ - Analyze variable metadata with `inspect_attributes`
262
+ - Provide detailed analysis of fluid dynamics simulation data
263
+
264
+ ### 3. Time-Series Variable Inspection
265
+ ```
266
+ From /data/climate_model.bp, I want to understand the temperature variable structure across different time steps and inspect its properties at step 25.
267
+ ```
268
+
269
+ **Tools called:**
270
+ - `inspect_variables` - Get temperature variable structure and available steps
271
+ - `inspect_variables_at_step` - Detailed inspection at step 25
272
+
273
+ This prompt will:
274
+ - Use `inspect_variables` to understand overall variable structure
275
+ - Use `inspect_variables_at_step` to get detailed information at a specific time step
276
+ - Provide comprehensive time-series data structure analysis
277
+
278
+ ### 4. High-Performance Computing Data Analysis
279
+ ```
280
+ Analyze the simulation output at /data/parallel_computation.bp - show me the variable structure, read specific computational domain data, and extract metadata attributes.
281
+ ```
282
+
283
+ **Tools called:**
284
+ - `inspect_variables` - Analyze computational variables and structure
285
+ - `inspect_attributes` - Extract simulation metadata and parameters
286
+ - `read_variable_at_step` - Read domain-specific data
287
+
288
+ This prompt will:
289
+ - Use `inspect_variables` to understand parallel computation structure
290
+ - Extract simulation parameters with `inspect_attributes`
291
+ - Read specific computational domain data using `read_variable_at_step`
292
+ - Provide HPC-focused data analysis
293
+
294
+ ### 5. Scientific Data Validation and Exploration
295
+ ```
296
+ I need to validate the integrity of my ADIOS dataset at /data/experimental_results.bp - check all variables, their step-wise properties, and ensure metadata completeness.
297
+ ```
298
+
299
+ **Tools called:**
300
+ - `inspect_variables` - Comprehensive variable structure validation
301
+ - `inspect_variables_at_step` - Step-specific variable validation
302
+ - `inspect_attributes` - Metadata integrity check
303
+
304
+ This prompt will:
305
+ - Use `inspect_variables` to validate overall data structure integrity
306
+ - Perform step-specific analysis with `inspect_variables_at_step`
307
+ - Check metadata completeness with `inspect_attributes`
308
+ - Provide comprehensive data quality assessment for scientific workflows
309
+
310
+ ### 6. Quick BP5 File Discovery
311
+ ```
312
+ Show me all BP5 files in my simulation directory at /data/simulations/ and provide a quick overview of their contents and structure.
313
+ ```
314
+
315
+ **Tools called:**
316
+ - `list_bp5` - Directory-wide BP5 file discovery
317
+ - `inspect_variables` - Quick structure overview for each file
318
+
319
+ This prompt will:
320
+ - Use `list_bp5` to discover all BP5 files in the directory
321
+ - Use `inspect_variables` to provide structural overview of discovered files
322
+ - Generate comprehensive overview of available simulation datasets
323
+ - Suggest optimal data access strategies based on file contents