restart_astrbot
Restarts the AstrBot Core service to apply changes or resolve issues. Waits for the bot to become available after restart.
Instructions
重启 AstrBot Core,对应 /api/stat/restart-core。 重启后会等待 AstrBot 重新启动并可用。
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- astrbot_mcp/tools/control_tools.py:10-62 (handler)The core implementation of the 'restart_astrbot' tool. This async function restarts the AstrBot core using the API and polls the version endpoint to confirm it's back online, with timeout handling.async def restart_astrbot() -> Dict[str, Any]: """ 重启 AstrBot Core,对应 /api/stat/restart-core。 重启后会等待 AstrBot 重新启动并可用。 """ client = AstrBotClient.from_env() try: # 先调用重启接口 restart_resp = await client.restart_core() # 如果重启接口返回错误,直接返回 if restart_resp.get("status") != "ok": return restart_resp # 等待 AstrBot 重启完成 # 通过轮询 /api/stat/version 接口来检测 AstrBot 是否已经重启完成 max_wait_time = 60 # 最大等待时间 60 秒 check_interval = 2 # 每 2 秒检查一次 elapsed_time = 0 while elapsed_time < max_wait_time: try: # 尝试获取版本信息,如果成功说明 AstrBot 已经重启完成 version_resp = await client.get_version() if version_resp.get("status") == "ok": return { "status": "ok", "message": "AstrBot 重启成功", "restart_response": restart_resp, "wait_time": elapsed_time } except Exception: # 如果请求失败,说明 AstrBot 还在重启中,继续等待 pass # 等待一段时间后再次检查 await asyncio.sleep(check_interval) elapsed_time += check_interval # 如果等待超时,返回错误 return { "status": "error", "message": f"AstrBot 重启超时(等待 {max_wait_time} 秒后仍未响应)", "restart_response": restart_resp, "wait_time": elapsed_time } except Exception as e: return { "status": "error", "message": f"AstrBot API error: {e.response.status_code if hasattr(e, 'response') else 'Unknown'}", "base_url": client.base_url, "detail": _httpx_error_detail(e), }
- astrbot_mcp/server.py:28-28 (registration)Registers the restart_astrbot tool handler with the FastMCP server under the name 'restart_astrbot'.server.tool(astrbot_tools.restart_astrbot, name="restart_astrbot")
- astrbot_mcp/tools/__init__.py:19-19 (registration)Imports and re-exports the restart_astrbot handler from control_tools.py into the tools package namespace.from .control_tools import restart_astrbot
- astrbot_mcp/server.py:53-53 (registration)Lists 'restart_astrbot' in the tool resource info for MCP host discovery."restart_astrbot",
- astrbot_mcp/tools.py:24-24 (helper)Re-exports restart_astrbot for backward compatibility in the top-level tools module.restart_astrbot,