hanzo-mcp 0.6.12__tar.gz → 0.7.0__tar.gz

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.

Potentially problematic release.


This version of hanzo-mcp might be problematic. Click here for more details.

Files changed (227) hide show
  1. hanzo_mcp-0.7.0/PKG-INFO +516 -0
  2. hanzo_mcp-0.7.0/README.md +456 -0
  3. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/__init__.py +2 -2
  4. hanzo_mcp-0.7.0/hanzo_mcp/analytics/__init__.py +5 -0
  5. hanzo_mcp-0.7.0/hanzo_mcp/analytics/posthog_analytics.py +364 -0
  6. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/cli.py +5 -5
  7. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/cli_enhanced.py +7 -7
  8. hanzo_mcp-0.7.0/hanzo_mcp/cli_plugin.py +91 -0
  9. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/config/__init__.py +1 -1
  10. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/config/settings.py +70 -7
  11. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/config/tool_config.py +20 -6
  12. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/dev_server.py +3 -3
  13. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/prompts/project_system.py +1 -1
  14. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/server.py +40 -3
  15. hanzo_mcp-0.7.0/hanzo_mcp/server_enhanced.py +69 -0
  16. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/__init__.py +140 -31
  17. hanzo_mcp-0.7.0/hanzo_mcp/tools/agent/__init__.py +137 -0
  18. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/agent/agent_tool.py +104 -6
  19. hanzo_mcp-0.7.0/hanzo_mcp/tools/agent/agent_tool_v2.py +459 -0
  20. hanzo_mcp-0.7.0/hanzo_mcp/tools/agent/clarification_protocol.py +220 -0
  21. hanzo_mcp-0.7.0/hanzo_mcp/tools/agent/clarification_tool.py +68 -0
  22. hanzo_mcp-0.7.0/hanzo_mcp/tools/agent/claude_cli_tool.py +125 -0
  23. hanzo_mcp-0.7.0/hanzo_mcp/tools/agent/claude_desktop_auth.py +508 -0
  24. hanzo_mcp-0.7.0/hanzo_mcp/tools/agent/cli_agent_base.py +191 -0
  25. hanzo_mcp-0.7.0/hanzo_mcp/tools/agent/code_auth.py +436 -0
  26. hanzo_mcp-0.7.0/hanzo_mcp/tools/agent/code_auth_tool.py +194 -0
  27. hanzo_mcp-0.7.0/hanzo_mcp/tools/agent/codex_cli_tool.py +123 -0
  28. hanzo_mcp-0.7.0/hanzo_mcp/tools/agent/critic_tool.py +376 -0
  29. hanzo_mcp-0.7.0/hanzo_mcp/tools/agent/gemini_cli_tool.py +128 -0
  30. hanzo_mcp-0.7.0/hanzo_mcp/tools/agent/grok_cli_tool.py +128 -0
  31. hanzo_mcp-0.7.0/hanzo_mcp/tools/agent/iching_tool.py +380 -0
  32. hanzo_mcp-0.7.0/hanzo_mcp/tools/agent/network_tool.py +273 -0
  33. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/agent/prompt.py +62 -20
  34. hanzo_mcp-0.7.0/hanzo_mcp/tools/agent/review_tool.py +433 -0
  35. hanzo_mcp-0.7.0/hanzo_mcp/tools/agent/swarm_tool.py +535 -0
  36. hanzo_mcp-0.7.0/hanzo_mcp/tools/agent/swarm_tool_v2.py +594 -0
  37. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/common/__init__.py +15 -1
  38. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/common/base.py +5 -4
  39. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/common/batch_tool.py +103 -11
  40. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/common/config_tool.py +2 -2
  41. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/common/context.py +2 -2
  42. hanzo_mcp-0.7.0/hanzo_mcp/tools/common/context_fix.py +26 -0
  43. hanzo_mcp-0.7.0/hanzo_mcp/tools/common/critic_tool.py +196 -0
  44. hanzo_mcp-0.7.0/hanzo_mcp/tools/common/decorators.py +208 -0
  45. hanzo_mcp-0.7.0/hanzo_mcp/tools/common/enhanced_base.py +106 -0
  46. hanzo_mcp-0.7.0/hanzo_mcp/tools/common/fastmcp_pagination.py +369 -0
  47. hanzo_mcp-0.7.0/hanzo_mcp/tools/common/forgiving_edit.py +243 -0
  48. hanzo_mcp-0.7.0/hanzo_mcp/tools/common/mode.py +116 -0
  49. hanzo_mcp-0.7.0/hanzo_mcp/tools/common/mode_loader.py +105 -0
  50. hanzo_mcp-0.7.0/hanzo_mcp/tools/common/paginated_base.py +230 -0
  51. hanzo_mcp-0.7.0/hanzo_mcp/tools/common/paginated_response.py +307 -0
  52. hanzo_mcp-0.7.0/hanzo_mcp/tools/common/pagination.py +226 -0
  53. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/common/permissions.py +1 -1
  54. hanzo_mcp-0.7.0/hanzo_mcp/tools/common/personality.py +936 -0
  55. hanzo_mcp-0.7.0/hanzo_mcp/tools/common/plugin_loader.py +287 -0
  56. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/common/stats.py +4 -4
  57. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/common/tool_list.py +4 -1
  58. hanzo_mcp-0.7.0/hanzo_mcp/tools/common/truncate.py +101 -0
  59. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/common/validation.py +1 -1
  60. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/config/__init__.py +3 -1
  61. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/config/config_tool.py +1 -1
  62. hanzo_mcp-0.7.0/hanzo_mcp/tools/config/mode_tool.py +209 -0
  63. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/database/__init__.py +1 -1
  64. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/editor/__init__.py +1 -1
  65. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/filesystem/__init__.py +48 -14
  66. hanzo_mcp-0.7.0/hanzo_mcp/tools/filesystem/ast_multi_edit.py +562 -0
  67. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/filesystem/batch_search.py +3 -3
  68. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/filesystem/diff.py +2 -2
  69. hanzo_mcp-0.7.0/hanzo_mcp/tools/filesystem/directory_tree_paginated.py +338 -0
  70. hanzo_mcp-0.7.0/hanzo_mcp/tools/filesystem/rules_tool.py +235 -0
  71. hanzo_mcp-0.6.12/hanzo_mcp/tools/filesystem/unified_search.py → hanzo_mcp-0.7.0/hanzo_mcp/tools/filesystem/search_tool.py +12 -12
  72. hanzo_mcp-0.6.12/hanzo_mcp/tools/filesystem/symbols_unified.py → hanzo_mcp-0.7.0/hanzo_mcp/tools/filesystem/symbols_tool.py +104 -5
  73. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/filesystem/watch.py +3 -2
  74. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/jupyter/__init__.py +2 -2
  75. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/jupyter/jupyter.py +1 -1
  76. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/llm/__init__.py +3 -3
  77. hanzo_mcp-0.6.12/hanzo_mcp/tools/llm/llm_unified.py → hanzo_mcp-0.7.0/hanzo_mcp/tools/llm/llm_tool.py +2 -2
  78. hanzo_mcp-0.7.0/hanzo_mcp/tools/lsp/__init__.py +5 -0
  79. hanzo_mcp-0.7.0/hanzo_mcp/tools/lsp/lsp_tool.py +512 -0
  80. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/mcp/__init__.py +2 -2
  81. hanzo_mcp-0.6.12/hanzo_mcp/tools/mcp/mcp_unified.py → hanzo_mcp-0.7.0/hanzo_mcp/tools/mcp/mcp_tool.py +3 -3
  82. hanzo_mcp-0.7.0/hanzo_mcp/tools/memory/__init__.py +76 -0
  83. hanzo_mcp-0.7.0/hanzo_mcp/tools/memory/knowledge_tools.py +518 -0
  84. hanzo_mcp-0.7.0/hanzo_mcp/tools/memory/memory_tools.py +456 -0
  85. hanzo_mcp-0.7.0/hanzo_mcp/tools/search/__init__.py +6 -0
  86. hanzo_mcp-0.7.0/hanzo_mcp/tools/search/find_tool.py +581 -0
  87. hanzo_mcp-0.7.0/hanzo_mcp/tools/search/unified_search.py +953 -0
  88. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/shell/__init__.py +11 -6
  89. hanzo_mcp-0.7.0/hanzo_mcp/tools/shell/auto_background.py +203 -0
  90. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/shell/base_process.py +57 -29
  91. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/shell/bash_session_executor.py +1 -1
  92. hanzo_mcp-0.6.12/hanzo_mcp/tools/shell/bash_unified.py → hanzo_mcp-0.7.0/hanzo_mcp/tools/shell/bash_tool.py +18 -34
  93. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/shell/command_executor.py +2 -2
  94. hanzo_mcp-0.6.12/hanzo_mcp/tools/shell/npx_unified.py → hanzo_mcp-0.7.0/hanzo_mcp/tools/shell/npx_tool.py +16 -33
  95. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/shell/open.py +2 -2
  96. hanzo_mcp-0.6.12/hanzo_mcp/tools/shell/process_unified.py → hanzo_mcp-0.7.0/hanzo_mcp/tools/shell/process_tool.py +1 -1
  97. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/shell/run_command_windows.py +1 -1
  98. hanzo_mcp-0.7.0/hanzo_mcp/tools/shell/streaming_command.py +594 -0
  99. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/shell/uvx.py +47 -2
  100. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/shell/uvx_background.py +47 -2
  101. hanzo_mcp-0.6.12/hanzo_mcp/tools/shell/uvx_unified.py → hanzo_mcp-0.7.0/hanzo_mcp/tools/shell/uvx_tool.py +16 -33
  102. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/todo/__init__.py +14 -19
  103. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/todo/todo.py +22 -1
  104. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/vector/__init__.py +1 -1
  105. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/vector/infinity_store.py +2 -2
  106. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/vector/project_manager.py +1 -1
  107. hanzo_mcp-0.7.0/hanzo_mcp/types.py +23 -0
  108. hanzo_mcp-0.7.0/hanzo_mcp.egg-info/PKG-INFO +516 -0
  109. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp.egg-info/SOURCES.txt +77 -15
  110. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp.egg-info/entry_points.txt +1 -0
  111. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp.egg-info/requires.txt +3 -0
  112. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/pyproject.toml +3 -1
  113. hanzo_mcp-0.7.0/tests/test_batch_tool_edge_cases.py +259 -0
  114. hanzo_mcp-0.7.0/tests/test_cli_agents.py +233 -0
  115. hanzo_mcp-0.7.0/tests/test_failure_cases.py +215 -0
  116. hanzo_mcp-0.7.0/tests/test_hanzo_mcp_integration.py +371 -0
  117. hanzo_mcp-0.7.0/tests/test_hanzo_mcp_local.py +288 -0
  118. hanzo_mcp-0.7.0/tests/test_hanzo_mcp_simple.py +203 -0
  119. hanzo_mcp-0.7.0/tests/test_hanzo_network_integration.py +566 -0
  120. hanzo_mcp-0.7.0/tests/test_integration.py +514 -0
  121. hanzo_mcp-0.7.0/tests/test_lsp_tool.py +176 -0
  122. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/tests/test_manual.py +5 -5
  123. hanzo_mcp-0.7.0/tests/test_memory_edge_cases.py +454 -0
  124. hanzo_mcp-0.7.0/tests/test_memory_tools.py +197 -0
  125. hanzo_mcp-0.7.0/tests/test_memory_tools_comprehensive.py +618 -0
  126. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/tests/test_new_tools.py +1 -1
  127. hanzo_mcp-0.7.0/tests/test_performance.py +401 -0
  128. hanzo_mcp-0.6.12/tests/test_unified_search.py → hanzo_mcp-0.7.0/tests/test_search.py +49 -49
  129. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/tests/test_search_quality.py +2 -2
  130. hanzo_mcp-0.7.0/tests/test_shell_features.py +308 -0
  131. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/tests/test_simple.py +7 -12
  132. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/tests/test_stdio_simple.py +2 -1
  133. hanzo_mcp-0.7.0/tests/test_streaming_command.py +302 -0
  134. hanzo_mcp-0.7.0/tests/test_swarm_simple.py +264 -0
  135. hanzo_mcp-0.7.0/tests/test_tools_suite.py +473 -0
  136. hanzo_mcp-0.7.0/tests/test_unified_search.py +237 -0
  137. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/tests/test_vector_store.py +3 -3
  138. hanzo_mcp-0.7.0/tests/test_web3_integration.py +409 -0
  139. hanzo_mcp-0.6.12/LICENSE +0 -21
  140. hanzo_mcp-0.6.12/PKG-INFO +0 -339
  141. hanzo_mcp-0.6.12/README.md +0 -279
  142. hanzo_mcp-0.6.12/hanzo_mcp/tools/agent/__init__.py +0 -56
  143. hanzo_mcp-0.6.12/hanzo_mcp/tools/common/palette.py +0 -344
  144. hanzo_mcp-0.6.12/hanzo_mcp/tools/common/palette_loader.py +0 -108
  145. hanzo_mcp-0.6.12/hanzo_mcp/tools/config/palette_tool.py +0 -179
  146. hanzo_mcp-0.6.12/hanzo_mcp/tools/llm/llm_tool.py +0 -346
  147. hanzo_mcp-0.6.12/hanzo_mcp.egg-info/PKG-INFO +0 -339
  148. hanzo_mcp-0.6.12/setup.py +0 -51
  149. hanzo_mcp-0.6.12/tests/test_palette.py +0 -35
  150. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/__main__.py +0 -0
  151. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/prompts/__init__.py +0 -0
  152. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/prompts/compact_conversation.py +0 -0
  153. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/prompts/create_release.py +0 -0
  154. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/prompts/project_todo_reminder.py +0 -0
  155. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/prompts/utils.py +0 -0
  156. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/agent/agent.py +0 -0
  157. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/agent/tool_adapter.py +0 -0
  158. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/common/thinking_tool.py +0 -0
  159. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/common/tool_disable.py +0 -0
  160. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/common/tool_enable.py +0 -0
  161. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/config/index_config.py +0 -0
  162. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/database/database_manager.py +0 -0
  163. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/database/graph.py +0 -0
  164. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/database/graph_add.py +0 -0
  165. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/database/graph_query.py +0 -0
  166. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/database/graph_remove.py +0 -0
  167. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/database/graph_search.py +0 -0
  168. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/database/graph_stats.py +0 -0
  169. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/database/sql.py +0 -0
  170. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/database/sql_query.py +0 -0
  171. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/database/sql_search.py +0 -0
  172. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/database/sql_stats.py +0 -0
  173. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/editor/neovim_command.py +0 -0
  174. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/editor/neovim_edit.py +0 -0
  175. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/editor/neovim_session.py +0 -0
  176. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/filesystem/base.py +0 -0
  177. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/filesystem/content_replace.py +0 -0
  178. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/filesystem/directory_tree.py +0 -0
  179. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/filesystem/edit.py +0 -0
  180. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/filesystem/find.py +0 -0
  181. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/filesystem/find_files.py +0 -0
  182. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/filesystem/git_search.py +0 -0
  183. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/filesystem/grep.py +0 -0
  184. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/filesystem/multi_edit.py +0 -0
  185. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/filesystem/read.py +0 -0
  186. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/filesystem/symbols.py +0 -0
  187. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/filesystem/tree.py +0 -0
  188. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/filesystem/unix_aliases.py +0 -0
  189. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/filesystem/write.py +0 -0
  190. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/jupyter/base.py +0 -0
  191. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/jupyter/notebook_edit.py +0 -0
  192. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/jupyter/notebook_read.py +0 -0
  193. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/llm/consensus_tool.py +0 -0
  194. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/llm/llm_manage.py +0 -0
  195. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/llm/provider_tools.py +0 -0
  196. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/mcp/mcp_add.py +0 -0
  197. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/mcp/mcp_remove.py +0 -0
  198. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/mcp/mcp_stats.py +0 -0
  199. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/shell/base.py +0 -0
  200. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/shell/bash_session.py +0 -0
  201. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/shell/logs.py +0 -0
  202. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/shell/npx.py +0 -0
  203. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/shell/npx_background.py +0 -0
  204. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/shell/pkill.py +0 -0
  205. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/shell/processes.py +0 -0
  206. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/shell/run_background.py +0 -0
  207. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/shell/run_command.py +0 -0
  208. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/shell/session_manager.py +0 -0
  209. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/shell/session_storage.py +0 -0
  210. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/todo/base.py +0 -0
  211. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/todo/todo_read.py +0 -0
  212. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/todo/todo_write.py +0 -0
  213. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/vector/ast_analyzer.py +0 -0
  214. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/vector/git_ingester.py +0 -0
  215. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/vector/index_tool.py +0 -0
  216. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/vector/mock_infinity.py +0 -0
  217. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/vector/vector.py +0 -0
  218. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/vector/vector_index.py +0 -0
  219. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp/tools/vector/vector_search.py +0 -0
  220. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp.egg-info/dependency_links.txt +0 -0
  221. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/hanzo_mcp.egg-info/top_level.txt +0 -0
  222. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/setup.cfg +0 -0
  223. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/tests/test_async_support.py +0 -0
  224. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/tests/test_cli.py +0 -0
  225. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/tests/test_git_ingestion.py +0 -0
  226. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/tests/test_litellm_warnings.py +0 -0
  227. {hanzo_mcp-0.6.12 → hanzo_mcp-0.7.0}/tests/test_stdio_protocol.py +0 -0
@@ -0,0 +1,516 @@
1
+ Metadata-Version: 2.4
2
+ Name: hanzo-mcp
3
+ Version: 0.7.0
4
+ Summary: The Zen of Hanzo MCP: One server to rule them all. The ultimate MCP that orchestrates all others.
5
+ Author-email: Hanzo Industries Inc <dev@hanzo.ai>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/hanzoai/mcp
8
+ Project-URL: Bug Tracker, https://github.com/hanzoai/mcp/issues
9
+ Project-URL: Documentation, https://mcp.hanzo.ai
10
+ Keywords: mcp,claude,hanzo,code,agent
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Operating System :: OS Independent
14
+ Requires-Python: >=3.12
15
+ Description-Content-Type: text/markdown
16
+ Requires-Dist: mcp>=1.9.4
17
+ Requires-Dist: fastmcp>=2.9.2
18
+ Requires-Dist: httpx>=0.28.1
19
+ Requires-Dist: uvicorn>=0.34.0
20
+ Requires-Dist: openai>=1.62.0
21
+ Requires-Dist: python-dotenv>=1.0.1
22
+ Requires-Dist: litellm>=1.73.2
23
+ Requires-Dist: grep-ast>=0.8.1
24
+ Requires-Dist: bashlex>=0.18
25
+ Requires-Dist: libtmux>=0.39.0
26
+ Requires-Dist: nbformat>=5.10.4
27
+ Requires-Dist: psutil>=6.1.1
28
+ Requires-Dist: pydantic>=2.11.1
29
+ Requires-Dist: pydantic-settings>=2.7.0
30
+ Requires-Dist: typing-extensions>=4.13.0
31
+ Requires-Dist: watchdog>=6.0.0
32
+ Provides-Extra: dev
33
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
34
+ Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
35
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
36
+ Requires-Dist: black>=23.3.0; extra == "dev"
37
+ Requires-Dist: sphinx>=8.0.0; extra == "dev"
38
+ Requires-Dist: sphinx-rtd-theme>=3.0.0; extra == "dev"
39
+ Requires-Dist: myst-parser>=4.0.0; extra == "dev"
40
+ Requires-Dist: sphinx-copybutton>=0.5.0; extra == "dev"
41
+ Provides-Extra: docs
42
+ Requires-Dist: sphinx>=8.0.0; extra == "docs"
43
+ Requires-Dist: sphinx-rtd-theme>=3.0.0; extra == "docs"
44
+ Requires-Dist: myst-parser>=4.0.0; extra == "docs"
45
+ Requires-Dist: sphinx-copybutton>=0.5.0; extra == "docs"
46
+ Provides-Extra: analytics
47
+ Requires-Dist: posthog>=3.0.0; extra == "analytics"
48
+ Provides-Extra: test
49
+ Requires-Dist: pytest>=7.0.0; extra == "test"
50
+ Requires-Dist: pytest-cov>=4.1.0; extra == "test"
51
+ Requires-Dist: pytest-mock>=3.10.0; extra == "test"
52
+ Requires-Dist: pytest-asyncio>=0.25.3; extra == "test"
53
+ Requires-Dist: twisted; extra == "test"
54
+ Provides-Extra: performance
55
+ Requires-Dist: ujson>=5.7.0; extra == "performance"
56
+ Requires-Dist: orjson>=3.9.0; extra == "performance"
57
+ Provides-Extra: publish
58
+ Requires-Dist: twine>=4.0.2; extra == "publish"
59
+ Requires-Dist: build>=1.0.3; extra == "publish"
60
+
61
+ # Hanzo AI - The Zen of Model Context Protocol
62
+
63
+ [![Documentation](https://img.shields.io/badge/docs-mcp.hanzo.ai-blue?style=for-the-badge)](https://mcp.hanzo.ai)
64
+ [![PyPI](https://img.shields.io/pypi/v/hanzo-mcp?style=for-the-badge)](https://pypi.org/project/hanzo-mcp/)
65
+ [![Download DXT](https://img.shields.io/github/v/release/hanzoai/mcp?label=Download%20DXT&style=for-the-badge)](https://github.com/hanzoai/mcp/releases/latest/download/hanzo-mcp.dxt)
66
+ [![License](https://img.shields.io/github/license/hanzoai/mcp?style=for-the-badge)](https://github.com/hanzoai/mcp/blob/main/LICENSE)
67
+ [![Join our Discord](https://img.shields.io/discord/YOUR_DISCORD_ID?style=for-the-badge&logo=discord)](https://discord.gg/hanzoai)
68
+
69
+ ## 🥷 The Complete AI Development Ecosystem via MCP
70
+
71
+ **One unified interface to orchestrate your entire development workflow.**
72
+
73
+ Hanzo AI is more than an MCP server—it's a comprehensive ecosystem of interconnected development tools designed for the AI era. From interactive notebooks with multi-language support to advanced debugging, from intelligent code search to multi-agent workflows, everything works together seamlessly through the Model Context Protocol.
74
+
75
+ ```bash
76
+ # Install and rule your development world
77
+ uvx hanzo-mcp
78
+
79
+ # Or use our one-click Desktop Extension
80
+ # Download from releases and double-click to install
81
+ ```
82
+
83
+ > **Note on Installation**: If uvx is not installed, Hanzo will automatically install it for you in your home directory. No manual setup required!
84
+
85
+ ## 🌐 The Hanzo Ecosystem
86
+
87
+ ### Integrated Development Environment
88
+ ```mermaid
89
+ graph LR
90
+ A[Hanzo MCP] --> B[Interactive Notebooks]
91
+ A --> C[Code Intelligence]
92
+ A --> D[Multi-Agent System]
93
+ A --> E[Project Management]
94
+
95
+ B --> B1[Multi-Language REPL]
96
+ B --> B2[SoS Kernels]
97
+ B --> B3[Live Debugging]
98
+
99
+ C --> C1[LSP Integration]
100
+ C --> C2[AST Analysis]
101
+ C --> C3[Semantic Search]
102
+
103
+ D --> D1[Agent Networks]
104
+ D --> D2[Tool Orchestration]
105
+ D --> D3[Consensus Systems]
106
+
107
+ E --> E1[Git Integration]
108
+ E --> E2[Task Management]
109
+ E --> E3[Quality Control]
110
+ ```
111
+
112
+ ### 🎯 Why Hanzo AI?
113
+
114
+ **The Problem with Fragmented Tools**
115
+ - Install 10 different tools that don't talk to each other
116
+ - Context switching between interfaces kills productivity
117
+ - No unified way to orchestrate complex workflows
118
+ - Missing the power of tool composition
119
+
120
+ **The Hanzo Solution**
121
+ - **Unified Ecosystem**: 70+ tools that work together seamlessly
122
+ - **Intelligent Orchestration**: Tools that understand context and collaborate
123
+ - **Interactive Development**: From REPL to debugging in one interface
124
+ - **Quality Built-in**: Automated review, testing, and best practices
125
+ - **Extensible Platform**: Add any MCP server or custom tool
126
+
127
+ ## 🚀 Core Capabilities
128
+
129
+ ### 📓 Interactive Development Environment
130
+
131
+ #### Multi-Language Notebooks with SoS
132
+ ```python
133
+ # Work with multiple languages in one notebook
134
+ notebook(
135
+ action="create",
136
+ path="analysis.ipynb",
137
+ kernels=["python3", "R", "javascript", "bash"]
138
+ )
139
+
140
+ # Write and execute code interactively
141
+ notebook(
142
+ action="write",
143
+ cell_type="code",
144
+ content="""
145
+ # Python cell
146
+ data = load_dataset()
147
+ processed = clean_data(data)
148
+ """,
149
+ kernel="python3"
150
+ )
151
+
152
+ # Step through execution line by line
153
+ notebook(
154
+ action="step",
155
+ cell_id="cell_123",
156
+ lines=[1, 2, 3] # Execute specific lines
157
+ )
158
+
159
+ # Read results and outputs
160
+ result = notebook(
161
+ action="read",
162
+ cell_id="cell_123",
163
+ include_outputs=True
164
+ )
165
+
166
+ # Launch debugger for interactive debugging
167
+ debugger(
168
+ notebook="analysis.ipynb",
169
+ cell_id="cell_123",
170
+ breakpoint=15
171
+ )
172
+ ```
173
+
174
+ #### Interactive REPL Sessions
175
+ ```python
176
+ # Start multi-language REPL
177
+ repl(
178
+ languages=["python", "javascript", "go"],
179
+ project_dir="/path/to/project",
180
+ share_context=True # Share variables between languages
181
+ )
182
+
183
+ # Execute code with full project context
184
+ repl.execute("""
185
+ import project_module
186
+ result = project_module.process()
187
+ """, language="python")
188
+ ```
189
+
190
+ ### 🧠 Advanced AI Tools
191
+
192
+ #### Multi-Agent Workflows
193
+ ```python
194
+ # Delegate complex tasks to specialized agents
195
+ agent(
196
+ prompts=["Find all API endpoints", "Document each endpoint", "Generate OpenAPI spec"],
197
+ parallel=True # Run agents concurrently
198
+ )
199
+
200
+ # Get consensus from multiple LLMs
201
+ consensus(
202
+ prompt="Review this architecture decision",
203
+ providers=["openai", "anthropic", "google"],
204
+ threshold=0.8 # Require 80% agreement
205
+ )
206
+ ```
207
+
208
+ #### Built-in Code Critic
209
+ ```python
210
+ # Force high-quality standards with the critic tool
211
+ critic(
212
+ analysis="Review authentication implementation for security issues"
213
+ )
214
+ # The critic will:
215
+ # - Find potential bugs and edge cases
216
+ # - Ensure proper error handling
217
+ # - Verify test coverage
218
+ # - Check security implications
219
+ # - Suggest improvements
220
+ # - Enforce best practices
221
+ ```
222
+
223
+ ### 📝 Project Intelligence
224
+
225
+ #### Automatic Rules Discovery
226
+ ```python
227
+ # Reads your project preferences automatically
228
+ rules() # Finds .cursorrules, .claude/code.md, etc.
229
+ # Understands your:
230
+ # - Coding standards
231
+ # - Project conventions
232
+ # - AI assistant preferences
233
+ # - Team guidelines
234
+ ```
235
+
236
+ #### Unified Todo Management
237
+ ```python
238
+ # Single tool for all task management
239
+ todo("Add authentication to API")
240
+ todo --action update --id abc123 --status in_progress
241
+ todo --action list --filter pending
242
+ ```
243
+
244
+ ### 🔍 Intelligent Code Intelligence
245
+
246
+ #### Unified Search Engine
247
+ ```python
248
+ # One search to rule them all - automatically runs in parallel:
249
+ # - Text search with ripgrep
250
+ # - AST analysis for code structure
251
+ # - Vector search for semantic meaning
252
+ # - Git history search (integrated into git tool)
253
+ # - Symbol search with LSP
254
+ # - Memory search for past discussions
255
+ search("authentication flow")
256
+ ```
257
+
258
+ #### Language Server Protocol (LSP) Integration
259
+ ```python
260
+ # Full LSP support with jupyter-lsp integration
261
+ lsp(
262
+ action="initialize",
263
+ language="python",
264
+ project_dir="/path/to/project"
265
+ )
266
+
267
+ # Go to definition, find references, rename symbols
268
+ lsp.goto_definition("UserService.authenticate")
269
+ lsp.find_references("API_KEY")
270
+ lsp.rename_symbol("oldFunction", "newFunction")
271
+
272
+ # Get diagnostics and hover information
273
+ diagnostics = lsp.get_diagnostics("main.py")
274
+ info = lsp.hover("mysterious_function", line=42, col=15)
275
+ ```
276
+
277
+ #### Git Integration (with built-in search)
278
+ ```python
279
+ # All git operations in one tool
280
+ git("status")
281
+ git("diff", "--cached")
282
+ git("log", "--oneline", "-10")
283
+
284
+ # Git search is now part of the git tool
285
+ git("search", pattern="TODO", history=True)
286
+ git("blame", file="src/auth.py", line=42)
287
+ git("show", commit="abc123:src/main.py")
288
+ ```
289
+
290
+ ### 🎨 Palette System - Opinions Are Just Configurations
291
+ ```python
292
+ # Don't like our defaults? Switch instantly
293
+ palette --action activate python # Python development focused
294
+ palette --action activate javascript # Node.js/React optimized
295
+ palette --action activate devops # Infrastructure tools
296
+ palette --action activate academic # Research & documentation
297
+
298
+ # Create your own workflow
299
+ palette_create(
300
+ name="my-workflow",
301
+ tools=["read", "write", "edit", "search", "critic", "agent"],
302
+ env_vars={"EDITOR": "nvim", "SEARCH": "ripgrep"}
303
+ )
304
+ ```
305
+
306
+ ### 🔌 MCP Server Orchestration
307
+ ```python
308
+ # Add any MCP server dynamically
309
+ mcp --action add --url "github.com/someone/their-mcp" --alias "their"
310
+
311
+ # Use their tools seamlessly
312
+ their_tool(action="whatever", params=...)
313
+
314
+ # Remove when done
315
+ mcp --action remove --alias "their"
316
+ ```
317
+
318
+ ## 🛠️ Comprehensive Tool Ecosystem
319
+
320
+ ### 📝 Interactive Development
321
+ - **notebook** - Multi-language notebooks with SoS (read/write/step/debug)
322
+ - **repl** - Interactive multi-language REPL with shared context
323
+ - **debugger** - Full debugging support with breakpoints and stepping
324
+ - **lsp** - Language Server Protocol with jupyter-lsp integration
325
+
326
+ ### 🔍 Code Intelligence
327
+ - **search** - Unified multi-modal search (text/AST/vector/git/memory)
328
+ - **symbols** - AST-aware navigation with tree-sitter
329
+ - **find** - Fast file/directory discovery
330
+ - **grep** - Pattern matching with ripgrep
331
+ - **ast** - Code structure analysis
332
+
333
+ ### 📁 File Operations
334
+ - **read/write/edit/multi_edit** - Intelligent file operations
335
+ - **tree** - Visual directory structures
336
+ - **watch** - File monitoring with notifications
337
+ - **diff** - Visual comparisons
338
+
339
+ ### 🤖 AI & Automation
340
+ - **agent** - Multi-agent task delegation
341
+ - **consensus** - Multi-LLM agreement and validation
342
+ - **think** - Structured reasoning workspace
343
+ - **critic** - Automated code review and quality
344
+ - **batch** - Parallel tool execution
345
+
346
+ ### 🖥️ System & Process
347
+ - **bash** - Command execution with session management
348
+ - **npx/uvx** - Package runners with auto-install
349
+ - **process** - Background process management
350
+ - **git** - Complete git integration with search
351
+
352
+ ### 📊 Data & Analytics
353
+ - **vector** - Semantic search and indexing
354
+ - **sql** - Database operations and queries
355
+ - **graph** - Graph database operations
356
+ - **stats** - Performance and usage analytics
357
+
358
+ ### 🎯 Project Management
359
+ - **todo** - Unified task management
360
+ - **rules** - Project preferences discovery
361
+ - **palette** - Tool configuration presets
362
+ - **mcp** - Dynamic MCP server orchestration
363
+
364
+ ## 🚀 Quick Start
365
+
366
+ ### Installation Methods
367
+
368
+ #### 1. Via pip/uv (Recommended)
369
+ ```bash
370
+ # Installs globally
371
+ uvx hanzo-mcp
372
+
373
+ # Don't have uv? No problem - we'll install it for you!
374
+ curl -LsSf https://pypi.org/simple/hanzo-mcp | python3
375
+ ```
376
+
377
+ #### 2. Desktop Extension (One-Click)
378
+ 1. Download `hanzo-mcp.dxt` from [latest release](https://github.com/hanzoai/mcp/releases/latest)
379
+ 2. Double-click to install in Claude Desktop
380
+ 3. Restart Claude Desktop
381
+
382
+ #### 3. Manual Configuration
383
+ ```json
384
+ // Add to Claude Desktop config
385
+ {
386
+ "mcpServers": {
387
+ "hanzo": {
388
+ "command": "uvx",
389
+ "args": ["hanzo-mcp"],
390
+ "env": {
391
+ "HANZO_ALLOWED_PATHS": "/Users/you/projects"
392
+ }
393
+ }
394
+ }
395
+ }
396
+ ```
397
+
398
+ ## 🔗 Ecosystem Integration
399
+
400
+ ### Everything Works Together
401
+ ```python
402
+ # Example: AI-assisted debugging workflow
403
+ # 1. Find the bug
404
+ search("null pointer exception")
405
+
406
+ # 2. Open in notebook for investigation
407
+ notebook(
408
+ action="create",
409
+ path="debug_session.ipynb",
410
+ import_code="src/auth.py:42-58"
411
+ )
412
+
413
+ # 3. Set breakpoints and debug
414
+ debugger(
415
+ notebook="debug_session.ipynb",
416
+ breakpoints=[45, 52]
417
+ )
418
+
419
+ # 4. Get AI analysis
420
+ critic("Analyze this exception and suggest fixes")
421
+
422
+ # 5. Apply the fix
423
+ edit("src/auth.py", old="user.name", new="user?.name")
424
+
425
+ # 6. Verify with tests
426
+ bash("pytest tests/test_auth.py -v")
427
+ ```
428
+
429
+ ### Tool Composition Power
430
+ - **Search → Notebook → Debug** - Investigate issues interactively
431
+ - **Agent → Critic → Test** - Automated quality workflows
432
+ - **LSP → AST → Edit** - Intelligent refactoring
433
+ - **Git → Search → Todo** - Project management workflows
434
+
435
+ ## 🏆 Why Developers Love Hanzo
436
+
437
+ ### Smart Defaults
438
+ - **Auto-installs** missing dependencies and language servers
439
+ - **Discovers** project rules and preferences automatically
440
+ - **Parallel** operations by default for speed
441
+ - **Intelligent** fallbacks when tools aren't available
442
+
443
+ ### Quality First
444
+ - **Built-in critic** for automated code review
445
+ - **Test enforcement** in all workflows
446
+ - **Security scanning** in operations
447
+ - **Best practices** enforced by default
448
+
449
+ ### Truly Extensible
450
+ - **Palette system** for instant context switching
451
+ - **MCP orchestration** to add any server dynamically
452
+ - **Plugin architecture** for custom tools
453
+ - **Everything is an API** for maximum flexibility
454
+
455
+ ## 📊 Performance
456
+
457
+ - **65-70 tools** available instantly
458
+ - **Parallel execution** reduces wait times by 80%
459
+ - **Smart caching** for repeated operations
460
+ - **Minimal dependencies** for fast startup
461
+
462
+ ## 🤝 Contributing
463
+
464
+ We welcome contributions! The codebase is designed for extensibility:
465
+
466
+ 1. **Add a Tool**: Drop a file in `hanzo_mcp/tools/`
467
+ 2. **Create a Palette**: Define tool collections
468
+ 3. **Share Workflows**: Contribute your configurations
469
+
470
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
471
+
472
+ ## 📚 Documentation
473
+
474
+ - **[Installation Guide](https://mcp.hanzo.ai/install)** - All installation methods
475
+ - **[Tool Reference](https://mcp.hanzo.ai/tools)** - Complete tool documentation
476
+ - **[Palette System](https://mcp.hanzo.ai/palettes)** - Customize your workflow
477
+ - **[MCP Orchestration](https://mcp.hanzo.ai/orchestration)** - Extend with any MCP
478
+ - **[Best Practices](https://mcp.hanzo.ai/best-practices)** - Pro tips
479
+
480
+ ## 🌟 Testimonials
481
+
482
+ > "The critic tool alone is worth it. My code quality improved overnight." - *Sr. Engineer at Fortune 500*
483
+
484
+ > "Finally, search that actually works. It knows what I mean, not just what I type." - *AI Researcher*
485
+
486
+ > "I threw away 15 different tools and just use Hanzo now. The palette system means I can switch from Python to DevOps to writing in seconds." - *Tech Lead*
487
+
488
+ ## 📈 Project Status
489
+
490
+ - **Version**: 0.7.x (Production Ready)
491
+ - **Tools**: 70+ interconnected tools
492
+ - **Ecosystems**: Interactive notebooks, debugging, LSP, multi-agent
493
+ - **Languages**: Python, JavaScript, Go, R, Julia, Bash, and more via SoS
494
+ - **Community**: Active and growing
495
+ - **Updates**: Continuous improvements
496
+
497
+ ## 🛡️ Security
498
+
499
+ - **Sandboxed execution** for all operations
500
+ - **Permission system** for file access
501
+ - **Audit trails** for compliance
502
+ - **No telemetry** without consent
503
+
504
+ ## 🎯 The Zen of Hanzo
505
+
506
+ 1. **One Tool, One Purpose** - Each tool masters one thing
507
+ 2. **Quality Over Quantity** - Better to do it right
508
+ 3. **Parallel When Possible** - Time is precious
509
+ 4. **Smart Defaults** - It should just work
510
+ 5. **Extensible Always** - Your workflow, your way
511
+
512
+ ---
513
+
514
+ *Built with ❤️ by developers, for developers. Because life's too short for bad tools.*
515
+
516
+ **[Get Started Now →](https://mcp.hanzo.ai)**