hanzo-mcp 0.7.2__tar.gz → 0.7.6__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.
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/PKG-INFO +8 -1
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/cli.py +10 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/prompts/__init__.py +43 -0
- hanzo_mcp-0.7.6/hanzo_mcp/prompts/example_custom_prompt.py +40 -0
- hanzo_mcp-0.7.6/hanzo_mcp/prompts/tool_explorer.py +603 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/__init__.py +52 -51
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/agent/__init__.py +3 -16
- hanzo_mcp-0.7.2/hanzo_mcp/tools/agent/agent_tool_v2.py → hanzo_mcp-0.7.6/hanzo_mcp/tools/agent/agent_tool.py +3 -14
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/agent/network_tool.py +3 -5
- hanzo_mcp-0.7.2/hanzo_mcp/tools/agent/swarm_tool_v2.py → hanzo_mcp-0.7.6/hanzo_mcp/tools/agent/swarm_tool.py +61 -82
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/agent/tool_adapter.py +21 -2
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/forgiving_edit.py +24 -14
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/permissions.py +8 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/__init__.py +5 -5
- hanzo_mcp-0.7.2/hanzo_mcp/tools/filesystem/symbols.py → hanzo_mcp-0.7.6/hanzo_mcp/tools/filesystem/ast_tool.py +8 -8
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/batch_search.py +2 -2
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/directory_tree.py +8 -1
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/find.py +1 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/grep.py +11 -2
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/read.py +8 -1
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/search_tool.py +1 -1
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/jupyter/__init__.py +5 -1
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/jupyter/base.py +2 -2
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/jupyter/jupyter.py +89 -18
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/search/find_tool.py +49 -8
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/base_process.py +7 -1
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/streaming_command.py +34 -1
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp.egg-info/PKG-INFO +8 -1
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp.egg-info/SOURCES.txt +13 -4
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp.egg-info/requires.txt +8 -0
- hanzo_mcp-0.7.6/pyproject.toml +170 -0
- hanzo_mcp-0.7.6/tests/test_batch_tool_edge_cases.py +258 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_cli.py +14 -1
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_cli_agents.py +22 -17
- hanzo_mcp-0.7.6/tests/test_find_tool_ffind.py +349 -0
- hanzo_mcp-0.7.6/tests/test_find_tool_integration.py +374 -0
- hanzo_mcp-0.7.6/tests/test_find_tool_registration.py +121 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_git_ingestion.py +6 -6
- hanzo_mcp-0.7.6/tests/test_hanzo_agents_integration.py +98 -0
- hanzo_mcp-0.7.6/tests/test_hanzo_mcp_integration.py +433 -0
- hanzo_mcp-0.7.6/tests/test_hanzo_mcp_local.py +334 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_hanzo_mcp_simple.py +1 -1
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_hanzo_network_integration.py +12 -12
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_manual.py +3 -9
- hanzo_mcp-0.7.6/tests/test_memory_basic.py +61 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_memory_edge_cases.py +52 -34
- hanzo_mcp-0.7.6/tests/test_memory_simple.py +49 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_memory_tools.py +47 -23
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_memory_tools_comprehensive.py +48 -47
- hanzo_mcp-0.7.6/tests/test_memory_utils.py +24 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_new_tools.py +75 -57
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_performance.py +24 -14
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_search.py +14 -14
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_search_quality.py +5 -6
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_shell_features.py +26 -25
- hanzo_mcp-0.7.6/tests/test_stdio_simple.py +100 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_streaming_command.py +24 -23
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_tools_suite.py +47 -41
- hanzo_mcp-0.7.6/tests/test_utils.py +325 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_vector_store.py +13 -13
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_web3_integration.py +5 -8
- hanzo_mcp-0.7.2/pyproject.toml +0 -82
- hanzo_mcp-0.7.2/tests/test_batch_tool_edge_cases.py +0 -259
- hanzo_mcp-0.7.2/tests/test_hanzo_mcp_integration.py +0 -371
- hanzo_mcp-0.7.2/tests/test_hanzo_mcp_local.py +0 -288
- hanzo_mcp-0.7.2/tests/test_integration.py +0 -514
- hanzo_mcp-0.7.2/tests/test_stdio_simple.py +0 -92
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/README.md +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/__init__.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/__main__.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/analytics/__init__.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/analytics/posthog_analytics.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/cli_enhanced.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/cli_plugin.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/config/__init__.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/config/settings.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/config/tool_config.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/dev_server.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/prompts/compact_conversation.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/prompts/create_release.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/prompts/project_system.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/prompts/project_todo_reminder.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/prompts/utils.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/server.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/server_enhanced.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/agent/agent.py +0 -0
- /hanzo_mcp-0.7.2/hanzo_mcp/tools/agent/agent_tool.py → /hanzo_mcp-0.7.6/hanzo_mcp/tools/agent/agent_tool_v1_deprecated.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/agent/clarification_protocol.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/agent/clarification_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/agent/claude_cli_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/agent/claude_desktop_auth.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/agent/cli_agent_base.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/agent/code_auth.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/agent/code_auth_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/agent/codex_cli_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/agent/critic_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/agent/gemini_cli_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/agent/grok_cli_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/agent/iching_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/agent/prompt.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/agent/review_tool.py +0 -0
- /hanzo_mcp-0.7.2/hanzo_mcp/tools/agent/swarm_tool.py → /hanzo_mcp-0.7.6/hanzo_mcp/tools/agent/swarm_tool_v1_deprecated.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/__init__.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/base.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/batch_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/config_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/context.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/context_fix.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/critic_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/decorators.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/enhanced_base.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/fastmcp_pagination.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/mode.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/mode_loader.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/paginated_base.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/paginated_response.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/pagination.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/personality.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/plugin_loader.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/stats.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/thinking_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/tool_disable.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/tool_enable.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/tool_list.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/truncate.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/common/validation.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/config/__init__.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/config/config_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/config/index_config.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/config/mode_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/database/__init__.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/database/database_manager.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/database/graph.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/database/graph_add.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/database/graph_query.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/database/graph_remove.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/database/graph_search.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/database/graph_stats.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/database/sql.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/database/sql_query.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/database/sql_search.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/database/sql_stats.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/editor/__init__.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/editor/neovim_command.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/editor/neovim_edit.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/editor/neovim_session.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/ast_multi_edit.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/base.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/content_replace.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/diff.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/directory_tree_paginated.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/edit.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/find_files.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/git_search.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/multi_edit.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/rules_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/symbols_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/tree.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/unix_aliases.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/watch.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/filesystem/write.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/jupyter/notebook_edit.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/jupyter/notebook_read.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/llm/__init__.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/llm/consensus_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/llm/llm_manage.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/llm/llm_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/llm/provider_tools.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/lsp/__init__.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/lsp/lsp_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/mcp/__init__.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/mcp/mcp_add.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/mcp/mcp_remove.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/mcp/mcp_stats.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/mcp/mcp_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/memory/__init__.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/memory/knowledge_tools.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/memory/memory_tools.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/search/__init__.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/search/unified_search.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/__init__.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/auto_background.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/base.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/bash_session.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/bash_session_executor.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/bash_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/command_executor.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/logs.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/npx.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/npx_background.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/npx_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/open.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/pkill.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/process_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/processes.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/run_background.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/run_command.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/run_command_windows.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/session_manager.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/session_storage.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/uvx.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/uvx_background.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/shell/uvx_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/todo/__init__.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/todo/base.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/todo/todo.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/todo/todo_read.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/todo/todo_write.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/vector/__init__.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/vector/ast_analyzer.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/vector/git_ingester.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/vector/index_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/vector/infinity_store.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/vector/mock_infinity.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/vector/project_manager.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/vector/vector.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/vector/vector_index.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/tools/vector/vector_search.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp/types.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp.egg-info/dependency_links.txt +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp.egg-info/entry_points.txt +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/hanzo_mcp.egg-info/top_level.txt +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/setup.cfg +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_async_support.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_failure_cases.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_litellm_warnings.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_lsp_tool.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_simple.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_stdio_protocol.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_swarm_simple.py +0 -0
- {hanzo_mcp-0.7.2 → hanzo_mcp-0.7.6}/tests/test_unified_search.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hanzo-mcp
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.6
|
|
4
4
|
Summary: The Zen of Hanzo MCP: One server to rule them all. The ultimate MCP that orchestrates all others.
|
|
5
5
|
Author-email: Hanzo Industries Inc <dev@hanzo.ai>
|
|
6
6
|
License: MIT
|
|
@@ -30,6 +30,7 @@ Requires-Dist: pydantic-settings>=2.7.0
|
|
|
30
30
|
Requires-Dist: typing-extensions>=4.13.0
|
|
31
31
|
Requires-Dist: watchdog>=6.0.0
|
|
32
32
|
Requires-Dist: keyring>=24.0.0
|
|
33
|
+
Requires-Dist: ffind>=1.3.0
|
|
33
34
|
Provides-Extra: dev
|
|
34
35
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
35
36
|
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
|
|
@@ -39,6 +40,10 @@ Requires-Dist: sphinx>=8.0.0; extra == "dev"
|
|
|
39
40
|
Requires-Dist: sphinx-rtd-theme>=3.0.0; extra == "dev"
|
|
40
41
|
Requires-Dist: myst-parser>=4.0.0; extra == "dev"
|
|
41
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"
|
|
42
47
|
Provides-Extra: docs
|
|
43
48
|
Requires-Dist: sphinx>=8.0.0; extra == "docs"
|
|
44
49
|
Requires-Dist: sphinx-rtd-theme>=3.0.0; extra == "docs"
|
|
@@ -54,6 +59,8 @@ Requires-Dist: pytest-asyncio>=0.25.3; extra == "test"
|
|
|
54
59
|
Requires-Dist: twisted; extra == "test"
|
|
55
60
|
Provides-Extra: agents
|
|
56
61
|
Requires-Dist: hanzo-agents>=0.1.0; extra == "agents"
|
|
62
|
+
Provides-Extra: memory
|
|
63
|
+
Requires-Dist: hanzo-memory>=1.0.0; extra == "memory"
|
|
57
64
|
Provides-Extra: performance
|
|
58
65
|
Requires-Dist: ujson>=5.7.0; extra == "performance"
|
|
59
66
|
Requires-Dist: orjson>=3.9.0; extra == "performance"
|
|
@@ -42,9 +42,17 @@ def main() -> None:
|
|
|
42
42
|
import sys
|
|
43
43
|
sys.stderr = open(os.devnull, 'w')
|
|
44
44
|
|
|
45
|
+
from hanzo_mcp import __version__
|
|
46
|
+
|
|
45
47
|
parser = argparse.ArgumentParser(
|
|
46
48
|
description="MCP server implementing Hanzo AI capabilities"
|
|
47
49
|
)
|
|
50
|
+
|
|
51
|
+
parser.add_argument(
|
|
52
|
+
"--version",
|
|
53
|
+
action="version",
|
|
54
|
+
version=f"hanzo-mcp {__version__}"
|
|
55
|
+
)
|
|
48
56
|
|
|
49
57
|
_ = parser.add_argument(
|
|
50
58
|
"--transport",
|
|
@@ -292,6 +300,7 @@ def main() -> None:
|
|
|
292
300
|
server = HanzoMCPServer(
|
|
293
301
|
name=name,
|
|
294
302
|
allowed_paths=allowed_paths,
|
|
303
|
+
project_paths=project_paths,
|
|
295
304
|
project_dir=project_dir,
|
|
296
305
|
agent_model=agent_model,
|
|
297
306
|
agent_max_tokens=agent_max_tokens,
|
|
@@ -300,6 +309,7 @@ def main() -> None:
|
|
|
300
309
|
agent_max_iterations=agent_max_iterations,
|
|
301
310
|
agent_max_tool_uses=agent_max_tool_uses,
|
|
302
311
|
enable_agent_tool=enable_agent_tool,
|
|
312
|
+
command_timeout=command_timeout,
|
|
303
313
|
disable_write_tools=disable_write_tools,
|
|
304
314
|
disable_search_tools=disable_search_tools,
|
|
305
315
|
host=host,
|
|
@@ -14,6 +14,14 @@ from hanzo_mcp.prompts.utils import (
|
|
|
14
14
|
get_git_info,
|
|
15
15
|
get_os_info,
|
|
16
16
|
)
|
|
17
|
+
from hanzo_mcp.prompts.tool_explorer import (
|
|
18
|
+
TOOL_EXPLORER_PROMPT,
|
|
19
|
+
FILESYSTEM_TOOLS_HELP,
|
|
20
|
+
AGENT_TOOLS_HELP,
|
|
21
|
+
SHELL_TOOLS_HELP,
|
|
22
|
+
BATCH_TOOL_EXAMPLES,
|
|
23
|
+
create_tool_category_prompt,
|
|
24
|
+
)
|
|
17
25
|
|
|
18
26
|
CONTINUE_FROM_LAST_SESSION_PROMPT = """<system-reminder>
|
|
19
27
|
This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware. If you are working on tasks that would benefit from a todo list please use the TodoWrite tool to create one. If not, please feel free to ignore. Again do not mention this message to the user.
|
|
@@ -97,6 +105,41 @@ def register_all_prompts(
|
|
|
97
105
|
"""
|
|
98
106
|
return create_project_system_prompt(project_path)()
|
|
99
107
|
|
|
108
|
+
@mcp_server.prompt(name="Explore all tools")
|
|
109
|
+
def explore_tools() -> str:
|
|
110
|
+
"""
|
|
111
|
+
Comprehensive guide to all available Hanzo MCP tools and how to use them.
|
|
112
|
+
"""
|
|
113
|
+
return TOOL_EXPLORER_PROMPT
|
|
114
|
+
|
|
115
|
+
@mcp_server.prompt(name="Filesystem tools help")
|
|
116
|
+
def filesystem_help() -> str:
|
|
117
|
+
"""
|
|
118
|
+
Detailed guide for filesystem tools (read, write, edit, search, etc).
|
|
119
|
+
"""
|
|
120
|
+
return FILESYSTEM_TOOLS_HELP
|
|
121
|
+
|
|
122
|
+
@mcp_server.prompt(name="Agent tools help")
|
|
123
|
+
def agent_help() -> str:
|
|
124
|
+
"""
|
|
125
|
+
Guide for using agent tools to delegate complex tasks.
|
|
126
|
+
"""
|
|
127
|
+
return AGENT_TOOLS_HELP
|
|
128
|
+
|
|
129
|
+
@mcp_server.prompt(name="Shell tools help")
|
|
130
|
+
def shell_help() -> str:
|
|
131
|
+
"""
|
|
132
|
+
Guide for shell and command execution tools.
|
|
133
|
+
"""
|
|
134
|
+
return SHELL_TOOLS_HELP
|
|
135
|
+
|
|
136
|
+
@mcp_server.prompt(name="Batch tool examples")
|
|
137
|
+
def batch_examples() -> str:
|
|
138
|
+
"""
|
|
139
|
+
Advanced examples of using the batch tool for parallel operations.
|
|
140
|
+
"""
|
|
141
|
+
return BATCH_TOOL_EXAMPLES
|
|
142
|
+
|
|
100
143
|
if projects is None:
|
|
101
144
|
return
|
|
102
145
|
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""Example custom prompt for demonstration."""
|
|
2
|
+
|
|
3
|
+
# This is the actual prompt text that will be sent to Claude
|
|
4
|
+
EXAMPLE_GREETING_PROMPT = """You are a friendly assistant. Please greet the user warmly and ask how you can help them today.
|
|
5
|
+
Make your greeting personalized based on the time of day if possible."""
|
|
6
|
+
|
|
7
|
+
EXAMPLE_CODE_REVIEW_PROMPT = """Please perform a thorough code review of the most recent code changes in our conversation.
|
|
8
|
+
Focus on:
|
|
9
|
+
1. Code quality and best practices
|
|
10
|
+
2. Potential bugs or edge cases
|
|
11
|
+
3. Performance considerations
|
|
12
|
+
4. Security implications
|
|
13
|
+
5. Suggestions for improvement
|
|
14
|
+
|
|
15
|
+
Be constructive and specific in your feedback."""
|
|
16
|
+
|
|
17
|
+
# You can also create dynamic prompts that take parameters
|
|
18
|
+
def create_custom_analysis_prompt(file_path: str, analysis_type: str = "general"):
|
|
19
|
+
"""Create a dynamic analysis prompt for a specific file."""
|
|
20
|
+
|
|
21
|
+
analysis_types = {
|
|
22
|
+
"general": "Provide a general analysis including structure, purpose, and quality",
|
|
23
|
+
"security": "Focus on security vulnerabilities and best practices",
|
|
24
|
+
"performance": "Analyze performance bottlenecks and optimization opportunities",
|
|
25
|
+
"refactor": "Suggest refactoring opportunities to improve code maintainability"
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
analysis_instruction = analysis_types.get(analysis_type, analysis_types["general"])
|
|
29
|
+
|
|
30
|
+
return f"""Please analyze the file at {file_path}.
|
|
31
|
+
|
|
32
|
+
{analysis_instruction}
|
|
33
|
+
|
|
34
|
+
Your analysis should include:
|
|
35
|
+
1. Overview of the file's purpose and structure
|
|
36
|
+
2. Key findings based on the analysis type
|
|
37
|
+
3. Specific recommendations with code examples where applicable
|
|
38
|
+
4. Priority ranking of any issues found
|
|
39
|
+
|
|
40
|
+
Be thorough but concise in your analysis."""
|