generated from coulomb/repo-seed
Rename MCP server identifier from state-hub to dev-hub
Introduce canonical MCP_SERVER_NAME constants, shared registration helpers, and a migrate_mcp_config.py script for ~/.claude.json upgrades. Registration, patch, and custodian CLI checks accept both dev-hub and legacy state-hub during transition. API root metadata and session-protocol template reflect the new name.
This commit is contained in:
51
scripts/migrate_mcp_config.py
Normal file
51
scripts/migrate_mcp_config.py
Normal file
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Rename legacy state-hub MCP registration to dev-hub in ~/.claude.json."""
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import shutil
|
||||
from datetime import datetime, timezone
|
||||
from pathlib import Path
|
||||
|
||||
from mcp_server.constants import LEGACY_MCP_SERVER_NAME, MCP_SERVER_NAME
|
||||
|
||||
CLAUDE_JSON = Path.home() / ".claude.json"
|
||||
|
||||
|
||||
def migrate_config(config: dict) -> tuple[dict, bool]:
|
||||
servers = config.setdefault("mcpServers", {})
|
||||
if MCP_SERVER_NAME in servers:
|
||||
return config, False
|
||||
if LEGACY_MCP_SERVER_NAME not in servers:
|
||||
return config, False
|
||||
servers[MCP_SERVER_NAME] = servers.pop(LEGACY_MCP_SERVER_NAME)
|
||||
return config, True
|
||||
|
||||
|
||||
def main() -> None:
|
||||
if not CLAUDE_JSON.exists():
|
||||
print(f"ERROR: {CLAUDE_JSON} not found.")
|
||||
raise SystemExit(1)
|
||||
|
||||
config = json.loads(CLAUDE_JSON.read_text())
|
||||
migrated_config, changed = migrate_config(config)
|
||||
if not changed:
|
||||
if MCP_SERVER_NAME in config.get("mcpServers", {}):
|
||||
print(f"OK: '{MCP_SERVER_NAME}' already registered.")
|
||||
else:
|
||||
print(
|
||||
f"Nothing to migrate: neither '{LEGACY_MCP_SERVER_NAME}' nor "
|
||||
f"'{MCP_SERVER_NAME}' found in mcpServers."
|
||||
)
|
||||
return
|
||||
|
||||
stamp = datetime.now(tz=timezone.utc).strftime("%Y%m%dT%H%M%SZ")
|
||||
backup = CLAUDE_JSON.with_name(f".claude.json.bak-{stamp}")
|
||||
shutil.copy2(CLAUDE_JSON, backup)
|
||||
CLAUDE_JSON.write_text(json.dumps(migrated_config, indent=2) + "\n")
|
||||
print(f"Backed up: {backup}")
|
||||
print(f"Migrated: mcpServers['{LEGACY_MCP_SERVER_NAME}'] → mcpServers['{MCP_SERVER_NAME}']")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user