仿生人MCP服务

This commit is contained in:
BBIT-Kai
2025-11-05 18:04:36 +08:00
parent 5f5eefd37b
commit 179604931d
11 changed files with 661 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
import logging
import os
import psutil
from mcp.server.fastmcp import FastMCP
logger = logging.getLogger("system_tools")
DINGTALK_WEBHOOK = os.environ.get("DINGTALK_WEBHOOK")
def register_system_tools(mcp: FastMCP):
@mcp.tool()
def get_server_status() -> dict:
"""
获取服务器状态监控信息。
返回:
- 包含CPU、内存、磁盘等使用情况的字典
"""
try:
# CPU信息
cpu_percent = psutil.cpu_percent(interval=1)
cpu_count = psutil.cpu_count()
# 内存信息
memory = psutil.virtual_memory()
memory_total = memory.total / (1024 * 1024 * 1024) # GB
memory_used = memory.used / (1024 * 1024 * 1024) # GB
memory_percent = memory.percent
# 磁盘信息
disk = psutil.disk_usage("/")
disk_total = disk.total / (1024 * 1024 * 1024) # GB
disk_used = disk.used / (1024 * 1024 * 1024) # GB
disk_percent = disk.percent
# 系统启动时间
boot_time = psutil.boot_time()
return {
"success": True,
"result": {
"cpu": {"usage_percent": cpu_percent, "core_count": cpu_count},
"memory": {
"total_gb": round(memory_total, 2),
"used_gb": round(memory_used, 2),
"usage_percent": memory_percent,
},
"disk": {
"total_gb": round(disk_total, 2),
"used_gb": round(disk_used, 2),
"usage_percent": disk_percent,
},
"system": {"boot_time": boot_time},
},
}
except Exception as e:
logger.error(f"获取服务器状态失败: {str(e)}")
return {"success": False, "error": str(e)}