hanzo-mcp 0.5.2__py3-none-any.whl → 0.6.1__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.

Potentially problematic release.


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

Files changed (114) hide show
  1. hanzo_mcp/__init__.py +1 -1
  2. hanzo_mcp/cli.py +32 -0
  3. hanzo_mcp/dev_server.py +246 -0
  4. hanzo_mcp/prompts/__init__.py +1 -1
  5. hanzo_mcp/prompts/project_system.py +43 -7
  6. hanzo_mcp/server.py +5 -1
  7. hanzo_mcp/tools/__init__.py +66 -35
  8. hanzo_mcp/tools/agent/__init__.py +1 -1
  9. hanzo_mcp/tools/agent/agent.py +401 -0
  10. hanzo_mcp/tools/agent/agent_tool.py +3 -4
  11. hanzo_mcp/tools/common/__init__.py +1 -1
  12. hanzo_mcp/tools/common/base.py +2 -2
  13. hanzo_mcp/tools/common/batch_tool.py +3 -5
  14. hanzo_mcp/tools/common/config_tool.py +1 -1
  15. hanzo_mcp/tools/common/context.py +1 -1
  16. hanzo_mcp/tools/common/palette.py +344 -0
  17. hanzo_mcp/tools/common/palette_loader.py +108 -0
  18. hanzo_mcp/tools/common/stats.py +1 -1
  19. hanzo_mcp/tools/common/thinking_tool.py +3 -5
  20. hanzo_mcp/tools/common/tool_disable.py +1 -1
  21. hanzo_mcp/tools/common/tool_enable.py +1 -1
  22. hanzo_mcp/tools/common/tool_list.py +49 -52
  23. hanzo_mcp/tools/config/__init__.py +10 -0
  24. hanzo_mcp/tools/config/config_tool.py +212 -0
  25. hanzo_mcp/tools/config/index_config.py +176 -0
  26. hanzo_mcp/tools/config/palette_tool.py +166 -0
  27. hanzo_mcp/tools/database/__init__.py +1 -1
  28. hanzo_mcp/tools/database/graph.py +482 -0
  29. hanzo_mcp/tools/database/graph_add.py +1 -1
  30. hanzo_mcp/tools/database/graph_query.py +1 -1
  31. hanzo_mcp/tools/database/graph_remove.py +1 -1
  32. hanzo_mcp/tools/database/graph_search.py +1 -1
  33. hanzo_mcp/tools/database/graph_stats.py +1 -1
  34. hanzo_mcp/tools/database/sql.py +411 -0
  35. hanzo_mcp/tools/database/sql_query.py +1 -1
  36. hanzo_mcp/tools/database/sql_search.py +1 -1
  37. hanzo_mcp/tools/database/sql_stats.py +1 -1
  38. hanzo_mcp/tools/editor/neovim_command.py +1 -1
  39. hanzo_mcp/tools/editor/neovim_edit.py +1 -1
  40. hanzo_mcp/tools/editor/neovim_session.py +1 -1
  41. hanzo_mcp/tools/filesystem/__init__.py +42 -13
  42. hanzo_mcp/tools/filesystem/base.py +1 -1
  43. hanzo_mcp/tools/filesystem/batch_search.py +4 -4
  44. hanzo_mcp/tools/filesystem/content_replace.py +3 -5
  45. hanzo_mcp/tools/filesystem/diff.py +193 -0
  46. hanzo_mcp/tools/filesystem/directory_tree.py +3 -5
  47. hanzo_mcp/tools/filesystem/edit.py +3 -5
  48. hanzo_mcp/tools/filesystem/find.py +443 -0
  49. hanzo_mcp/tools/filesystem/find_files.py +1 -1
  50. hanzo_mcp/tools/filesystem/git_search.py +1 -1
  51. hanzo_mcp/tools/filesystem/grep.py +2 -2
  52. hanzo_mcp/tools/filesystem/multi_edit.py +3 -5
  53. hanzo_mcp/tools/filesystem/read.py +17 -5
  54. hanzo_mcp/tools/filesystem/{grep_ast_tool.py → symbols.py} +17 -27
  55. hanzo_mcp/tools/filesystem/symbols_unified.py +376 -0
  56. hanzo_mcp/tools/filesystem/tree.py +268 -0
  57. hanzo_mcp/tools/filesystem/unified_search.py +711 -0
  58. hanzo_mcp/tools/filesystem/unix_aliases.py +99 -0
  59. hanzo_mcp/tools/filesystem/watch.py +174 -0
  60. hanzo_mcp/tools/filesystem/write.py +3 -5
  61. hanzo_mcp/tools/jupyter/__init__.py +9 -12
  62. hanzo_mcp/tools/jupyter/base.py +1 -1
  63. hanzo_mcp/tools/jupyter/jupyter.py +326 -0
  64. hanzo_mcp/tools/jupyter/notebook_edit.py +3 -4
  65. hanzo_mcp/tools/jupyter/notebook_read.py +3 -5
  66. hanzo_mcp/tools/llm/__init__.py +4 -0
  67. hanzo_mcp/tools/llm/consensus_tool.py +1 -1
  68. hanzo_mcp/tools/llm/llm_manage.py +1 -1
  69. hanzo_mcp/tools/llm/llm_tool.py +1 -1
  70. hanzo_mcp/tools/llm/llm_unified.py +851 -0
  71. hanzo_mcp/tools/llm/provider_tools.py +1 -1
  72. hanzo_mcp/tools/mcp/__init__.py +4 -0
  73. hanzo_mcp/tools/mcp/mcp_add.py +1 -1
  74. hanzo_mcp/tools/mcp/mcp_remove.py +1 -1
  75. hanzo_mcp/tools/mcp/mcp_stats.py +1 -1
  76. hanzo_mcp/tools/mcp/mcp_unified.py +503 -0
  77. hanzo_mcp/tools/shell/__init__.py +20 -42
  78. hanzo_mcp/tools/shell/base.py +1 -1
  79. hanzo_mcp/tools/shell/base_process.py +303 -0
  80. hanzo_mcp/tools/shell/bash_unified.py +134 -0
  81. hanzo_mcp/tools/shell/logs.py +1 -1
  82. hanzo_mcp/tools/shell/npx.py +1 -1
  83. hanzo_mcp/tools/shell/npx_background.py +1 -1
  84. hanzo_mcp/tools/shell/npx_unified.py +101 -0
  85. hanzo_mcp/tools/shell/open.py +107 -0
  86. hanzo_mcp/tools/shell/pkill.py +1 -1
  87. hanzo_mcp/tools/shell/process_unified.py +131 -0
  88. hanzo_mcp/tools/shell/processes.py +1 -1
  89. hanzo_mcp/tools/shell/run_background.py +1 -1
  90. hanzo_mcp/tools/shell/run_command.py +3 -4
  91. hanzo_mcp/tools/shell/run_command_windows.py +3 -4
  92. hanzo_mcp/tools/shell/uvx.py +1 -1
  93. hanzo_mcp/tools/shell/uvx_background.py +1 -1
  94. hanzo_mcp/tools/shell/uvx_unified.py +101 -0
  95. hanzo_mcp/tools/todo/__init__.py +1 -1
  96. hanzo_mcp/tools/todo/base.py +1 -1
  97. hanzo_mcp/tools/todo/todo.py +265 -0
  98. hanzo_mcp/tools/todo/todo_read.py +3 -5
  99. hanzo_mcp/tools/todo/todo_write.py +3 -5
  100. hanzo_mcp/tools/vector/__init__.py +1 -1
  101. hanzo_mcp/tools/vector/index_tool.py +1 -1
  102. hanzo_mcp/tools/vector/project_manager.py +27 -5
  103. hanzo_mcp/tools/vector/vector.py +311 -0
  104. hanzo_mcp/tools/vector/vector_index.py +1 -1
  105. hanzo_mcp/tools/vector/vector_search.py +1 -1
  106. hanzo_mcp-0.6.1.dist-info/METADATA +336 -0
  107. hanzo_mcp-0.6.1.dist-info/RECORD +134 -0
  108. hanzo_mcp-0.6.1.dist-info/entry_points.txt +3 -0
  109. hanzo_mcp-0.5.2.dist-info/METADATA +0 -276
  110. hanzo_mcp-0.5.2.dist-info/RECORD +0 -106
  111. hanzo_mcp-0.5.2.dist-info/entry_points.txt +0 -2
  112. {hanzo_mcp-0.5.2.dist-info → hanzo_mcp-0.6.1.dist-info}/WHEEL +0 -0
  113. {hanzo_mcp-0.5.2.dist-info → hanzo_mcp-0.6.1.dist-info}/licenses/LICENSE +0 -0
  114. {hanzo_mcp-0.5.2.dist-info → hanzo_mcp-0.6.1.dist-info}/top_level.txt +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,134 @@
1
+ hanzo_mcp/__init__.py,sha256=YJJb_nLjlIMpGqGQaWsjE_3ucmIAfrPit5mNZd9qfh8,89
2
+ hanzo_mcp/cli.py,sha256=lFKWnoV94MUgtfojNn4DR9RQg-NiFUpF3BIICjbFfLA,10838
3
+ hanzo_mcp/cli_enhanced.py,sha256=rqh9gqyjMuUznIlPTC5pcIGYZTKAScacMsDb1e68ReE,15819
4
+ hanzo_mcp/dev_server.py,sha256=_Ti0P7y8VNK5z4NiZ1BN5L_KdWhWYJ4IG2U6GZObzyM,7869
5
+ hanzo_mcp/server.py,sha256=pz0ZjzQdD00i54fslv7kntmLSiive2WwluCCTqHu_XQ,8209
6
+ hanzo_mcp/config/__init__.py,sha256=iZYGSJMsC1c97gRFqgyowfP4XW480BBVRAQq1r-Dp7g,506
7
+ hanzo_mcp/config/settings.py,sha256=F4ya4pHoxGACawPo4hd0bwfk6MwXvrTjH0WMBQpUN8I,16259
8
+ hanzo_mcp/config/tool_config.py,sha256=AT5eJRZAL8VTLu5DCdoC_MkDxtufVE_QOj7Yp_Fyi8k,6317
9
+ hanzo_mcp/prompts/__init__.py,sha256=Fp2Jr6SmUd6QmasOclgkTIb4qCzRSqtu3i-0d98XKEg,3992
10
+ hanzo_mcp/prompts/compact_conversation.py,sha256=nvD068KEesiMcevxxMBeIJh6AqT7YHOqyH6RepRFFfA,4206
11
+ hanzo_mcp/prompts/create_release.py,sha256=1Z8xSTtz5vAm0rWFnERpFu7wIYExT4iXhM6nGmQaM-s,1374
12
+ hanzo_mcp/prompts/project_system.py,sha256=-W-PN-h-wW2F41-FM_OnLkX__4i40JpvF6lvW-3rjoM,8231
13
+ hanzo_mcp/prompts/project_todo_reminder.py,sha256=otiBdmzxssBSb3MZZSQsjYDGLBqi1bM0HgraELP_Nf4,3645
14
+ hanzo_mcp/prompts/utils.py,sha256=IwxIhzZfYJ2anToPulbrpcc07u4Dozo9ok6VE3BC_4A,9963
15
+ hanzo_mcp/tools/__init__.py,sha256=cbsCiLlfsw69-dWMnv5sNUDcNcRAtyPI8PxRGAVe1QE,14236
16
+ hanzo_mcp/tools/agent/__init__.py,sha256=U4nchBrzKAnCn0ffbzOnN00zg-ZmXR6J8ZrdaBIWKQ8,1900
17
+ hanzo_mcp/tools/agent/agent.py,sha256=u3v3407O6mttAlqM8WIvEbkEHWSgzTgZokuiIQXDgEY,13391
18
+ hanzo_mcp/tools/agent/agent_tool.py,sha256=--ZTuXpfgg0CaDxISR6LKXvODGlpW4r9Ld4zht7uFKM,21226
19
+ hanzo_mcp/tools/agent/prompt.py,sha256=Wi9Z45hmQ92eUNZbOWzj9ZVCCr-fM1K9iyaRvTCAgrQ,4529
20
+ hanzo_mcp/tools/agent/tool_adapter.py,sha256=Od7VtD9qqDbgxhDHj0L-rohX4wOSMtYjZnU2BRuWSqI,2151
21
+ hanzo_mcp/tools/common/__init__.py,sha256=pnKbCbAl0HrwaLpy_f4NJaX5_O7rVCTxZhnyPYpoyFQ,924
22
+ hanzo_mcp/tools/common/base.py,sha256=o5_vIsQjmYD_wfJYofP7cLn1SY6hCVo3OAT23MFJOfQ,5888
23
+ hanzo_mcp/tools/common/batch_tool.py,sha256=RsypKEaKPf4NgOpWjiLe1_KAYid_oqPDMti3xMsOdoY,12002
24
+ hanzo_mcp/tools/common/config_tool.py,sha256=BgkXG5W2_g7lnrVbYWKkeCWA4cxUtdZTFzhFApmUT7c,16252
25
+ hanzo_mcp/tools/common/context.py,sha256=e6ZCiMRK4RFPW5oi5zqLdVt-hhQndTUtyinpf-nPOUo,5186
26
+ hanzo_mcp/tools/common/palette.py,sha256=I-DBp1tKzpQfHj1M5Bzj-mvOobz_3AlgKz25wvfv6oI,11251
27
+ hanzo_mcp/tools/common/palette_loader.py,sha256=wOFQpfw2TCIc78StibfdQksHZAE4g8vqZMAWhTYhqmY,3671
28
+ hanzo_mcp/tools/common/permissions.py,sha256=LR1tuQAPMoaKvqNtHPRaiB0ZUb0Tbsg3e9L6vvd4FLU,7562
29
+ hanzo_mcp/tools/common/stats.py,sha256=QqtEoz_kWC7sNM5EQxTMqCmOxHJwoPLKyNrGIDWDf2Y,9769
30
+ hanzo_mcp/tools/common/thinking_tool.py,sha256=-jNKGS9V9qkl2Y7Zl8QK6HJmJ4XE2EOWyeA-dg3Fg-o,5071
31
+ hanzo_mcp/tools/common/tool_disable.py,sha256=JFXQsA08WzCHYSuEETjmcUzk1RhABZljRD0d4N8PkSI,4257
32
+ hanzo_mcp/tools/common/tool_enable.py,sha256=CD9ioFVVcnAFtrhKKsuLuKhMh31qMBSVdLSldDbTBmE,5044
33
+ hanzo_mcp/tools/common/tool_list.py,sha256=QmFmBkEh4oP26X_4zCW-Xc4mFtv77nboPpO6cqw_5-I,9311
34
+ hanzo_mcp/tools/common/validation.py,sha256=VV3VbDvYlAYl2Bi98xE7gFo0xnmqHHUGJGNPswm97qo,1694
35
+ hanzo_mcp/tools/config/__init__.py,sha256=UfpEzxNmysTz4U8r0HS4xlaABDzf3H7DqFBxUwBd17w,242
36
+ hanzo_mcp/tools/config/config_tool.py,sha256=lWs4HVzZcsIfFn_G_7zUgngKPk1by3bHPvYTyDmAJ5U,6877
37
+ hanzo_mcp/tools/config/index_config.py,sha256=VNxCrFyBFLAjoial5pZlRNZgrF1iDVl5yy-_czEyfGo,6332
38
+ hanzo_mcp/tools/config/palette_tool.py,sha256=L_FToiQq72mIFXyKPDPFl1odJf1DzHO5M5s9qtcDnXs,6103
39
+ hanzo_mcp/tools/database/__init__.py,sha256=RXHXDyD79a8MbJ5AOuQOgCbCL7cO5yxVH2LbA3lEyGA,2167
40
+ hanzo_mcp/tools/database/database_manager.py,sha256=urbP3T4QpTPBOH7JKjgjRbgMZAZxGm5Q_skZnZ9aHXQ,8807
41
+ hanzo_mcp/tools/database/graph.py,sha256=i4yufKM8KNlb4NgsHkZSZ2kLICuJsQfl9m13sTfTZZ4,16964
42
+ hanzo_mcp/tools/database/graph_add.py,sha256=gxFG-OHkvJhLUUW-xQMvNiQ_iQDt7vJ1k9rWdBd7dEg,7741
43
+ hanzo_mcp/tools/database/graph_query.py,sha256=j7I0zhkiqLZqE2Btef4NMeqAuJiDXFoNYniphRSnzaY,19753
44
+ hanzo_mcp/tools/database/graph_remove.py,sha256=Ei0ezAKa1902ll1wLTKcVXjoFETGCPbH7EvcQ5ctTMM,8776
45
+ hanzo_mcp/tools/database/graph_search.py,sha256=ATZEe5U4wjHV4ocSQZko_QlN9Clrx-EZ_DSGzYaoSTs,12566
46
+ hanzo_mcp/tools/database/graph_stats.py,sha256=dcBpMwFgS9X5l57Kdi8RAfyeI2-YKrDNyW0BjRL3L2I,13024
47
+ hanzo_mcp/tools/database/sql.py,sha256=I7mDodvYwt5jqS0qMid2JcJatQ5Q0yabyTPi9X59Drw,16144
48
+ hanzo_mcp/tools/database/sql_query.py,sha256=MsZ9XQ-KIMOMeqIxUnbKpd4_CN8Nt6zIN6vB9V6xkik,7290
49
+ hanzo_mcp/tools/database/sql_search.py,sha256=KEG7DBcBvMy0CGRoxxanOYmwKL9GVN4vNPQvjxhlxkg,9831
50
+ hanzo_mcp/tools/database/sql_stats.py,sha256=9aumwENMo-9DOfcLBg8zQ6khIdxVIQLVh_kNYE4MbZA,9008
51
+ hanzo_mcp/tools/editor/__init__.py,sha256=RZKbXadNnh5fZ0-Wow-A5gAYCEfEuV_GapaR4mdjzW0,332
52
+ hanzo_mcp/tools/editor/neovim_command.py,sha256=R4OtUia7WKdzOK8AHDrNpHii5GDJmHWwZigFy9ATycs,8283
53
+ hanzo_mcp/tools/editor/neovim_edit.py,sha256=Hq10p1LIHBM_jGIyvjQYtJr8NR5pAeLRM6GfnGHFzTg,8816
54
+ hanzo_mcp/tools/editor/neovim_session.py,sha256=H1AhXBod9HzcYv4fQu4pOlBcyfwgjUo24lzenDZfqRU,11962
55
+ hanzo_mcp/tools/filesystem/__init__.py,sha256=wX3GTjevm-aON_RHs58WawgIn3LRxz4lN1AcqPHW6OI,6735
56
+ hanzo_mcp/tools/filesystem/base.py,sha256=0_6PBU1yqGRIQ8ggQNMEA2rB4DXTFg7sMJRAoocN9do,3818
57
+ hanzo_mcp/tools/filesystem/batch_search.py,sha256=1Z9HLnH-GxRn7CNw6G0vKZsyPg-Rj3c8Q0H9cEoozM8,34475
58
+ hanzo_mcp/tools/filesystem/content_replace.py,sha256=l3O7AozQmWGoDcn-kPbNJ96agAWslF_3smUl9Vef57k,9944
59
+ hanzo_mcp/tools/filesystem/diff.py,sha256=62_YtzGzeD8s6YlHvCoyza96mMtoJB3id3DScKMPkrM,6643
60
+ hanzo_mcp/tools/filesystem/directory_tree.py,sha256=VOCR0N_Agg78eHDg2Nu-tAuLOm4qFH-366tyoGVbvRU,10684
61
+ hanzo_mcp/tools/filesystem/edit.py,sha256=0frU8Bob_SypJ3KqKxxUpXHEPzJiGrr9HEmWFq8-Qb4,10628
62
+ hanzo_mcp/tools/filesystem/find.py,sha256=897Lnd2507979hBzkskU5gEj1XDJdr7Gr9hTZIAWkUU,15337
63
+ hanzo_mcp/tools/filesystem/find_files.py,sha256=BjmDzXvfXLV7_5NSZ7whhxXzJbM-vP1O0xq411PReSk,10959
64
+ hanzo_mcp/tools/filesystem/git_search.py,sha256=qOOIxuATu6UPdlWokJaifaKLphj1Y3uMREqCMD9weOk,16220
65
+ hanzo_mcp/tools/filesystem/grep.py,sha256=LDBGEpN2dj5xW1VvfgDxlkx4QqofWeztqwdyf_pSup0,16832
66
+ hanzo_mcp/tools/filesystem/multi_edit.py,sha256=p6_OJNBn9uzCxVcLJrL88gze_P4O8j2Lm0-DZAESwpY,14242
67
+ hanzo_mcp/tools/filesystem/read.py,sha256=-yuabqfZYENQ6-COuDNvQyjT-pdv5KFKe0BK-hZorFc,9331
68
+ hanzo_mcp/tools/filesystem/symbols.py,sha256=S-YCLz1mKll0o1drHubI9UU8C8UtkRd6_ew30SbErFI,7274
69
+ hanzo_mcp/tools/filesystem/symbols_unified.py,sha256=UETAT3ofVVTFRuyrgKLehigV937cL5CCEbGaysmwXhE,12258
70
+ hanzo_mcp/tools/filesystem/tree.py,sha256=MPBb3jHWa09DezDILP3FP7S_XCY2dJYQM-zUVYUloQQ,7497
71
+ hanzo_mcp/tools/filesystem/unified_search.py,sha256=hmLGNWPiLrap7sJdTxJv-UM7A93qoo_cutrFlD_SAHc,26675
72
+ hanzo_mcp/tools/filesystem/unix_aliases.py,sha256=jagrJbDo97Kpt3Zu3LQcuw_z28MQlADrNPbWgk6_cA0,3162
73
+ hanzo_mcp/tools/filesystem/watch.py,sha256=1w6vm0Z2YyZUEQDFowQ_JpOlm-M6UMZrp0caYlwLepQ,6218
74
+ hanzo_mcp/tools/filesystem/write.py,sha256=FwumcJX9RW_Xy8noKh-S3p95KRyOUG59Nl4w5lznV40,4762
75
+ hanzo_mcp/tools/jupyter/__init__.py,sha256=JVCoHVUkBMvkN_JmfOs63lF7q31bGyPLscHXfqknbOw,2425
76
+ hanzo_mcp/tools/jupyter/base.py,sha256=cK190wDExYyUFu7qrT-s5sHglPd9k6SrlpA60sLwFFE,10101
77
+ hanzo_mcp/tools/jupyter/jupyter.py,sha256=0mUNu_Q0jnmiQip9Y2naAF0tJ71hy4mMmUMoWnuCBYU,11757
78
+ hanzo_mcp/tools/jupyter/notebook_edit.py,sha256=MeaeUgvPnc5EmvgzbtJGIqKqFuUFt_8RE-XzBouYU4Q,11806
79
+ hanzo_mcp/tools/jupyter/notebook_read.py,sha256=Au6Ad3N1Z5cYq2yIbu5y9H4oF6SwOj6SdHQeBwP7Gus,5222
80
+ hanzo_mcp/tools/llm/__init__.py,sha256=kY8OJVsM8qRb0eVRjF7kuWJsrrlIxcUQntJS_FYXt8M,721
81
+ hanzo_mcp/tools/llm/consensus_tool.py,sha256=5Rjs9TS0jeNkSH12AQK3fSvy7yo6tJRdmfYZLrR6NgU,11622
82
+ hanzo_mcp/tools/llm/llm_manage.py,sha256=SCgmiO_cjQnCFdpsGzIPMluN1s8FA-Nj5-3AJZLvIUg,15666
83
+ hanzo_mcp/tools/llm/llm_tool.py,sha256=cEzZKORFzdu4KcYJ8KB105m_xHLaMGTz5owPjbjPx-8,11158
84
+ hanzo_mcp/tools/llm/llm_unified.py,sha256=BxSmXkJpD8QA-RQN_-L1G9zbZrP6gCQGuUegLtlafww,29804
85
+ hanzo_mcp/tools/llm/provider_tools.py,sha256=mtjGdAPX3XFc_22fMNYNQbeU49opduQPO9h7DoN5IQo,11546
86
+ hanzo_mcp/tools/mcp/__init__.py,sha256=0-7s3m51wXMt56X1hgUBEjadvLpu64OGcjjJWFOI058,365
87
+ hanzo_mcp/tools/mcp/mcp_add.py,sha256=e66tk-OoV8R5x020sDHWgmJw_QLncfA7_RAi2Mr3ZDc,7924
88
+ hanzo_mcp/tools/mcp/mcp_remove.py,sha256=cI_C6xjaHrQ0jnlqRZvrtjDi4CR6V0mTDLynOlrcAiA,3266
89
+ hanzo_mcp/tools/mcp/mcp_stats.py,sha256=nka8zAJEEfqlA3tO5IamuIwOnmIZzLDW52kOxPTCDZc,5478
90
+ hanzo_mcp/tools/mcp/mcp_unified.py,sha256=xZPKDqhBEMsUKFrKS9nRcl0n2YWZU_6DK3lvl2PYBQ4,16871
91
+ hanzo_mcp/tools/shell/__init__.py,sha256=d66Jo8BIA6Re__b3r9V_e8uGm8psplQ2SGf0XRSGBzM,1733
92
+ hanzo_mcp/tools/shell/base.py,sha256=Nx9rAE7CO9-Hr5k_qYKUtNFq4twI6Z-lOt0fpkS57i4,5832
93
+ hanzo_mcp/tools/shell/base_process.py,sha256=KgXA98hFsbU5Y9E6mGLTTwQZowgHGpk5HSALxRICqDI,9495
94
+ hanzo_mcp/tools/shell/bash_session.py,sha256=YPtdtC0pc6Q04RJqKUy0u0RPTbiT2IGtsvFqejK5Hu4,27271
95
+ hanzo_mcp/tools/shell/bash_session_executor.py,sha256=zRnrzj4sdQOxO22XXBENT6k2dXt3LDk5fxjWjUYyU_Q,10723
96
+ hanzo_mcp/tools/shell/bash_unified.py,sha256=HNkHykgaY5oiRdPPdje2lBECkKCh4TavYFtLY-v6dGg,4148
97
+ hanzo_mcp/tools/shell/command_executor.py,sha256=IuoRY48PMmpKHL5CFIExebjoiRRS5ZEl73UDzYTR3kU,36406
98
+ hanzo_mcp/tools/shell/logs.py,sha256=RahjkEHNwsKbnJ7cTAie70BSb9bV6T9Vf4JJluoZXYo,8468
99
+ hanzo_mcp/tools/shell/npx.py,sha256=Bs5tKpyJMm6Yfrmuph0btbvSQGbDczR_YToP2iRqhHY,5083
100
+ hanzo_mcp/tools/shell/npx_background.py,sha256=GNZOYV_jjA9pa7w-ZNy_oX7iSA_VfZRzVUr7dKunfjo,7120
101
+ hanzo_mcp/tools/shell/npx_unified.py,sha256=Uzxpc6zvDYMNTONUDHSCRrJqJktW0ccxDtgwbDsiqLI,2823
102
+ hanzo_mcp/tools/shell/open.py,sha256=6P13YDtj6FSx5nyPs-aNDKx87iGiPsZf2Q8Aeq5FsF4,3497
103
+ hanzo_mcp/tools/shell/pkill.py,sha256=PStKLEhuZhCZAXnn-Wwlut2xjV7GIc7PozuF8y8b7gI,8676
104
+ hanzo_mcp/tools/shell/process_unified.py,sha256=YAUws2zvUejtiudnExfwLJzbMnQ2GtNDGoWEgNaAb3I,4358
105
+ hanzo_mcp/tools/shell/processes.py,sha256=q2TCVpftV1HJaoEOEWzTOOUvyRemZiG0v8hK9VGM94A,9395
106
+ hanzo_mcp/tools/shell/run_background.py,sha256=K2SxCF9sDcVxcwzAA77plZMb3wjYTOoSqS6MVyuBFBE,9713
107
+ hanzo_mcp/tools/shell/run_command.py,sha256=AEH3waGpjbaSxBxSfmDW6hF7aL4pzwEwgUojOEsSNOY,16095
108
+ hanzo_mcp/tools/shell/run_command_windows.py,sha256=ccicQHYJVfqowKxyUIpXYDoIvZl6jpgJDubPuDUpC5A,15321
109
+ hanzo_mcp/tools/shell/session_manager.py,sha256=o8iS4PFCnq28vPqYtdtH9M8lfGyzyhtNL0hmNI13Uuc,6509
110
+ hanzo_mcp/tools/shell/session_storage.py,sha256=elnyFgn0FwsmVvoWAoJFAqiEeNaK4_yByT8-zXa6r-o,10141
111
+ hanzo_mcp/tools/shell/uvx.py,sha256=Y74SmbYHYlEoXXMzc9wh405-MD7zKAgFyWDBKastBHI,5034
112
+ hanzo_mcp/tools/shell/uvx_background.py,sha256=uXeSJ_hjbpWyo2Zm75KJTZI2h_ZV5nEb_rAF7Gl954U,7105
113
+ hanzo_mcp/tools/shell/uvx_unified.py,sha256=_m3D9iiWs7TBpt2LFCgOnefkSe45i3C9zof4auu24jw,2841
114
+ hanzo_mcp/tools/todo/__init__.py,sha256=p0flShq4Kw9saGQ5NXjTjwFa8BeukACaEJBTqG34H2M,1723
115
+ hanzo_mcp/tools/todo/base.py,sha256=k0CFZy59YlLAJBVzVA4tr-qGkQ1l5yF04kcmziwQWec,10666
116
+ hanzo_mcp/tools/todo/todo.py,sha256=y4LM8CIb94tK-lURnVer2WzctKPx_EWS0kEIM1Ut0Os,8218
117
+ hanzo_mcp/tools/todo/todo_read.py,sha256=EWqXOeQANGQOJXKyMv-0GeJdq-d0HnslRM__LW6Jydg,4688
118
+ hanzo_mcp/tools/todo/todo_write.py,sha256=nJG2By4FXHZm7NNreEfVYb3wPJbraVWjrdv_TqXqYFo,15394
119
+ hanzo_mcp/tools/vector/__init__.py,sha256=6LxU1yeauhv5pQ-lhQuPrBDTC9c7Y6gCbZBBo-4r9HI,3853
120
+ hanzo_mcp/tools/vector/ast_analyzer.py,sha256=2bUM9j9rCNARNXXF2cuFSp2ercwZAJWlAqeRIwn46Ck,15653
121
+ hanzo_mcp/tools/vector/git_ingester.py,sha256=pR4_HRMT7trGhr1kGHASvhgm7Vjwh6UY-UVdXCNj07s,16367
122
+ hanzo_mcp/tools/vector/index_tool.py,sha256=rMqv1WQMt18eikXdOzUNYyvWdR1gK_rIy4P769gGTak,12769
123
+ hanzo_mcp/tools/vector/infinity_store.py,sha256=E3YotdY798HTPs4X2IMv-SOjt-VjCC2XAFaWPeSVUQU,28382
124
+ hanzo_mcp/tools/vector/mock_infinity.py,sha256=QyU7FM2eTCP0BeuX8xhRe0En7hG9EFt-XzgDu-BefrI,4990
125
+ hanzo_mcp/tools/vector/project_manager.py,sha256=xrkRl7niWjJrtSNaEOppkPzDFDw9FaEeOIbPY8D4wJw,13534
126
+ hanzo_mcp/tools/vector/vector.py,sha256=EpKEDkRfSHsDfPewqRwNAulX0BndlK48p-sFSMtt3js,10179
127
+ hanzo_mcp/tools/vector/vector_index.py,sha256=IqXoEfEk6TOOEThXw4obePZqfvBRiYL_LCrx8z35-h8,4403
128
+ hanzo_mcp/tools/vector/vector_search.py,sha256=jwX1azf4V4seqJ2CIDloX3lJ5_hkUl7X5e2OOgGXQNk,9647
129
+ hanzo_mcp-0.6.1.dist-info/licenses/LICENSE,sha256=mf1qZGFsPGskoPgytp9B-RsahfKvXsBpmaAbTLGTt8Y,1063
130
+ hanzo_mcp-0.6.1.dist-info/METADATA,sha256=NBfs-6Mm0SpWtUmb893tNZOK-rgmbE-HRMtnhQ39h9Y,11027
131
+ hanzo_mcp-0.6.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
132
+ hanzo_mcp-0.6.1.dist-info/entry_points.txt,sha256=Q_g5SzWk47z2b_rE_RgonVqk4-d8VQ6pqwMveYiXJuU,101
133
+ hanzo_mcp-0.6.1.dist-info/top_level.txt,sha256=eGFANatA0MHWiVlpS56fTYRIShtibrSom1uXI6XU0GU,10
134
+ hanzo_mcp-0.6.1.dist-info/RECORD,,
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ hanzo-mcp = hanzo_mcp.cli:main
3
+ hanzo-mcp-dev = hanzo_mcp.dev_server:run_dev_server