hermes-agent/tests/hermes_cli
Jonathan Barket 7fe6782a25 feat(tools): add "no_mcp" sentinel to exclude MCP servers per platform
Currently, MCP servers are included on all platforms by default. If a
platform's toolset list does not explicitly name any MCP servers, every
globally enabled MCP server is injected. There is no way to opt a
platform out of MCP servers entirely.

This matters for the API server platform when used as an execution
backend — each spawned agent session gets the full MCP tool schema
injected into its system prompt, dramatically inflating token usage
(e.g. 57K tokens vs 9K without MCP tools) and slowing response times.

Add a "no_mcp" sentinel value for platform_toolsets. When present in a
platform's toolset list, all MCP servers are excluded for that platform.
Other platforms are unaffected.

Usage in config.yaml:

    platform_toolsets:
      api_server:
        - terminal
        - file
        - web
        - no_mcp    # exclude all MCP servers

The sentinel is filtered out of the final toolset — it does not appear
as an actual toolset name.
2026-04-07 18:00:01 -07:00
..
__init__.py test: reorganize test structure and add missing unit tests 2026-02-26 03:20:08 +03:00
test_anthropic_oauth_flow.py refactor(tests): re-architect tests + fix CI failures (#5946) 2026-04-07 17:19:07 -07:00
test_anthropic_provider_persistence.py refactor(tests): re-architect tests + fix CI failures (#5946) 2026-04-07 17:19:07 -07:00
test_api_key_providers.py refactor(tests): re-architect tests + fix CI failures (#5946) 2026-04-07 17:19:07 -07:00
test_argparse_flag_propagation.py fix: --yolo and other flags silently dropped when placed before 'chat' subcommand (#5145) 2026-04-04 16:55:13 -07:00
test_atomic_json_write.py refactor(tests): re-architect tests + fix CI failures (#5946) 2026-04-07 17:19:07 -07:00
test_atomic_yaml_write.py refactor(tests): re-architect tests + fix CI failures (#5946) 2026-04-07 17:19:07 -07:00
test_auth_codex_provider.py refactor(tests): re-architect tests + fix CI failures (#5946) 2026-04-07 17:19:07 -07:00
test_auth_commands.py refactor(tests): re-architect tests + fix CI failures (#5946) 2026-04-07 17:19:07 -07:00
test_auth_nous_provider.py refactor(tests): re-architect tests + fix CI failures (#5946) 2026-04-07 17:19:07 -07:00
test_banner.py fix(banner): normalize toolset labels and use skin colors 2026-03-18 03:22:58 -07:00
test_banner_git_state.py fix: CLI/UX batch — ChatConsole errors, curses scroll, skin-aware banner, git state banner (#5974) 2026-04-07 17:59:42 -07:00
test_banner_skills.py fix: disabled skills respected across banner, system prompt, slash commands, and skill_view (#1897) 2026-03-18 03:17:37 -07:00
test_chat_skills_flag.py feat: preload CLI skills on launch (#1359) 2026-03-14 19:33:59 -07:00
test_claw.py feat: add post-migration cleanup for OpenClaw directories (#4100) 2026-03-30 17:39:08 -07:00
test_cmd_update.py fix(update): skip config migration prompts in non-interactive sessions (#3584) 2026-03-28 14:26:32 -07:00
test_coalesce_session_args.py fix(cli): handle unquoted multi-word session names in -c/--continue and -r/--resume 2026-03-09 21:36:29 -07:00
test_codex_models.py refactor(tests): re-architect tests + fix CI failures (#5946) 2026-04-07 17:19:07 -07:00
test_commands.py feat(discord): register skills as native slash commands via shared gateway logic (#5603) 2026-04-06 12:09:36 -07:00
test_config.py fix: hermes auth remove now clears env-seeded credentials permanently (#5285) 2026-04-05 12:00:53 -07:00
test_config_env_expansion.py refactor(tests): re-architect tests + fix CI failures (#5946) 2026-04-07 17:19:07 -07:00
test_config_validation.py feat: config structure validation — detect malformed YAML at startup (#5426) 2026-04-05 23:31:20 -07:00
test_copilot_auth.py fix: correct Copilot API mode selection to match opencode 2026-03-18 03:54:50 -07:00
test_cron.py feat: add multi-skill cron editing and docs 2026-03-14 19:18:10 -07:00
test_doctor.py feat(memory): pluggable memory provider interface with profile isolation, review fixes, and honcho CLI restoration (#4623) 2026-04-02 15:33:51 -07:00
test_env_loader.py fix(config): reload .env over stale shell overrides 2026-03-15 06:46:28 -07:00
test_external_credential_detection.py refactor(tests): re-architect tests + fix CI failures (#5946) 2026-04-07 17:19:07 -07:00
test_gateway.py fix(cli): add missing subprocess.run() timeouts in gateway CLI (#5424) 2026-04-05 22:41:42 -07:00
test_gateway_linger.py fix(cli): add missing subprocess.run() timeouts in gateway CLI (#5424) 2026-04-05 22:41:42 -07:00
test_gateway_runtime_health.py fix(gateway): harden Telegram polling conflict handling 2026-03-14 12:11:23 -07:00
test_gateway_service.py fix: add _profile_arg tests + move STT language to config.yaml 2026-04-07 17:59:16 -07:00
test_gemini_provider.py refactor(tests): re-architect tests + fix CI failures (#5946) 2026-04-07 17:19:07 -07:00
test_launcher.py fix: use argparse entrypoint in top-level launcher (#3874) 2026-03-29 21:54:36 -07:00
test_logs.py feat: centralized logging, instrumentation, hermes logs CLI, gateway noise fix (#5430) 2026-04-06 00:08:20 -07:00
test_managed_installs.py chore: prepare Hermes for Homebrew packaging (#4099) 2026-03-30 17:34:43 -07:00
test_mcp_config.py feat(cli): MCP server management CLI + OAuth 2.1 PKCE auth 2026-03-22 04:52:52 -07:00
test_mcp_tools_config.py feat: interactive MCP tool configuration in hermes tools (#1694) 2026-03-17 03:48:44 -07:00
test_model_normalize.py refactor(tests): re-architect tests + fix CI failures (#5946) 2026-04-07 17:19:07 -07:00
test_model_provider_persistence.py refactor(tests): re-architect tests + fix CI failures (#5946) 2026-04-07 17:19:07 -07:00
test_model_validation.py fix: repair OpenCode model routing and selection (#4508) 2026-04-02 09:36:24 -07:00
test_models.py fix(nous): add 3-minute TTL cache to free-tier detection 2026-04-07 09:30:26 -07:00
test_nous_subscription.py feat: switch managed browser provider from Browserbase to Browser Use (#5750) 2026-04-07 08:40:22 -04:00
test_ollama_cloud_auth.py refactor(tests): re-architect tests + fix CI failures (#5946) 2026-04-07 17:19:07 -07:00
test_path_completion.py feat(cli): add file path autocomplete in the input prompt (#1545) 2026-03-16 06:07:45 -07:00
test_placeholder_usage.py fix: cover remaining config placeholder help text 2026-03-14 10:35:14 -07:00
test_plugin_cli_registration.py refactor(tests): re-architect tests + fix CI failures (#5946) 2026-04-07 17:19:07 -07:00
test_plugins.py refactor(tests): re-architect tests + fix CI failures (#5946) 2026-04-07 17:19:07 -07:00
test_plugins_cmd.py refactor(tests): re-architect tests + fix CI failures (#5946) 2026-04-07 17:19:07 -07:00
test_profile_export_credentials.py fix: also exclude .env from default profile exports 2026-04-01 11:20:33 -07:00
test_profiles.py fix: also exclude .env from default profile exports 2026-04-01 11:20:33 -07:00
test_runtime_provider_resolution.py refactor(tests): re-architect tests + fix CI failures (#5946) 2026-04-07 17:19:07 -07:00
test_session_browse.py feat: interactive session browser with search filtering (#718) 2026-03-08 17:42:50 -07:00
test_sessions_delete.py fix(cli): handle EOFError in sessions delete/prune confirmation prompts (#3101) 2026-03-25 18:06:04 -07:00
test_set_config_value.py fix(cli): allow empty strings and falsy values in config set 2026-03-31 11:41:12 -07:00
test_setup.py Merge branch 'main' into rewbs/tool-use-charge-to-subscription 2026-04-02 11:00:35 +11:00
test_setup_matrix_e2ee.py fix: add missing shutil import for Matrix E2EE setup 2026-04-05 11:07:47 -07:00
test_setup_model_provider.py Merge branch 'main' into rewbs/tool-use-charge-to-subscription 2026-04-02 11:00:35 +11:00
test_setup_model_selection.py refactor(tests): re-architect tests + fix CI failures (#5946) 2026-04-07 17:19:07 -07:00
test_setup_noninteractive.py feat: add managed tool gateway and Nous subscription support 2026-03-26 16:17:58 -07:00
test_setup_openclaw_migration.py fix: repair 57 failing CI tests across 14 files (#5823) 2026-04-07 09:58:45 -07:00
test_setup_prompt_menus.py fix(cli): prefer curses over simple_term_menu in setup.py (#1487) 2026-03-15 21:16:21 -07:00
test_skills_config.py fix: respect per-platform disabled skills in Telegram menu and gateway dispatch (#4799) 2026-04-03 10:10:53 -07:00
test_skills_hub.py fix(skills): preserve trust for skills-sh identifiers + reduce resolution churn (#3251) 2026-03-26 13:40:21 -07:00
test_skills_install_flags.py fix: add --yes flag to bypass confirmation in /skills install and uninstall (#1647) 2026-03-17 01:59:07 -07:00
test_skills_skip_confirm.py fix(skills): cache-aware /skills install and uninstall in TUI (#3586) 2026-03-28 14:32:23 -07:00
test_skills_subparser.py fix(cli): resolve duplicate 'skills' subparser crash on Python 3.11+ 2026-03-11 00:50:39 -07:00
test_skin_engine.py Revert "feat(cli): skin-aware light/dark theme mode with terminal auto-detection" 2026-03-17 10:04:53 -07:00
test_status.py feat(web): add Tavily as web search/extract/crawl backend (#1731) 2026-03-17 04:28:03 -07:00
test_status_model_provider.py feat: switch managed browser provider from Browserbase to Browser Use (#5750) 2026-04-07 08:40:22 -04:00
test_subprocess_timeouts.py fix(cli): add missing subprocess.run() timeouts in doctor and status (#4009) 2026-03-30 11:17:15 -07:00
test_tool_token_estimation.py fix(tests): resolve 10 CI failures across hooks, tiktoken, plugins (#3848) 2026-03-29 20:05:59 -07:00
test_tools_config.py feat(tools): add "no_mcp" sentinel to exclude MCP servers per platform 2026-04-07 18:00:01 -07:00
test_tools_disable_enable.py fix: MCP toolset resolution for runtime and config (#3252) 2026-03-26 13:39:41 -07:00
test_update_autostash.py fix: use get_hermes_home(), consolidate git_cmd, update tests 2026-04-03 01:46:42 -07:00
test_update_check.py refactor(tests): re-architect tests + fix CI failures (#5946) 2026-04-07 17:19:07 -07:00
test_update_gateway_restart.py refactor: simplify _get_service_pids — dedupe systemd scopes, fix self-import, harden launchd parsing 2026-04-06 00:09:06 -07:00
test_webhook_cli.py feat(webhook): hermes webhook CLI + skill for event-driven subscriptions (#3578) 2026-03-28 14:33:35 -07:00