hanzo-mcp 0.8.2__py3-none-any.whl → 0.8.4__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.
- hanzo_mcp/__init__.py +15 -2
- hanzo_mcp/bridge.py +133 -127
- hanzo_mcp/cli.py +45 -21
- hanzo_mcp/compute_nodes.py +68 -55
- hanzo_mcp/config/settings.py +11 -0
- hanzo_mcp/core/base_agent.py +520 -0
- hanzo_mcp/core/model_registry.py +436 -0
- hanzo_mcp/dev_server.py +3 -2
- hanzo_mcp/server.py +4 -1
- hanzo_mcp/tools/__init__.py +61 -46
- hanzo_mcp/tools/agent/__init__.py +63 -52
- hanzo_mcp/tools/agent/agent_tool.py +12 -1
- hanzo_mcp/tools/agent/cli_tools.py +543 -0
- hanzo_mcp/tools/agent/network_tool.py +11 -55
- hanzo_mcp/tools/agent/unified_cli_tools.py +259 -0
- hanzo_mcp/tools/common/batch_tool.py +2 -0
- hanzo_mcp/tools/common/context.py +3 -1
- hanzo_mcp/tools/config/config_tool.py +121 -9
- hanzo_mcp/tools/filesystem/__init__.py +18 -0
- hanzo_mcp/tools/llm/__init__.py +44 -16
- hanzo_mcp/tools/llm/llm_tool.py +13 -0
- hanzo_mcp/tools/llm/llm_unified.py +911 -0
- hanzo_mcp/tools/shell/__init__.py +7 -1
- hanzo_mcp/tools/shell/auto_background.py +24 -0
- hanzo_mcp/tools/shell/bash_tool.py +14 -28
- hanzo_mcp/tools/shell/zsh_tool.py +266 -0
- hanzo_mcp-0.8.4.dist-info/METADATA +411 -0
- {hanzo_mcp-0.8.2.dist-info → hanzo_mcp-0.8.4.dist-info}/RECORD +31 -25
- hanzo_mcp-0.8.2.dist-info/METADATA +0 -526
- {hanzo_mcp-0.8.2.dist-info → hanzo_mcp-0.8.4.dist-info}/WHEEL +0 -0
- {hanzo_mcp-0.8.2.dist-info → hanzo_mcp-0.8.4.dist-info}/entry_points.txt +0 -0
- {hanzo_mcp-0.8.2.dist-info → hanzo_mcp-0.8.4.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: hanzo-mcp
|
|
3
|
+
Version: 0.8.4
|
|
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.0.0
|
|
28
|
+
Requires-Dist: pydantic>=2.9.2
|
|
29
|
+
Requires-Dist: pydantic-settings>=2.7.0
|
|
30
|
+
Requires-Dist: typing-extensions>=4.13.0
|
|
31
|
+
Requires-Dist: watchdog>=6.0.0
|
|
32
|
+
Requires-Dist: keyring>=24.0.0
|
|
33
|
+
Requires-Dist: ffind>=1.3.0
|
|
34
|
+
Provides-Extra: dev
|
|
35
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
36
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
|
|
37
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
38
|
+
Requires-Dist: black>=23.3.0; extra == "dev"
|
|
39
|
+
Requires-Dist: sphinx>=8.0.0; extra == "dev"
|
|
40
|
+
Requires-Dist: sphinx-rtd-theme>=3.0.0; extra == "dev"
|
|
41
|
+
Requires-Dist: myst-parser>=4.0.0; extra == "dev"
|
|
42
|
+
Requires-Dist: sphinx-copybutton>=0.5.0; extra == "dev"
|
|
43
|
+
Requires-Dist: mypy>=1.10.0; extra == "dev"
|
|
44
|
+
Requires-Dist: types-aiofiles>=23.2.0; extra == "dev"
|
|
45
|
+
Requires-Dist: types-psutil>=5.9.5; extra == "dev"
|
|
46
|
+
Requires-Dist: types-setuptools>=69.5.0; extra == "dev"
|
|
47
|
+
Provides-Extra: docs
|
|
48
|
+
Requires-Dist: sphinx>=8.0.0; extra == "docs"
|
|
49
|
+
Requires-Dist: sphinx-rtd-theme>=3.0.0; extra == "docs"
|
|
50
|
+
Requires-Dist: myst-parser>=4.0.0; extra == "docs"
|
|
51
|
+
Requires-Dist: sphinx-copybutton>=0.5.0; extra == "docs"
|
|
52
|
+
Provides-Extra: analytics
|
|
53
|
+
Requires-Dist: posthog>=3.0.0; extra == "analytics"
|
|
54
|
+
Provides-Extra: test
|
|
55
|
+
Requires-Dist: pytest>=7.0.0; extra == "test"
|
|
56
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == "test"
|
|
57
|
+
Requires-Dist: pytest-mock>=3.10.0; extra == "test"
|
|
58
|
+
Requires-Dist: pytest-asyncio>=0.25.3; extra == "test"
|
|
59
|
+
Requires-Dist: twisted; extra == "test"
|
|
60
|
+
Provides-Extra: agents
|
|
61
|
+
Requires-Dist: hanzo-agents>=0.1.0; extra == "agents"
|
|
62
|
+
Provides-Extra: memory
|
|
63
|
+
Requires-Dist: hanzo-memory>=1.0.0; extra == "memory"
|
|
64
|
+
Provides-Extra: performance
|
|
65
|
+
Requires-Dist: ujson>=5.7.0; extra == "performance"
|
|
66
|
+
Requires-Dist: orjson>=3.9.0; extra == "performance"
|
|
67
|
+
Provides-Extra: publish
|
|
68
|
+
Requires-Dist: twine>=4.0.2; extra == "publish"
|
|
69
|
+
Requires-Dist: build>=1.0.3; extra == "publish"
|
|
70
|
+
|
|
71
|
+
# Hanzo Model Context Protocol (MCP)
|
|
72
|
+
|
|
73
|
+
[](https://pypi.org/project/hanzo-mcp/)
|
|
74
|
+
[](https://pypi.org/project/hanzo-mcp/)
|
|
75
|
+
|
|
76
|
+
Model Context Protocol implementation for advanced tool use and context management.
|
|
77
|
+
|
|
78
|
+
## Installation
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
pip install hanzo-mcp
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Features
|
|
85
|
+
|
|
86
|
+
- **Tool Management**: Register and manage AI tools
|
|
87
|
+
- **File Operations**: Read, write, edit files
|
|
88
|
+
- **Code Intelligence**: AST analysis, symbol search
|
|
89
|
+
- **Shell Execution**: Run commands safely
|
|
90
|
+
- **Agent Delegation**: Recursive agent capabilities
|
|
91
|
+
- **Memory Integration**: Persistent context storage
|
|
92
|
+
- **Batch Operations**: Execute multiple tools efficiently
|
|
93
|
+
|
|
94
|
+
## Quick Start
|
|
95
|
+
|
|
96
|
+
### Basic Usage
|
|
97
|
+
|
|
98
|
+
```python
|
|
99
|
+
from hanzo_mcp import create_mcp_server
|
|
100
|
+
|
|
101
|
+
# Create MCP server
|
|
102
|
+
server = create_mcp_server()
|
|
103
|
+
|
|
104
|
+
# Register tools
|
|
105
|
+
server.register_filesystem_tools()
|
|
106
|
+
server.register_shell_tools()
|
|
107
|
+
server.register_agent_tools()
|
|
108
|
+
|
|
109
|
+
# Start server
|
|
110
|
+
await server.start()
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Tool Categories
|
|
114
|
+
|
|
115
|
+
#### Filesystem Tools
|
|
116
|
+
|
|
117
|
+
```python
|
|
118
|
+
# Read file
|
|
119
|
+
content = await server.tools.read(file_path="/path/to/file.py")
|
|
120
|
+
|
|
121
|
+
# Write file
|
|
122
|
+
await server.tools.write(
|
|
123
|
+
file_path="/path/to/new.py",
|
|
124
|
+
content="print('Hello')"
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
# Edit file
|
|
128
|
+
await server.tools.edit(
|
|
129
|
+
file_path="/path/to/file.py",
|
|
130
|
+
old_string="old code",
|
|
131
|
+
new_string="new code"
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
# Multi-edit
|
|
135
|
+
await server.tools.multi_edit(
|
|
136
|
+
file_path="/path/to/file.py",
|
|
137
|
+
edits=[
|
|
138
|
+
{"old_string": "foo", "new_string": "bar"},
|
|
139
|
+
{"old_string": "baz", "new_string": "qux"}
|
|
140
|
+
]
|
|
141
|
+
)
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
#### Search Tools
|
|
145
|
+
|
|
146
|
+
```python
|
|
147
|
+
# Unified search (grep + AST + semantic)
|
|
148
|
+
results = await server.tools.search(
|
|
149
|
+
pattern="function_name",
|
|
150
|
+
path="/project"
|
|
151
|
+
)
|
|
152
|
+
|
|
153
|
+
# AST-aware search
|
|
154
|
+
results = await server.tools.grep_ast(
|
|
155
|
+
pattern="class.*Service",
|
|
156
|
+
path="/src"
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
# Symbol search
|
|
160
|
+
symbols = await server.tools.symbols(
|
|
161
|
+
pattern="def test_",
|
|
162
|
+
path="/tests"
|
|
163
|
+
)
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
#### Shell Tools
|
|
167
|
+
|
|
168
|
+
```python
|
|
169
|
+
# Run command
|
|
170
|
+
result = await server.tools.bash(
|
|
171
|
+
command="ls -la",
|
|
172
|
+
cwd="/project"
|
|
173
|
+
)
|
|
174
|
+
|
|
175
|
+
# Run with auto-backgrounding
|
|
176
|
+
result = await server.tools.bash(
|
|
177
|
+
command="python server.py",
|
|
178
|
+
timeout=120000 # Auto-backgrounds after 2 min
|
|
179
|
+
)
|
|
180
|
+
|
|
181
|
+
# Manage processes
|
|
182
|
+
processes = await server.tools.process(action="list")
|
|
183
|
+
logs = await server.tools.process(
|
|
184
|
+
action="logs",
|
|
185
|
+
id="bash_abc123"
|
|
186
|
+
)
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
#### Agent Tools
|
|
190
|
+
|
|
191
|
+
```python
|
|
192
|
+
# Dispatch agent for complex tasks
|
|
193
|
+
result = await server.tools.dispatch_agent(
|
|
194
|
+
prompt="Analyze the codebase architecture",
|
|
195
|
+
path="/project"
|
|
196
|
+
)
|
|
197
|
+
|
|
198
|
+
# Network of agents
|
|
199
|
+
result = await server.tools.network(
|
|
200
|
+
task="Implement user authentication",
|
|
201
|
+
agents=["architect", "developer", "tester"]
|
|
202
|
+
)
|
|
203
|
+
|
|
204
|
+
# CLI tool integration
|
|
205
|
+
result = await server.tools.claude(
|
|
206
|
+
args=["--analyze", "main.py"]
|
|
207
|
+
)
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
#### Batch Operations
|
|
211
|
+
|
|
212
|
+
```python
|
|
213
|
+
# Execute multiple tools in parallel
|
|
214
|
+
results = await server.tools.batch(
|
|
215
|
+
description="Read multiple files",
|
|
216
|
+
invocations=[
|
|
217
|
+
{"tool_name": "read", "input": {"file_path": "file1.py"}},
|
|
218
|
+
{"tool_name": "read", "input": {"file_path": "file2.py"}},
|
|
219
|
+
{"tool_name": "grep", "input": {"pattern": "TODO"}}
|
|
220
|
+
]
|
|
221
|
+
)
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
## Advanced Features
|
|
225
|
+
|
|
226
|
+
### Custom Tools
|
|
227
|
+
|
|
228
|
+
```python
|
|
229
|
+
from hanzo_mcp import Tool
|
|
230
|
+
|
|
231
|
+
class MyCustomTool(Tool):
|
|
232
|
+
name = "my_tool"
|
|
233
|
+
description = "Custom tool"
|
|
234
|
+
|
|
235
|
+
async def call(self, ctx, **params):
|
|
236
|
+
# Tool implementation
|
|
237
|
+
return "Result"
|
|
238
|
+
|
|
239
|
+
# Register custom tool
|
|
240
|
+
server.register_tool(MyCustomTool())
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### Permission Management
|
|
244
|
+
|
|
245
|
+
```python
|
|
246
|
+
from hanzo_mcp import PermissionManager
|
|
247
|
+
|
|
248
|
+
# Create permission manager
|
|
249
|
+
pm = PermissionManager()
|
|
250
|
+
|
|
251
|
+
# Set permission mode
|
|
252
|
+
pm.set_mode("review") # review, auto_approve, auto_deny
|
|
253
|
+
|
|
254
|
+
# Check permission
|
|
255
|
+
allowed = await pm.check_permission(
|
|
256
|
+
tool="write",
|
|
257
|
+
params={"file_path": "/etc/passwd"}
|
|
258
|
+
)
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### Context Management
|
|
262
|
+
|
|
263
|
+
```python
|
|
264
|
+
from hanzo_mcp import ToolContext
|
|
265
|
+
|
|
266
|
+
# Create context
|
|
267
|
+
ctx = ToolContext(
|
|
268
|
+
cwd="/project",
|
|
269
|
+
env={"API_KEY": "secret"},
|
|
270
|
+
timeout=30000
|
|
271
|
+
)
|
|
272
|
+
|
|
273
|
+
# Use with tools
|
|
274
|
+
result = await tool.call(ctx, **params)
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
## Configuration
|
|
278
|
+
|
|
279
|
+
### Environment Variables
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
# API keys for agent tools
|
|
283
|
+
ANTHROPIC_API_KEY=sk-ant-...
|
|
284
|
+
OPENAI_API_KEY=sk-...
|
|
285
|
+
|
|
286
|
+
# Tool settings
|
|
287
|
+
MCP_PERMISSION_MODE=review
|
|
288
|
+
MCP_MAX_FILE_SIZE=10485760
|
|
289
|
+
MCP_TIMEOUT=120000
|
|
290
|
+
|
|
291
|
+
# Search settings
|
|
292
|
+
MCP_SEARCH_IGNORE=node_modules,*.pyc
|
|
293
|
+
MCP_SEARCH_MAX_RESULTS=100
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
### Configuration File
|
|
297
|
+
|
|
298
|
+
```yaml
|
|
299
|
+
tools:
|
|
300
|
+
filesystem:
|
|
301
|
+
enabled: true
|
|
302
|
+
max_file_size: 10MB
|
|
303
|
+
allowed_paths:
|
|
304
|
+
- /home/user/projects
|
|
305
|
+
- /tmp
|
|
306
|
+
|
|
307
|
+
shell:
|
|
308
|
+
enabled: true
|
|
309
|
+
timeout: 120000
|
|
310
|
+
auto_background: true
|
|
311
|
+
|
|
312
|
+
agent:
|
|
313
|
+
enabled: true
|
|
314
|
+
models:
|
|
315
|
+
- claude-3-opus
|
|
316
|
+
- gpt-4
|
|
317
|
+
|
|
318
|
+
search:
|
|
319
|
+
ignore_patterns:
|
|
320
|
+
- node_modules
|
|
321
|
+
- "*.pyc"
|
|
322
|
+
- .git
|
|
323
|
+
max_results: 100
|
|
324
|
+
|
|
325
|
+
permissions:
|
|
326
|
+
mode: review # review, auto_approve, auto_deny
|
|
327
|
+
whitelist:
|
|
328
|
+
- read
|
|
329
|
+
- grep
|
|
330
|
+
- search
|
|
331
|
+
blacklist:
|
|
332
|
+
- rm
|
|
333
|
+
- sudo
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
## CLI Usage
|
|
337
|
+
|
|
338
|
+
### Installation to Claude Desktop
|
|
339
|
+
|
|
340
|
+
```bash
|
|
341
|
+
# Install to Claude Desktop
|
|
342
|
+
hanzo-mcp install-desktop
|
|
343
|
+
|
|
344
|
+
# Serve MCP
|
|
345
|
+
hanzo-mcp serve --port 3000
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
### Standalone Server
|
|
349
|
+
|
|
350
|
+
```bash
|
|
351
|
+
# Start MCP server
|
|
352
|
+
hanzo-mcp serve
|
|
353
|
+
|
|
354
|
+
# With custom config
|
|
355
|
+
hanzo-mcp serve --config mcp-config.yaml
|
|
356
|
+
|
|
357
|
+
# With specific tools
|
|
358
|
+
hanzo-mcp serve --tools filesystem,shell,agent
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
## Development
|
|
362
|
+
|
|
363
|
+
### Setup
|
|
364
|
+
|
|
365
|
+
```bash
|
|
366
|
+
cd pkg/hanzo-mcp
|
|
367
|
+
uv sync --all-extras
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
### Testing
|
|
371
|
+
|
|
372
|
+
```bash
|
|
373
|
+
# Unit tests
|
|
374
|
+
pytest tests/ -v
|
|
375
|
+
|
|
376
|
+
# Integration tests
|
|
377
|
+
pytest tests/ -m integration
|
|
378
|
+
|
|
379
|
+
# With coverage
|
|
380
|
+
pytest tests/ --cov=hanzo_mcp
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
### Building
|
|
384
|
+
|
|
385
|
+
```bash
|
|
386
|
+
uv build
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
## Architecture
|
|
390
|
+
|
|
391
|
+
### Tool Categories
|
|
392
|
+
|
|
393
|
+
- **Filesystem**: File operations (read, write, edit)
|
|
394
|
+
- **Search**: Code search (grep, AST, semantic)
|
|
395
|
+
- **Shell**: Command execution and process management
|
|
396
|
+
- **Agent**: AI agent delegation and orchestration
|
|
397
|
+
- **Memory**: Context and knowledge persistence
|
|
398
|
+
- **Config**: Configuration management
|
|
399
|
+
- **LLM**: Direct LLM interactions
|
|
400
|
+
|
|
401
|
+
### Security
|
|
402
|
+
|
|
403
|
+
- Permission system for dangerous operations
|
|
404
|
+
- Path validation and sandboxing
|
|
405
|
+
- Command injection protection
|
|
406
|
+
- Rate limiting on operations
|
|
407
|
+
- Audit logging
|
|
408
|
+
|
|
409
|
+
## License
|
|
410
|
+
|
|
411
|
+
Apache License 2.0
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
hanzo_mcp/__init__.py,sha256=
|
|
1
|
+
hanzo_mcp/__init__.py,sha256=DRSsStAQLco33avsyYOk6liW-6fIqkPi8CyXlJiFtoU,868
|
|
2
2
|
hanzo_mcp/__main__.py,sha256=EvDEygOjvP6S_CrZSL8E4qgGUcO_xfmzEIbsLEHPaK4,130
|
|
3
|
-
hanzo_mcp/bridge.py,sha256=
|
|
4
|
-
hanzo_mcp/cli.py,sha256=
|
|
3
|
+
hanzo_mcp/bridge.py,sha256=ewZprfl5Hbf2LXxQf4KazMy7pOiPVx_paX4rZ0NhgDU,14995
|
|
4
|
+
hanzo_mcp/cli.py,sha256=OyOArc3IOj8v0xvKbmm1bsmOlQZyjdE07EDE3cV0Akk,14823
|
|
5
5
|
hanzo_mcp/cli_enhanced.py,sha256=Nr4sXJ-dK9jkQ4BRDdwotXUwakL8CGme-FlYNPqCq0U,16022
|
|
6
6
|
hanzo_mcp/cli_plugin.py,sha256=nQVn0sYP1eDaz61QbHwT6BBRPfYZb1eH1HJ1l5QkHsw,3281
|
|
7
|
-
hanzo_mcp/compute_nodes.py,sha256=
|
|
8
|
-
hanzo_mcp/dev_server.py,sha256=
|
|
9
|
-
hanzo_mcp/server.py,sha256=
|
|
7
|
+
hanzo_mcp/compute_nodes.py,sha256=mFHQdxyo_SEeiwrQaPg-V9q2xmMRQiO7X_NePrWhSZ4,6315
|
|
8
|
+
hanzo_mcp/dev_server.py,sha256=AiYHQ1-EwzpVqD9tJN5y_LQeJdy3_uDzffPsZV3GGRM,8317
|
|
9
|
+
hanzo_mcp/server.py,sha256=Ad3S5s48FQpmqNS_3Ql_pAXxt2ST0omLEauoHy7AURs,10408
|
|
10
10
|
hanzo_mcp/server_enhanced.py,sha256=bBrObdysyda6Ggf-E3aL7UwktUNzYO_HG1V45Av5r-E,2003
|
|
11
11
|
hanzo_mcp/types.py,sha256=4YjIJmM7byrsY4eN10pbhIUpFMQ-fZrpK6scgt-U9dU,648
|
|
12
12
|
hanzo_mcp/analytics/__init__.py,sha256=ANyntTooBrpa_uvwE6KbYxB9uda610UT10pt2rrLiUU,213
|
|
13
13
|
hanzo_mcp/analytics/posthog_analytics.py,sha256=sNwwhNUbz47bqsM6Fy7FDYZJb1fNB2B5vXeDtTx88KU,10690
|
|
14
14
|
hanzo_mcp/config/__init__.py,sha256=1ifMucAN-htFEGdRpiC1T809Q03Bd7YUE5ATOHNi6Po,505
|
|
15
|
-
hanzo_mcp/config/settings.py,sha256=
|
|
15
|
+
hanzo_mcp/config/settings.py,sha256=5JLqC_wdwQdIzGmwmyZh8aKWpYfxM8m8F268-K4Mr2A,18985
|
|
16
16
|
hanzo_mcp/config/tool_config.py,sha256=SaH9fT6cXVBfJuNu3a8M-XiE1LGTqgyhcm6MP5Ja-a8,6842
|
|
17
|
+
hanzo_mcp/core/base_agent.py,sha256=KgYzgU9ChPGdvtjKl1lhV5kqwGDduJdqGvczKicRHI8,15496
|
|
18
|
+
hanzo_mcp/core/model_registry.py,sha256=vMluoWgVwhYxZP2DnNzkccvNx1Pn7QXV2V4Bgd-jt8E,13342
|
|
17
19
|
hanzo_mcp/prompts/__init__.py,sha256=h3AXLEsI5uZNr_DiGzJesytp1u_YSoGc3BZYIbU_yNU,7676
|
|
18
20
|
hanzo_mcp/prompts/compact_conversation.py,sha256=nvD068KEesiMcevxxMBeIJh6AqT7YHOqyH6RepRFFfA,4206
|
|
19
21
|
hanzo_mcp/prompts/create_release.py,sha256=1Z8xSTtz5vAm0rWFnERpFu7wIYExT4iXhM6nGmQaM-s,1374
|
|
@@ -23,16 +25,17 @@ hanzo_mcp/prompts/project_system.py,sha256=FgWxRaX7rPQwDZT3n69yBwLkQv4uJ4jcUZjKz
|
|
|
23
25
|
hanzo_mcp/prompts/project_todo_reminder.py,sha256=oN1EG0FR4XnxvFOXX_E5EFvX6L-8uYlX0hxFEiDRERc,3644
|
|
24
26
|
hanzo_mcp/prompts/tool_explorer.py,sha256=6mI35V_EH8AA4pWIMAeG96qP1VPrU1HgnxwVyB0bg5A,16411
|
|
25
27
|
hanzo_mcp/prompts/utils.py,sha256=IwxIhzZfYJ2anToPulbrpcc07u4Dozo9ok6VE3BC_4A,9963
|
|
26
|
-
hanzo_mcp/tools/__init__.py,sha256=
|
|
27
|
-
hanzo_mcp/tools/agent/__init__.py,sha256=
|
|
28
|
+
hanzo_mcp/tools/__init__.py,sha256=BaouJ0V3KglQccnTeS2Rrdjf04V3gGYWenMq5e49AHc,18814
|
|
29
|
+
hanzo_mcp/tools/agent/__init__.py,sha256=UGDZ0Ehi8sVoE-Utq7jMI5SPkmHqsV6-RH55iMql4wg,4784
|
|
28
30
|
hanzo_mcp/tools/agent/agent.py,sha256=bgVbLmeXHVlO2TDLmjDeKw0IzXy73mFisSLylj39XaM,13151
|
|
29
|
-
hanzo_mcp/tools/agent/agent_tool.py,sha256=
|
|
31
|
+
hanzo_mcp/tools/agent/agent_tool.py,sha256=DeK0TWz3dFOS-_KTtcog8kqb9RjI9bXWaGACoSFDNYw,16814
|
|
30
32
|
hanzo_mcp/tools/agent/agent_tool_v1_deprecated.py,sha256=JWHhkHdfsbsVAA5bGtJdcmONWQrcCOIcnjr5BXbuNgw,26578
|
|
31
33
|
hanzo_mcp/tools/agent/clarification_protocol.py,sha256=QYJTmDSJVRDyZMow80TxWmnJurxuLo1MaIFge8t_Yvk,8041
|
|
32
34
|
hanzo_mcp/tools/agent/clarification_tool.py,sha256=up40UJLY5JrS6D3yBD1lW1vSrh79JNa3LoKrrNmAmwg,2449
|
|
33
35
|
hanzo_mcp/tools/agent/claude_cli_tool.py,sha256=55Wc0LKgYCtDKQ02NXOYPMhx-sW7fL_NSCx0upsvvb4,3812
|
|
34
36
|
hanzo_mcp/tools/agent/claude_desktop_auth.py,sha256=EoP-OWMg9QATsVjBGisyd0P_EV8fzLp284JIdqDwp7U,16203
|
|
35
37
|
hanzo_mcp/tools/agent/cli_agent_base.py,sha256=FanJ-C9dzx7x1e-uSNQfIWrCMsPyCl34FyUgtnpfXG4,6494
|
|
38
|
+
hanzo_mcp/tools/agent/cli_tools.py,sha256=8nonHL5FnOMfJ83zj41KJOGaisoGw04ybz2zOZezrNA,16567
|
|
36
39
|
hanzo_mcp/tools/agent/code_auth.py,sha256=G8ZHQYKm3DRSknmkwYdUoPtnQr5xcQePZ8VcBNqrMG0,13948
|
|
37
40
|
hanzo_mcp/tools/agent/code_auth_tool.py,sha256=R5Cod5VTX30G_tQT5W-6qYQKi4Qr1LYXLZPq7ZT4zLM,6165
|
|
38
41
|
hanzo_mcp/tools/agent/codex_cli_tool.py,sha256=9jyB4cTtdcK50g6oapk7Bo4n8C8bAO2B9RuHHLOtP54,3697
|
|
@@ -40,18 +43,19 @@ hanzo_mcp/tools/agent/critic_tool.py,sha256=GCjFnQy9jLVGfCcJf_wLuYvBQcnOMrxpDcjJ
|
|
|
40
43
|
hanzo_mcp/tools/agent/gemini_cli_tool.py,sha256=4PE7qYGlFC6_u0T2_Yh3WfBqZjuZM4UY2rPBkKtwaEU,3927
|
|
41
44
|
hanzo_mcp/tools/agent/grok_cli_tool.py,sha256=YH1qweHDWDm-Yo84gcw_bL2w_vIdhSc6f7LNJlAHSeQ,3761
|
|
42
45
|
hanzo_mcp/tools/agent/iching_tool.py,sha256=CalCYCzsiDo1fdPp4sfCaEEvW281sHqE74VewM9u9v4,23602
|
|
43
|
-
hanzo_mcp/tools/agent/network_tool.py,sha256=
|
|
46
|
+
hanzo_mcp/tools/agent/network_tool.py,sha256=diDemnua7QZZfAmAWN2yWXAUYAdycRoWqi1jzqbDwhQ,8559
|
|
44
47
|
hanzo_mcp/tools/agent/prompt.py,sha256=Z-kQrbg8Uivm-ki468s-jjdydzx8XrPPZuwSg_r6S6c,6814
|
|
45
48
|
hanzo_mcp/tools/agent/review_tool.py,sha256=npwHTsJqojuuT_nLWqOtCdgaX3FKXfe9uSIlqIco_Tw,16828
|
|
46
49
|
hanzo_mcp/tools/agent/swarm_alias.py,sha256=7LwyAV2enw9KGzGS1lhPU9ty4btXuEbMkeUYoLEWE1Y,2992
|
|
47
50
|
hanzo_mcp/tools/agent/swarm_tool.py,sha256=o4J-7RGI9uRDmg3Cj-tLV2zxnaF8dV6vrchAPBPRa6A,22352
|
|
48
51
|
hanzo_mcp/tools/agent/swarm_tool_v1_deprecated.py,sha256=Bbmz9TUhyaiqhekJPuOmfM9ZmRkG7e1f8aCCcX9jw0I,20792
|
|
49
52
|
hanzo_mcp/tools/agent/tool_adapter.py,sha256=rLItgdKvvfzJL4chNIrNK_I5kSCm6ocmi83RQm93NgA,3191
|
|
53
|
+
hanzo_mcp/tools/agent/unified_cli_tools.py,sha256=a6a77eIHnX04umQ4Qj3ZNy3liobjvCOY4KrVNLuikPI,8398
|
|
50
54
|
hanzo_mcp/tools/common/__init__.py,sha256=2gXIERXM7sALINWfDBbH_khzBRatvwQSWgpAvKlfy4o,1283
|
|
51
55
|
hanzo_mcp/tools/common/base.py,sha256=W46BbEhaPZ4fD1fTBpSt59kYjhV4-ALnS_83KOO2yHA,5875
|
|
52
|
-
hanzo_mcp/tools/common/batch_tool.py,sha256=
|
|
56
|
+
hanzo_mcp/tools/common/batch_tool.py,sha256=OGqU9q-bTom13Qnstm2aTs3AIenvf24gQgRVgF5WEmM,16183
|
|
53
57
|
hanzo_mcp/tools/common/config_tool.py,sha256=zflCiXBP9OmF85KhMQpM5kN6qZj5OHnWfqU7PiJyI7o,16128
|
|
54
|
-
hanzo_mcp/tools/common/context.py,sha256=
|
|
58
|
+
hanzo_mcp/tools/common/context.py,sha256=y7Ct2g5VtXOOenvBQHiUElvTqSGnoT6UQBGT4X92KKk,5140
|
|
55
59
|
hanzo_mcp/tools/common/context_fix.py,sha256=UNRpm_83x0iCsme7Y0D8NyvtJpyoS-7pcbXHaAnvp28,763
|
|
56
60
|
hanzo_mcp/tools/common/critic_tool.py,sha256=gGeiZ8hiIP0-hfcKjUst6Tp_aE704ciOHRJDQT-RExw,6257
|
|
57
61
|
hanzo_mcp/tools/common/decorators.py,sha256=9vGa1jkBn8U-qS4dDcDIoJJ5ro7It7IVlJop59E93NQ,6573
|
|
@@ -75,7 +79,7 @@ hanzo_mcp/tools/common/tool_list.py,sha256=qmP-N-SF03teplA0IB-yoTz-AZ7TsToHy2LO-
|
|
|
75
79
|
hanzo_mcp/tools/common/truncate.py,sha256=D_RSTh0ZaEuuY-mwvgv46OEA9FtQRbJYcIOk_eVG4HM,3110
|
|
76
80
|
hanzo_mcp/tools/common/validation.py,sha256=cBA4sqDapIAXUj9mVQVzM3lS_KovDrI5Ct66muxy538,1693
|
|
77
81
|
hanzo_mcp/tools/config/__init__.py,sha256=Elxh2EV-SZ43XJGFBkMmE1Kb-ANZWTDnBTQyNOq8baA,313
|
|
78
|
-
hanzo_mcp/tools/config/config_tool.py,sha256=
|
|
82
|
+
hanzo_mcp/tools/config/config_tool.py,sha256=f32DunOPJ3wQ-8xD5u2vwmLkSDwO6fBpx7wvy3_Wy0E,12341
|
|
79
83
|
hanzo_mcp/tools/config/index_config.py,sha256=DXCFyxA2JxogA36FBqXwfHmjHk_uE1kdtxB5cNh0GBM,6205
|
|
80
84
|
hanzo_mcp/tools/config/mode_tool.py,sha256=yKNNvQTgLtyA5OCcxkB5zwkqkbkjl5phZdl0wlEI0k8,10969
|
|
81
85
|
hanzo_mcp/tools/database/__init__.py,sha256=UJEQWCeqUmyWu1npfy2T2dYT1rI7RawXqHwVhrmVhE8,2145
|
|
@@ -94,7 +98,7 @@ hanzo_mcp/tools/editor/__init__.py,sha256=UfwWP23OUFmd6dYRwm2fKfaYDlignQ2gfi32yR
|
|
|
94
98
|
hanzo_mcp/tools/editor/neovim_command.py,sha256=or_Fi84ETsiIRkFHTCKYq9eX30mlrtwBKpiKvBcQ3D0,8056
|
|
95
99
|
hanzo_mcp/tools/editor/neovim_edit.py,sha256=AQjdxmAAAdZ4vA6C5FuMgLAqE-R29F8o3K0o1N5DTRI,8590
|
|
96
100
|
hanzo_mcp/tools/editor/neovim_session.py,sha256=wdQBLf9hctaaN6qybdQo7vQ7jlYBP9wFJEVDa46Rbfc,11715
|
|
97
|
-
hanzo_mcp/tools/filesystem/__init__.py,sha256=
|
|
101
|
+
hanzo_mcp/tools/filesystem/__init__.py,sha256=8Uy8mCW9EXEtRLa0Tr0j9eA87diV0FNldKLJxPuPs1Q,8537
|
|
98
102
|
hanzo_mcp/tools/filesystem/ast_multi_edit.py,sha256=2a3WQj8mwyqoE5GhkDTfTCUaRlFcovZNNtosQzvTzkA,22574
|
|
99
103
|
hanzo_mcp/tools/filesystem/ast_tool.py,sha256=w_jk1K4TilYsm8tM5M0EQN7KBP_myd5B5NmZjdlEtjM,7286
|
|
100
104
|
hanzo_mcp/tools/filesystem/base.py,sha256=BZ7Puzg2xFiypjUtgRXzEeFvM1mma1X6K7troCgGOZ4,3818
|
|
@@ -122,10 +126,11 @@ hanzo_mcp/tools/jupyter/base.py,sha256=IKJh4k1ywoZvVpEBELfVPHi5A0TQHGak59SeHZmrp
|
|
|
122
126
|
hanzo_mcp/tools/jupyter/jupyter.py,sha256=O8-ctsmC8MfhWJ5YJ_-tBBhOWm1Bri3Kzd7gCdyyayU,14187
|
|
123
127
|
hanzo_mcp/tools/jupyter/notebook_edit.py,sha256=p2tKYCwWQzBSIBQStJ-hrbNaL1s2TqY_gVaUkn2RDAU,11807
|
|
124
128
|
hanzo_mcp/tools/jupyter/notebook_read.py,sha256=4cTiianHyW2upWnZhnvf643XIkrlIF0baZFsUo36e6A,5188
|
|
125
|
-
hanzo_mcp/tools/llm/__init__.py,sha256=
|
|
129
|
+
hanzo_mcp/tools/llm/__init__.py,sha256=4j8X6wqwchBEur0KYqsmPebRw8ZthDj9StpC41csk0M,1524
|
|
126
130
|
hanzo_mcp/tools/llm/consensus_tool.py,sha256=7BAdTp8sVASF71CYpdgpg_Bt3EFwGBfZomrCo4BMJwM,11537
|
|
127
131
|
hanzo_mcp/tools/llm/llm_manage.py,sha256=XEVPevHDcI5k7IgaFkmhaEHlDS8qEZKizVXKpJFs-9w,16006
|
|
128
|
-
hanzo_mcp/tools/llm/llm_tool.py,sha256=
|
|
132
|
+
hanzo_mcp/tools/llm/llm_tool.py,sha256=wmbs3fvoS8NY2ux63ZjwBVJzsx0EkvnItTGeUXQPH0Y,30223
|
|
133
|
+
hanzo_mcp/tools/llm/llm_unified.py,sha256=HxVnD4X5ZtZCeFnqGsvXaxsLcqvOMtSq-LP8VLLsLvs,29481
|
|
129
134
|
hanzo_mcp/tools/llm/provider_tools.py,sha256=wAQvkWZ8-HlUVwRYhy9RhbhR-JGDKi0bUZjhE8x3JLA,11403
|
|
130
135
|
hanzo_mcp/tools/lsp/__init__.py,sha256=2Z1edOMrLV6gi1dyGgUyN3lN4HOWynf73Eye_eBk2Xo,150
|
|
131
136
|
hanzo_mcp/tools/lsp/lsp_tool.py,sha256=kSfXe0G9vHLmfFEgPA99p9JPSAAM0SUrIriNwuh8NeY,19409
|
|
@@ -140,13 +145,13 @@ hanzo_mcp/tools/memory/memory_tools.py,sha256=5LtzxgRww_BXmXY0YxZZ_UQ9AXffWiFmx8
|
|
|
140
145
|
hanzo_mcp/tools/search/__init__.py,sha256=7z0GUOmKrJyI7MCbLIvO5zbWHknaNf6kCowi2CtoNNw,292
|
|
141
146
|
hanzo_mcp/tools/search/find_tool.py,sha256=Kv4rFyZetNjf9yutsy34jC7UTHWV8Z4BAdge7p3a3sA,23607
|
|
142
147
|
hanzo_mcp/tools/search/unified_search.py,sha256=ki5KN5jxBo7wC6JbM1j8rShRsYoAGp4v9DY6TX0IS_U,35958
|
|
143
|
-
hanzo_mcp/tools/shell/__init__.py,sha256=
|
|
144
|
-
hanzo_mcp/tools/shell/auto_background.py,sha256=
|
|
148
|
+
hanzo_mcp/tools/shell/__init__.py,sha256=l1gdigiyhwB5AzUSVcejObwtaS3cPY65KeBuHMoVIVA,2346
|
|
149
|
+
hanzo_mcp/tools/shell/auto_background.py,sha256=6-ggSvZlTwG_IedSipI-vE3tFyLPqD5wcgx88qz0IqY,8263
|
|
145
150
|
hanzo_mcp/tools/shell/base.py,sha256=g6xPSoOsGfdDJeJtclbgkwbP3bwumlqXKxJT0s-QSi0,5826
|
|
146
151
|
hanzo_mcp/tools/shell/base_process.py,sha256=SE12tv53zDFl-53YE-oeDVZuLiJSUDNDaYXb5VJgLYs,10457
|
|
147
152
|
hanzo_mcp/tools/shell/bash_session.py,sha256=1BAsZepgqCUxpAsOQ5R4yE-LvUNbLUAv6ygV5nKy5LU,27274
|
|
148
153
|
hanzo_mcp/tools/shell/bash_session_executor.py,sha256=RgcTcvO7WhSGnYqWwO7msshaZSBHQ0Kg8Mu-NvTE8OI,10874
|
|
149
|
-
hanzo_mcp/tools/shell/bash_tool.py,sha256=
|
|
154
|
+
hanzo_mcp/tools/shell/bash_tool.py,sha256=Ivkt388VD_y-sR4YBJIbArDz91Et3gvYCD93jmZBGCY,3745
|
|
150
155
|
hanzo_mcp/tools/shell/command_executor.py,sha256=hNkoB-ryZrguA095RLcfmc23gC1W_hwmaJ7LBGAGXog,36404
|
|
151
156
|
hanzo_mcp/tools/shell/logs.py,sha256=8ZRf6O_s9SPPaOfbY5SCrtLaP8JTC0T7sneU1VXtMD0,8452
|
|
152
157
|
hanzo_mcp/tools/shell/npx.py,sha256=7kqj4kdSu5yHHHSts4Wx_bT7lh7SiKR6VF-sHUuXYBI,5059
|
|
@@ -165,6 +170,7 @@ hanzo_mcp/tools/shell/streaming_command.py,sha256=hIG0vo8YRY_a37Shw3_Hv7vQ5O732a
|
|
|
165
170
|
hanzo_mcp/tools/shell/uvx.py,sha256=0xlLFc-HyxyxIfDEmEbpzZ7TpaygJUKEAS2aGgmjZv0,6594
|
|
166
171
|
hanzo_mcp/tools/shell/uvx_background.py,sha256=2Oppj8RObj-X1QYSDA4piFl6JWnqW_qHyvmc5x-kyO8,8676
|
|
167
172
|
hanzo_mcp/tools/shell/uvx_tool.py,sha256=vD3yN1kEenLnj0V2kBoW10JR3IF957XFiM9L-bg7-xk,2936
|
|
173
|
+
hanzo_mcp/tools/shell/zsh_tool.py,sha256=lXV8-MnKczRG4Xv3qUgNQX5kHb9x2CZo8PzZcZcVjkw,8234
|
|
168
174
|
hanzo_mcp/tools/todo/__init__.py,sha256=4rXjfj95vB7KJFTdt3g2WOffiyzgixUnf1UckyTizGY,1579
|
|
169
175
|
hanzo_mcp/tools/todo/base.py,sha256=k0CFZy59YlLAJBVzVA4tr-qGkQ1l5yF04kcmziwQWec,10666
|
|
170
176
|
hanzo_mcp/tools/todo/todo.py,sha256=NCwtl_iwEsYQ3OxLTtbpBKbGJcQ40nWfkJah9jO8aUM,8794
|
|
@@ -180,8 +186,8 @@ hanzo_mcp/tools/vector/project_manager.py,sha256=b69kr84qoteFkx7feeC_XHsNteTyVEf
|
|
|
180
186
|
hanzo_mcp/tools/vector/vector.py,sha256=IzJJlWAuhXNmm41NyXEyQsknLNugoRRciDTypYfof9w,9947
|
|
181
187
|
hanzo_mcp/tools/vector/vector_index.py,sha256=EgxOveWt0R60WYcO-CLmEh8HbGXGmX4_xpqQXTtgQJQ,4188
|
|
182
188
|
hanzo_mcp/tools/vector/vector_search.py,sha256=anavkfz_pPtfgVZUW4trj5q5GT6Naxw5ItjK9hUY9wU,9677
|
|
183
|
-
hanzo_mcp-0.8.
|
|
184
|
-
hanzo_mcp-0.8.
|
|
185
|
-
hanzo_mcp-0.8.
|
|
186
|
-
hanzo_mcp-0.8.
|
|
187
|
-
hanzo_mcp-0.8.
|
|
189
|
+
hanzo_mcp-0.8.4.dist-info/METADATA,sha256=W0DS7Dp4ZvrJW2n_FBhVhRwwMU2j_CvkS0IzFxRG9wY,8973
|
|
190
|
+
hanzo_mcp-0.8.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
191
|
+
hanzo_mcp-0.8.4.dist-info/entry_points.txt,sha256=ML30pedHV5wjthfztzMMz3uYhNdR_6inzYY5pSqNME4,142
|
|
192
|
+
hanzo_mcp-0.8.4.dist-info/top_level.txt,sha256=eGFANatA0MHWiVlpS56fTYRIShtibrSom1uXI6XU0GU,10
|
|
193
|
+
hanzo_mcp-0.8.4.dist-info/RECORD,,
|