hanzo-mcp 0.5.2__tar.gz → 0.6.1__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 (152) hide show
  1. hanzo_mcp-0.6.1/PKG-INFO +336 -0
  2. hanzo_mcp-0.6.1/README.md +277 -0
  3. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/__init__.py +1 -1
  4. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/cli.py +32 -0
  5. hanzo_mcp-0.6.1/hanzo_mcp/dev_server.py +246 -0
  6. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/prompts/__init__.py +1 -1
  7. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/prompts/project_system.py +43 -7
  8. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/server.py +5 -1
  9. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/__init__.py +66 -35
  10. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/agent/__init__.py +1 -1
  11. hanzo_mcp-0.6.1/hanzo_mcp/tools/agent/agent.py +401 -0
  12. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/agent/agent_tool.py +3 -4
  13. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/common/__init__.py +1 -1
  14. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/common/base.py +2 -2
  15. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/common/batch_tool.py +3 -5
  16. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/common/config_tool.py +1 -1
  17. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/common/context.py +1 -1
  18. hanzo_mcp-0.6.1/hanzo_mcp/tools/common/palette.py +344 -0
  19. hanzo_mcp-0.6.1/hanzo_mcp/tools/common/palette_loader.py +108 -0
  20. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/common/stats.py +1 -1
  21. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/common/thinking_tool.py +3 -5
  22. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/common/tool_disable.py +1 -1
  23. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/common/tool_enable.py +1 -1
  24. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/common/tool_list.py +49 -52
  25. hanzo_mcp-0.6.1/hanzo_mcp/tools/config/__init__.py +10 -0
  26. hanzo_mcp-0.6.1/hanzo_mcp/tools/config/config_tool.py +212 -0
  27. hanzo_mcp-0.6.1/hanzo_mcp/tools/config/index_config.py +176 -0
  28. hanzo_mcp-0.6.1/hanzo_mcp/tools/config/palette_tool.py +166 -0
  29. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/database/__init__.py +1 -1
  30. hanzo_mcp-0.6.1/hanzo_mcp/tools/database/graph.py +482 -0
  31. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/database/graph_add.py +1 -1
  32. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/database/graph_query.py +1 -1
  33. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/database/graph_remove.py +1 -1
  34. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/database/graph_search.py +1 -1
  35. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/database/graph_stats.py +1 -1
  36. hanzo_mcp-0.6.1/hanzo_mcp/tools/database/sql.py +411 -0
  37. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/database/sql_query.py +1 -1
  38. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/database/sql_search.py +1 -1
  39. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/database/sql_stats.py +1 -1
  40. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/editor/neovim_command.py +1 -1
  41. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/editor/neovim_edit.py +1 -1
  42. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/editor/neovim_session.py +1 -1
  43. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/filesystem/__init__.py +42 -13
  44. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/filesystem/base.py +1 -1
  45. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/filesystem/batch_search.py +4 -4
  46. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/filesystem/content_replace.py +3 -5
  47. hanzo_mcp-0.6.1/hanzo_mcp/tools/filesystem/diff.py +193 -0
  48. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/filesystem/directory_tree.py +3 -5
  49. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/filesystem/edit.py +3 -5
  50. hanzo_mcp-0.6.1/hanzo_mcp/tools/filesystem/find.py +443 -0
  51. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/filesystem/find_files.py +1 -1
  52. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/filesystem/git_search.py +1 -1
  53. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/filesystem/grep.py +2 -2
  54. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/filesystem/multi_edit.py +3 -5
  55. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/filesystem/read.py +17 -5
  56. hanzo_mcp-0.5.2/hanzo_mcp/tools/filesystem/grep_ast_tool.py → hanzo_mcp-0.6.1/hanzo_mcp/tools/filesystem/symbols.py +17 -27
  57. hanzo_mcp-0.6.1/hanzo_mcp/tools/filesystem/symbols_unified.py +376 -0
  58. hanzo_mcp-0.6.1/hanzo_mcp/tools/filesystem/tree.py +268 -0
  59. hanzo_mcp-0.6.1/hanzo_mcp/tools/filesystem/unified_search.py +711 -0
  60. hanzo_mcp-0.6.1/hanzo_mcp/tools/filesystem/unix_aliases.py +99 -0
  61. hanzo_mcp-0.6.1/hanzo_mcp/tools/filesystem/watch.py +174 -0
  62. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/filesystem/write.py +3 -5
  63. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/jupyter/__init__.py +9 -12
  64. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/jupyter/base.py +1 -1
  65. hanzo_mcp-0.6.1/hanzo_mcp/tools/jupyter/jupyter.py +326 -0
  66. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/jupyter/notebook_edit.py +3 -4
  67. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/jupyter/notebook_read.py +3 -5
  68. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/llm/__init__.py +4 -0
  69. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/llm/consensus_tool.py +1 -1
  70. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/llm/llm_manage.py +1 -1
  71. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/llm/llm_tool.py +1 -1
  72. hanzo_mcp-0.6.1/hanzo_mcp/tools/llm/llm_unified.py +851 -0
  73. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/llm/provider_tools.py +1 -1
  74. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/mcp/__init__.py +4 -0
  75. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/mcp/mcp_add.py +1 -1
  76. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/mcp/mcp_remove.py +1 -1
  77. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/mcp/mcp_stats.py +1 -1
  78. hanzo_mcp-0.6.1/hanzo_mcp/tools/mcp/mcp_unified.py +503 -0
  79. hanzo_mcp-0.6.1/hanzo_mcp/tools/shell/__init__.py +65 -0
  80. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/shell/base.py +1 -1
  81. hanzo_mcp-0.6.1/hanzo_mcp/tools/shell/base_process.py +303 -0
  82. hanzo_mcp-0.6.1/hanzo_mcp/tools/shell/bash_unified.py +134 -0
  83. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/shell/logs.py +1 -1
  84. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/shell/npx.py +1 -1
  85. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/shell/npx_background.py +1 -1
  86. hanzo_mcp-0.6.1/hanzo_mcp/tools/shell/npx_unified.py +101 -0
  87. hanzo_mcp-0.6.1/hanzo_mcp/tools/shell/open.py +107 -0
  88. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/shell/pkill.py +1 -1
  89. hanzo_mcp-0.6.1/hanzo_mcp/tools/shell/process_unified.py +131 -0
  90. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/shell/processes.py +1 -1
  91. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/shell/run_background.py +1 -1
  92. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/shell/run_command.py +3 -4
  93. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/shell/run_command_windows.py +3 -4
  94. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/shell/uvx.py +1 -1
  95. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/shell/uvx_background.py +1 -1
  96. hanzo_mcp-0.6.1/hanzo_mcp/tools/shell/uvx_unified.py +101 -0
  97. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/todo/__init__.py +1 -1
  98. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/todo/base.py +1 -1
  99. hanzo_mcp-0.6.1/hanzo_mcp/tools/todo/todo.py +265 -0
  100. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/todo/todo_read.py +3 -5
  101. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/todo/todo_write.py +3 -5
  102. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/vector/__init__.py +1 -1
  103. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/vector/index_tool.py +1 -1
  104. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/vector/project_manager.py +27 -5
  105. hanzo_mcp-0.6.1/hanzo_mcp/tools/vector/vector.py +311 -0
  106. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/vector/vector_index.py +1 -1
  107. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/vector/vector_search.py +1 -1
  108. hanzo_mcp-0.6.1/hanzo_mcp.egg-info/PKG-INFO +336 -0
  109. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp.egg-info/SOURCES.txt +29 -1
  110. hanzo_mcp-0.6.1/hanzo_mcp.egg-info/entry_points.txt +3 -0
  111. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp.egg-info/requires.txt +17 -2
  112. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/pyproject.toml +23 -5
  113. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/tests/test_search_quality.py +4 -4
  114. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/tests/test_unified_search.py +2 -3
  115. hanzo_mcp-0.5.2/PKG-INFO +0 -276
  116. hanzo_mcp-0.5.2/README.md +0 -231
  117. hanzo_mcp-0.5.2/hanzo_mcp/tools/shell/__init__.py +0 -87
  118. hanzo_mcp-0.5.2/hanzo_mcp.egg-info/PKG-INFO +0 -276
  119. hanzo_mcp-0.5.2/hanzo_mcp.egg-info/entry_points.txt +0 -2
  120. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/LICENSE +0 -0
  121. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/cli_enhanced.py +0 -0
  122. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/config/__init__.py +0 -0
  123. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/config/settings.py +0 -0
  124. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/config/tool_config.py +0 -0
  125. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/prompts/compact_conversation.py +0 -0
  126. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/prompts/create_release.py +0 -0
  127. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/prompts/project_todo_reminder.py +0 -0
  128. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/prompts/utils.py +0 -0
  129. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/agent/prompt.py +0 -0
  130. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/agent/tool_adapter.py +0 -0
  131. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/common/permissions.py +0 -0
  132. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/common/validation.py +0 -0
  133. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/database/database_manager.py +0 -0
  134. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/editor/__init__.py +0 -0
  135. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/shell/bash_session.py +0 -0
  136. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/shell/bash_session_executor.py +0 -0
  137. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/shell/command_executor.py +0 -0
  138. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/shell/session_manager.py +0 -0
  139. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/shell/session_storage.py +0 -0
  140. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/vector/ast_analyzer.py +0 -0
  141. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/vector/git_ingester.py +0 -0
  142. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/vector/infinity_store.py +0 -0
  143. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp/tools/vector/mock_infinity.py +0 -0
  144. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp.egg-info/dependency_links.txt +0 -0
  145. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/hanzo_mcp.egg-info/top_level.txt +0 -0
  146. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/setup.cfg +0 -0
  147. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/setup.py +0 -0
  148. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/tests/test_async_support.py +0 -0
  149. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/tests/test_cli.py +0 -0
  150. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/tests/test_git_ingestion.py +0 -0
  151. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/tests/test_new_tools.py +0 -0
  152. {hanzo_mcp-0.5.2 → hanzo_mcp-0.6.1}/tests/test_vector_store.py +0 -0
@@ -0,0 +1,336 @@
1
+ Metadata-Version: 2.4
2
+ Name: hanzo-mcp
3
+ Version: 0.6.1
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
+ License-File: LICENSE
17
+ Requires-Dist: mcp>=1.6.0
18
+ Requires-Dist: fastmcp>=2.8.0
19
+ Requires-Dist: httpx>=0.27.0
20
+ Requires-Dist: uvicorn>=0.23.1
21
+ Requires-Dist: openai>=1.50.0
22
+ Requires-Dist: python-dotenv>=1.0.0
23
+ Requires-Dist: litellm>=1.40.14
24
+ Requires-Dist: grep-ast>=0.8.1
25
+ Requires-Dist: bashlex>=0.18
26
+ Requires-Dist: libtmux>=0.39.0
27
+ Requires-Dist: nbformat>=5.10.4
28
+ Requires-Dist: psutil>=6.1.0
29
+ Requires-Dist: pydantic>=2.10.0
30
+ Requires-Dist: typing-extensions>=4.12.2
31
+ Requires-Dist: watchdog>=3.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: test
47
+ Requires-Dist: pytest>=7.0.0; extra == "test"
48
+ Requires-Dist: pytest-cov>=4.1.0; extra == "test"
49
+ Requires-Dist: pytest-mock>=3.10.0; extra == "test"
50
+ Requires-Dist: pytest-asyncio>=0.25.3; extra == "test"
51
+ Requires-Dist: twisted; extra == "test"
52
+ Provides-Extra: performance
53
+ Requires-Dist: ujson>=5.7.0; extra == "performance"
54
+ Requires-Dist: orjson>=3.9.0; extra == "performance"
55
+ Provides-Extra: publish
56
+ Requires-Dist: twine>=4.0.2; extra == "publish"
57
+ Requires-Dist: build>=1.0.3; extra == "publish"
58
+ Dynamic: license-file
59
+
60
+ # Hanzo MCP - The Zen of Model Context Protocol
61
+
62
+ [![Documentation](https://img.shields.io/badge/docs-mcp.hanzo.ai-blue?style=for-the-badge)](https://mcp.hanzo.ai)
63
+ [![PyPI](https://img.shields.io/pypi/v/hanzo-mcp?style=for-the-badge)](https://pypi.org/project/hanzo-mcp/)
64
+ [![License](https://img.shields.io/github/license/hanzoai/mcp?style=for-the-badge)](https://github.com/hanzoai/mcp/blob/main/LICENSE)
65
+ [![Join our Discord](https://img.shields.io/discord/YOUR_DISCORD_ID?style=for-the-badge&logo=discord)](https://discord.gg/hanzoai)
66
+
67
+ ## 🥷 One MCP to Rule Them All
68
+
69
+ **Start here. Add other MCPs later. Control everything through one opinionated interface.**
70
+
71
+ Hanzo MCP isn't just another Model Context Protocol server—it's **THE** MCP server. While others give you fragments, we give you the complete toolkit. One server that orchestrates all others, with the power to add, remove, and control any MCP server dynamically.
72
+
73
+ ```bash
74
+ # Install and rule your development world
75
+ uvx hanzo-mcp
76
+ ```
77
+
78
+ ## 🎯 Why Hanzo MCP?
79
+
80
+ ### The Problem with Other MCPs
81
+ - **Fragmented Experience**: Install 10 different MCPs for 10 different tasks
82
+ - **Inconsistent Interfaces**: Each MCP has its own conventions and quirks
83
+ - **Limited Scope**: Most MCPs do one thing, leaving you to juggle multiple servers
84
+ - **No Orchestration**: No way to coordinate between different MCP servers
85
+
86
+ ### The Hanzo Way
87
+ - **One Installation**: 65+ professional tools out of the box
88
+ - **Unified Philosophy**: Consistent, opinionated interface following Unix principles
89
+ - **MCP Orchestration**: Install and control other MCP servers through Hanzo
90
+ - **Swappable Opinions**: Don't like our way? Load a different palette and change everything
91
+
92
+ ## 🚀 Features That Set Us Apart
93
+
94
+ ### 🎨 Palette System - Opinions Are Just Configurations
95
+ ```python
96
+ # Don't like our shell tools? Swap the palette
97
+ palette_load(palette="minimal") # Just the essentials
98
+ palette_load(palette="pentesting") # Security focused tools
99
+ palette_load(palette="data-science") # Jupyter, pandas, numpy focused
100
+ palette_load(palette="your-custom") # Your tools, your way
101
+ ```
102
+
103
+ ### 🔌 MCP Server Orchestration
104
+ ```python
105
+ # Add any MCP server dynamically
106
+ mcp_add(url="github.com/someone/their-mcp", alias="their")
107
+
108
+ # Use their tools through our unified interface
109
+ their_tool(action="whatever", params=...)
110
+
111
+ # Remove when done
112
+ mcp_remove(alias="their")
113
+ ```
114
+
115
+ ### 🛠️ 65+ Battle-Tested Tools
116
+
117
+ #### Intelligent Multi-Modal Search
118
+ - **search**: Combines grep, AST analysis, vector embeddings, and git history
119
+ - **symbols**: Find any code symbol across languages instantly
120
+ - **git_search**: Search through git history, branches, and commits
121
+
122
+ #### Advanced Development
123
+ - **agent**: Delegate complex tasks to specialized AI agents
124
+ - **llm**: Query multiple LLM providers with consensus
125
+ - **jupyter**: Full Jupyter notebook support
126
+ - **neovim**: Integrated Neovim for power users
127
+
128
+ #### File Operations That Just Work
129
+ - **edit/multi_edit**: Intelligent pattern-based editing
130
+ - **read/write**: Automatic encoding detection
131
+ - **tree**: Visual directory structures
132
+ - **watch**: Monitor file changes in real-time
133
+
134
+ #### Process & System Control
135
+ - **run_command**: Secure command execution with timeout
136
+ - **processes**: Monitor and manage system processes
137
+ - **npx/uvx**: Package runners with background support
138
+
139
+ #### And So Much More
140
+ - Database tools (SQL, Graph)
141
+ - Vector search and indexing
142
+ - Todo management
143
+ - Configuration management
144
+ - MCP server management
145
+ - Statistical analysis
146
+ - Batch operations
147
+
148
+ ## 🎯 The Zen of Hanzo
149
+
150
+ 1. **One Tool, One Purpose** - Each tool does one thing exceptionally well
151
+ 2. **Actions Over Tools** - Complex tools support multiple actions, not multiple interfaces
152
+ 3. **Parallel by Default** - Run multiple operations concurrently
153
+ 4. **Smart Fallbacks** - Automatically choose the best available backend
154
+ 5. **Secure by Design** - Fine-grained permissions and audit trails
155
+ 6. **Opinionated but Flexible** - Strong defaults with palette customization
156
+
157
+ ## 🚀 Quick Start
158
+
159
+ ### Installation
160
+
161
+ ```bash
162
+ # Install globally with uvx (recommended)
163
+ uvx hanzo-mcp
164
+
165
+ # Or install with pip
166
+ pip install hanzo-mcp
167
+
168
+ # Or install from source for development
169
+ git clone https://github.com/hanzoai/mcp
170
+ cd mcp
171
+ make install
172
+ ```
173
+
174
+ ### Add to Claude Desktop
175
+
176
+ ```bash
177
+ # Automatic installation
178
+ make install-desktop
179
+
180
+ # Or manual configuration
181
+ cat >> ~/Library/Application\ Support/Claude/claude_desktop_config.json << 'EOF'
182
+ {
183
+ "mcpServers": {
184
+ "hanzo": {
185
+ "command": "uvx",
186
+ "args": ["hanzo-mcp"]
187
+ }
188
+ }
189
+ }
190
+ EOF
191
+ ```
192
+
193
+ ### Your First Session
194
+
195
+ 1. Open Claude Desktop
196
+ 2. Start with `search` to explore any codebase
197
+ 3. Use `tree` to understand structure
198
+ 4. Edit files with `edit` or `multi_edit`
199
+ 5. Run commands with `run_command`
200
+ 6. Add other MCP servers with `mcp_add`
201
+
202
+ ## 🎨 Palette System
203
+
204
+ Palettes let you completely transform Hanzo MCP's behavior:
205
+
206
+ ```python
207
+ # List available palettes
208
+ palette_list()
209
+
210
+ # Load a different personality
211
+ palette_load(palette="minimal") # Just core tools
212
+ palette_load(palette="academic") # Research and writing focused
213
+ palette_load(palette="devops") # Infrastructure and deployment
214
+
215
+ # Create your own
216
+ palette_create(
217
+ name="my-workflow",
218
+ tools=["read", "write", "edit", "search", "my-custom-tool"],
219
+ config={"editor": "vim", "search_backend": "ripgrep"}
220
+ )
221
+ ```
222
+
223
+ ## 🔌 MCP Orchestration
224
+
225
+ Hanzo MCP can manage other MCP servers:
226
+
227
+ ```python
228
+ # Add any MCP server
229
+ mcp_add(url="github.com/modelcontextprotocol/servers/tree/main/postgres")
230
+
231
+ # List installed servers
232
+ mcp_stats()
233
+
234
+ # Use tools from other servers seamlessly
235
+ postgres_query(query="SELECT * FROM users")
236
+
237
+ # Remove when done
238
+ mcp_remove(alias="postgres")
239
+ ```
240
+
241
+ ## 📊 Advanced Features
242
+
243
+ ### Intelligent Search
244
+ ```python
245
+ # Multi-modal search across your codebase
246
+ results = search(
247
+ query="authentication",
248
+ include_git=True, # Search git history
249
+ include_vector=True, # Semantic search
250
+ include_ast=True, # AST symbol search
251
+ parallel=True # Search all modes concurrently
252
+ )
253
+ ```
254
+
255
+ ### Agent Orchestration
256
+ ```python
257
+ # Delegate complex tasks to specialized agents
258
+ agent(
259
+ task="Refactor this codebase to use async/await",
260
+ files=["src/**/*.py"],
261
+ instructions="Maintain backwards compatibility"
262
+ )
263
+ ```
264
+
265
+ ### Consensus LLM Queries
266
+ ```python
267
+ # Query multiple LLMs and get consensus
268
+ llm(
269
+ action="consensus",
270
+ prompt="Is this code secure?",
271
+ providers=["openai", "anthropic", "google"],
272
+ threshold=0.8
273
+ )
274
+ ```
275
+
276
+ ## 🏗️ Architecture
277
+
278
+ Built on modern Python with:
279
+ - **FastMCP**: High-performance MCP framework
280
+ - **UV**: Lightning-fast Python package management
281
+ - **Parallel Execution**: Concurrent operations by default
282
+ - **Smart Backends**: Automatic selection of best available tools
283
+ - **Type Safety**: Full type hints and validation
284
+
285
+ ## 🤝 Contributing
286
+
287
+ We welcome contributions! The codebase is designed for extensibility:
288
+
289
+ 1. **Add a Tool**: Drop a file in `hanzo_mcp/tools/`
290
+ 2. **Create a Palette**: Define tool collections and configurations
291
+ 3. **Improve Existing Tools**: Each tool is independently testable
292
+
293
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
294
+
295
+ ## 📚 Documentation
296
+
297
+ - **[Quick Start Guide](https://mcp.hanzo.ai/quickstart)** - Get running in 5 minutes
298
+ - **[Tool Reference](https://mcp.hanzo.ai/tools)** - Detailed documentation for all 65+ tools
299
+ - **[Palette System](https://mcp.hanzo.ai/palettes)** - Customize your experience
300
+ - **[MCP Orchestration](https://mcp.hanzo.ai/orchestration)** - Control other MCP servers
301
+ - **[Best Practices](https://mcp.hanzo.ai/best-practices)** - Tips from power users
302
+
303
+ ## 🌟 Why Developers Choose Hanzo MCP
304
+
305
+ > "I replaced 12 different MCP servers with just Hanzo. The palette system means I can switch contexts instantly—from web dev to data science to DevOps." - *Power User*
306
+
307
+ > "The agent orchestration is incredible. I can delegate entire refactoring tasks and it just works." - *Sr. Engineer*
308
+
309
+ > "Finally, an MCP that thinks like a developer. Smart defaults, great errors, and everything is parallel." - *Tech Lead*
310
+
311
+ ## 📈 Stats
312
+
313
+ - **65+** Professional Tools
314
+ - **10x** Faster than installing multiple MCPs
315
+ - **1** Unified interface to rule them all
316
+ - **∞** Possibilities with the palette system
317
+
318
+ ## 📄 License
319
+
320
+ MIT - Use it, extend it, make it yours.
321
+
322
+ ## 🔗 Links
323
+
324
+ - [GitHub](https://github.com/hanzoai/mcp)
325
+ - [Documentation](https://mcp.hanzo.ai)
326
+ - [PyPI](https://pypi.org/project/hanzo-mcp/)
327
+ - [Discord Community](https://discord.gg/hanzoai)
328
+ - [Report Issues](https://github.com/hanzoai/mcp/issues)
329
+
330
+ ---
331
+
332
+ <p align="center">
333
+ <b>The Zen of Hanzo MCP</b><br>
334
+ <i>One server. All tools. Your way.</i><br><br>
335
+ <code>uvx hanzo-mcp</code>
336
+ </p>
@@ -0,0 +1,277 @@
1
+ # Hanzo MCP - The Zen of Model Context Protocol
2
+
3
+ [![Documentation](https://img.shields.io/badge/docs-mcp.hanzo.ai-blue?style=for-the-badge)](https://mcp.hanzo.ai)
4
+ [![PyPI](https://img.shields.io/pypi/v/hanzo-mcp?style=for-the-badge)](https://pypi.org/project/hanzo-mcp/)
5
+ [![License](https://img.shields.io/github/license/hanzoai/mcp?style=for-the-badge)](https://github.com/hanzoai/mcp/blob/main/LICENSE)
6
+ [![Join our Discord](https://img.shields.io/discord/YOUR_DISCORD_ID?style=for-the-badge&logo=discord)](https://discord.gg/hanzoai)
7
+
8
+ ## 🥷 One MCP to Rule Them All
9
+
10
+ **Start here. Add other MCPs later. Control everything through one opinionated interface.**
11
+
12
+ Hanzo MCP isn't just another Model Context Protocol server—it's **THE** MCP server. While others give you fragments, we give you the complete toolkit. One server that orchestrates all others, with the power to add, remove, and control any MCP server dynamically.
13
+
14
+ ```bash
15
+ # Install and rule your development world
16
+ uvx hanzo-mcp
17
+ ```
18
+
19
+ ## 🎯 Why Hanzo MCP?
20
+
21
+ ### The Problem with Other MCPs
22
+ - **Fragmented Experience**: Install 10 different MCPs for 10 different tasks
23
+ - **Inconsistent Interfaces**: Each MCP has its own conventions and quirks
24
+ - **Limited Scope**: Most MCPs do one thing, leaving you to juggle multiple servers
25
+ - **No Orchestration**: No way to coordinate between different MCP servers
26
+
27
+ ### The Hanzo Way
28
+ - **One Installation**: 65+ professional tools out of the box
29
+ - **Unified Philosophy**: Consistent, opinionated interface following Unix principles
30
+ - **MCP Orchestration**: Install and control other MCP servers through Hanzo
31
+ - **Swappable Opinions**: Don't like our way? Load a different palette and change everything
32
+
33
+ ## 🚀 Features That Set Us Apart
34
+
35
+ ### 🎨 Palette System - Opinions Are Just Configurations
36
+ ```python
37
+ # Don't like our shell tools? Swap the palette
38
+ palette_load(palette="minimal") # Just the essentials
39
+ palette_load(palette="pentesting") # Security focused tools
40
+ palette_load(palette="data-science") # Jupyter, pandas, numpy focused
41
+ palette_load(palette="your-custom") # Your tools, your way
42
+ ```
43
+
44
+ ### 🔌 MCP Server Orchestration
45
+ ```python
46
+ # Add any MCP server dynamically
47
+ mcp_add(url="github.com/someone/their-mcp", alias="their")
48
+
49
+ # Use their tools through our unified interface
50
+ their_tool(action="whatever", params=...)
51
+
52
+ # Remove when done
53
+ mcp_remove(alias="their")
54
+ ```
55
+
56
+ ### 🛠️ 65+ Battle-Tested Tools
57
+
58
+ #### Intelligent Multi-Modal Search
59
+ - **search**: Combines grep, AST analysis, vector embeddings, and git history
60
+ - **symbols**: Find any code symbol across languages instantly
61
+ - **git_search**: Search through git history, branches, and commits
62
+
63
+ #### Advanced Development
64
+ - **agent**: Delegate complex tasks to specialized AI agents
65
+ - **llm**: Query multiple LLM providers with consensus
66
+ - **jupyter**: Full Jupyter notebook support
67
+ - **neovim**: Integrated Neovim for power users
68
+
69
+ #### File Operations That Just Work
70
+ - **edit/multi_edit**: Intelligent pattern-based editing
71
+ - **read/write**: Automatic encoding detection
72
+ - **tree**: Visual directory structures
73
+ - **watch**: Monitor file changes in real-time
74
+
75
+ #### Process & System Control
76
+ - **run_command**: Secure command execution with timeout
77
+ - **processes**: Monitor and manage system processes
78
+ - **npx/uvx**: Package runners with background support
79
+
80
+ #### And So Much More
81
+ - Database tools (SQL, Graph)
82
+ - Vector search and indexing
83
+ - Todo management
84
+ - Configuration management
85
+ - MCP server management
86
+ - Statistical analysis
87
+ - Batch operations
88
+
89
+ ## 🎯 The Zen of Hanzo
90
+
91
+ 1. **One Tool, One Purpose** - Each tool does one thing exceptionally well
92
+ 2. **Actions Over Tools** - Complex tools support multiple actions, not multiple interfaces
93
+ 3. **Parallel by Default** - Run multiple operations concurrently
94
+ 4. **Smart Fallbacks** - Automatically choose the best available backend
95
+ 5. **Secure by Design** - Fine-grained permissions and audit trails
96
+ 6. **Opinionated but Flexible** - Strong defaults with palette customization
97
+
98
+ ## 🚀 Quick Start
99
+
100
+ ### Installation
101
+
102
+ ```bash
103
+ # Install globally with uvx (recommended)
104
+ uvx hanzo-mcp
105
+
106
+ # Or install with pip
107
+ pip install hanzo-mcp
108
+
109
+ # Or install from source for development
110
+ git clone https://github.com/hanzoai/mcp
111
+ cd mcp
112
+ make install
113
+ ```
114
+
115
+ ### Add to Claude Desktop
116
+
117
+ ```bash
118
+ # Automatic installation
119
+ make install-desktop
120
+
121
+ # Or manual configuration
122
+ cat >> ~/Library/Application\ Support/Claude/claude_desktop_config.json << 'EOF'
123
+ {
124
+ "mcpServers": {
125
+ "hanzo": {
126
+ "command": "uvx",
127
+ "args": ["hanzo-mcp"]
128
+ }
129
+ }
130
+ }
131
+ EOF
132
+ ```
133
+
134
+ ### Your First Session
135
+
136
+ 1. Open Claude Desktop
137
+ 2. Start with `search` to explore any codebase
138
+ 3. Use `tree` to understand structure
139
+ 4. Edit files with `edit` or `multi_edit`
140
+ 5. Run commands with `run_command`
141
+ 6. Add other MCP servers with `mcp_add`
142
+
143
+ ## 🎨 Palette System
144
+
145
+ Palettes let you completely transform Hanzo MCP's behavior:
146
+
147
+ ```python
148
+ # List available palettes
149
+ palette_list()
150
+
151
+ # Load a different personality
152
+ palette_load(palette="minimal") # Just core tools
153
+ palette_load(palette="academic") # Research and writing focused
154
+ palette_load(palette="devops") # Infrastructure and deployment
155
+
156
+ # Create your own
157
+ palette_create(
158
+ name="my-workflow",
159
+ tools=["read", "write", "edit", "search", "my-custom-tool"],
160
+ config={"editor": "vim", "search_backend": "ripgrep"}
161
+ )
162
+ ```
163
+
164
+ ## 🔌 MCP Orchestration
165
+
166
+ Hanzo MCP can manage other MCP servers:
167
+
168
+ ```python
169
+ # Add any MCP server
170
+ mcp_add(url="github.com/modelcontextprotocol/servers/tree/main/postgres")
171
+
172
+ # List installed servers
173
+ mcp_stats()
174
+
175
+ # Use tools from other servers seamlessly
176
+ postgres_query(query="SELECT * FROM users")
177
+
178
+ # Remove when done
179
+ mcp_remove(alias="postgres")
180
+ ```
181
+
182
+ ## 📊 Advanced Features
183
+
184
+ ### Intelligent Search
185
+ ```python
186
+ # Multi-modal search across your codebase
187
+ results = search(
188
+ query="authentication",
189
+ include_git=True, # Search git history
190
+ include_vector=True, # Semantic search
191
+ include_ast=True, # AST symbol search
192
+ parallel=True # Search all modes concurrently
193
+ )
194
+ ```
195
+
196
+ ### Agent Orchestration
197
+ ```python
198
+ # Delegate complex tasks to specialized agents
199
+ agent(
200
+ task="Refactor this codebase to use async/await",
201
+ files=["src/**/*.py"],
202
+ instructions="Maintain backwards compatibility"
203
+ )
204
+ ```
205
+
206
+ ### Consensus LLM Queries
207
+ ```python
208
+ # Query multiple LLMs and get consensus
209
+ llm(
210
+ action="consensus",
211
+ prompt="Is this code secure?",
212
+ providers=["openai", "anthropic", "google"],
213
+ threshold=0.8
214
+ )
215
+ ```
216
+
217
+ ## 🏗️ Architecture
218
+
219
+ Built on modern Python with:
220
+ - **FastMCP**: High-performance MCP framework
221
+ - **UV**: Lightning-fast Python package management
222
+ - **Parallel Execution**: Concurrent operations by default
223
+ - **Smart Backends**: Automatic selection of best available tools
224
+ - **Type Safety**: Full type hints and validation
225
+
226
+ ## 🤝 Contributing
227
+
228
+ We welcome contributions! The codebase is designed for extensibility:
229
+
230
+ 1. **Add a Tool**: Drop a file in `hanzo_mcp/tools/`
231
+ 2. **Create a Palette**: Define tool collections and configurations
232
+ 3. **Improve Existing Tools**: Each tool is independently testable
233
+
234
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
235
+
236
+ ## 📚 Documentation
237
+
238
+ - **[Quick Start Guide](https://mcp.hanzo.ai/quickstart)** - Get running in 5 minutes
239
+ - **[Tool Reference](https://mcp.hanzo.ai/tools)** - Detailed documentation for all 65+ tools
240
+ - **[Palette System](https://mcp.hanzo.ai/palettes)** - Customize your experience
241
+ - **[MCP Orchestration](https://mcp.hanzo.ai/orchestration)** - Control other MCP servers
242
+ - **[Best Practices](https://mcp.hanzo.ai/best-practices)** - Tips from power users
243
+
244
+ ## 🌟 Why Developers Choose Hanzo MCP
245
+
246
+ > "I replaced 12 different MCP servers with just Hanzo. The palette system means I can switch contexts instantly—from web dev to data science to DevOps." - *Power User*
247
+
248
+ > "The agent orchestration is incredible. I can delegate entire refactoring tasks and it just works." - *Sr. Engineer*
249
+
250
+ > "Finally, an MCP that thinks like a developer. Smart defaults, great errors, and everything is parallel." - *Tech Lead*
251
+
252
+ ## 📈 Stats
253
+
254
+ - **65+** Professional Tools
255
+ - **10x** Faster than installing multiple MCPs
256
+ - **1** Unified interface to rule them all
257
+ - **∞** Possibilities with the palette system
258
+
259
+ ## 📄 License
260
+
261
+ MIT - Use it, extend it, make it yours.
262
+
263
+ ## 🔗 Links
264
+
265
+ - [GitHub](https://github.com/hanzoai/mcp)
266
+ - [Documentation](https://mcp.hanzo.ai)
267
+ - [PyPI](https://pypi.org/project/hanzo-mcp/)
268
+ - [Discord Community](https://discord.gg/hanzoai)
269
+ - [Report Issues](https://github.com/hanzoai/mcp/issues)
270
+
271
+ ---
272
+
273
+ <p align="center">
274
+ <b>The Zen of Hanzo MCP</b><br>
275
+ <i>One server. All tools. Your way.</i><br><br>
276
+ <code>uvx hanzo-mcp</code>
277
+ </p>
@@ -1,3 +1,3 @@
1
1
  """Hanzo MCP - Implementation of Hanzo capabilities using MCP."""
2
2
 
3
- __version__ = "0.5.2"
3
+ __version__ = "0.6.0"
@@ -145,6 +145,12 @@ def main() -> None:
145
145
  help="Single project directory (alias for --project)",
146
146
  )
147
147
 
148
+ _ = parser.add_argument(
149
+ "--dev",
150
+ action="store_true",
151
+ help="Run in development mode with hot reload",
152
+ )
153
+
148
154
  _ = parser.add_argument(
149
155
  "--install",
150
156
  action="store_true",
@@ -156,6 +162,7 @@ def main() -> None:
156
162
  # Cast args attributes to appropriate types to avoid 'Any' warnings
157
163
  name: str = cast(str, args.name)
158
164
  install: bool = cast(bool, args.install)
165
+ dev: bool = cast(bool, args.dev)
159
166
  transport: str = cast(str, args.transport)
160
167
  agent_model: str | None = cast(str | None, args.agent_model)
161
168
  agent_max_tokens: int | None = cast(int | None, args.agent_max_tokens)
@@ -200,6 +207,31 @@ def main() -> None:
200
207
  if not allowed_paths:
201
208
  allowed_paths = [os.getcwd()]
202
209
 
210
+ # Run in dev mode if requested
211
+ if dev:
212
+ from hanzo_mcp.dev_server import DevServer
213
+
214
+ dev_server = DevServer(
215
+ name=name,
216
+ allowed_paths=allowed_paths,
217
+ project_paths=project_paths,
218
+ project_dir=project_dir,
219
+ agent_model=agent_model,
220
+ agent_max_tokens=agent_max_tokens,
221
+ agent_api_key=agent_api_key,
222
+ agent_base_url=agent_base_url,
223
+ agent_max_iterations=agent_max_iterations,
224
+ agent_max_tool_uses=agent_max_tool_uses,
225
+ enable_agent_tool=enable_agent_tool,
226
+ command_timeout=command_timeout,
227
+ disable_write_tools=disable_write_tools,
228
+ disable_search_tools=disable_search_tools,
229
+ host=host,
230
+ port=port,
231
+ )
232
+ dev_server.run(transport=transport)
233
+ return
234
+
203
235
  # Run the server
204
236
  server = HanzoMCPServer(
205
237
  name=name,