{"repo":"NousResearch/hermes-agent","public_id":"6901","display_label":"MCP server name normalization and platform toolset fixes","summary":"Multiple bugs and fixes related to numeric MCP server names causing TypeErrors and stale `no_mcp` entries persisting incorrectly in `_save_platform_tools`. One unrelated Discord toolset member is also present.","subsystem":"gateway","counts":{"members":8,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":2,"merged_prs":1,"attempt_prs":5},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":7654},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"stale","last_verified_at":"2026-04-11T09:03:21+00:00","is_stale":true},"grouping":{"backbone":"STRUCTURAL_PARTIAL","link_density":0.22714285714285712},"fix_edges":[{"issue_number":6677,"pr_number":7654,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":6901,"pr_number":7654,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false}],"members":[{"kind":"issue","number":6901,"title":"[Bug]:  TypeError: '<' not supported between instances of 'int' and 'str' when using numeric MCP server names (e.g., \"12306\")","url":null,"state":"closed"},{"kind":"issue","number":13028,"title":"[Bug]: _save_platform_tools preserves stale `no_mcp` and still crashes on numeric entries","url":null,"state":"closed"},{"kind":"pr","number":6962,"title":"fix: normalize numeric MCP server names to str (fixes #6901)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#7654","number":7654}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":7654,"title":"fix: final batch — MCP names, zombies, vision hardening, test isolation (Buckets S+T)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/skill_commands.py","cron/scheduler.py","environments/tool_call_parsers/hermes_parser.py","environments/tool_call_parsers/mistral_parser.py","hermes_cli/tools_config.py","tests/gateway/test_approve_deny_commands.py","tests/hermes_cli/test_tools_config.py","tests/tools/test_approval.py","tests/tools/test_managed_media_gateways.py","tests/tools/test_vision_tools.py","tools/process_registry.py","tools/vision_tools.py"]},{"kind":"pr","number":13086,"title":"fix(cli): clear stale no_mcp and normalize numeric toolset names on save (#13028)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"9d7b64b5dd394a60df7d38824256e2f213eac5c6","number":0},{"kind":"pr","value":"#13028","number":13028}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":14101,"title":"fix(cli): normalize saved platform tool entries","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"9d7b64b5d","number":0},{"kind":"commit","value":"9d7b64b5dd394a60df7d38824256e2f213eac5c6","number":0},{"kind":"pr","value":"#13086","number":13086},{"kind":"pr","value":"#13028","number":13028}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":14149,"title":"fix(cli): clear stale no_mcp when saving platform toolsets","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"9d7b64b5d","number":0},{"kind":"pr","value":"#13086","number":13086},{"kind":"pr","value":"#13086","number":13086}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":15091,"title":"fix(discord): end-to-end Discord support — toolset loading, tool split, and context injection","url":null,"state":"closed","close_reason":{"category":"implemented_elsewhere","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true}],"trust":{"default_tier":"verified","includes_suggested":false}}