乐于分享
好东西不私藏

零代码基础跑通一个MCP工具,让AI在你手机上调闹钟!(附完整命令行)

零代码基础跑通一个MCP工具,让AI在你手机上调闹钟!(附完整命令行)

控制端:能接入MCP工具的API平台(支持 MCP SSE 协议),推荐Kelivo,RikkaHub成功率比较低。

服务端:安卓手机里的 Termux。

功能: 在 AI 对话里直接说“帮我定个下午 3 点的闹钟”,手机自动设定(备忘录,文件管理,天气等自带软件的使用同理)

二、实操步骤(可以把以下代码复制粘贴给AI让它进行一步步指导和优化)

1. 环境准备(在 Termux 中执行)

更新源并安装 Python,以及 MCP 所需的依赖库。注:网速慢可能需要等一会。

pkg update -y && pkg install python -y

pip install "mcp[cli]" uvicorn

2. 创建服务脚本(核心代码)

把下面的代码完整复制,粘贴到 Termux 里按回车。(这一步屏幕不会输出任何东西,正常现象)。

cat > ~/alarm_server.py << 'EOF'

import subprocess

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("闹钟助手", host="127.0.0.1", port=8765)

@mcp.tool()

def set_alarm(hour: int, minute: int, message: str = "起床") -> str:

    """设置闹钟。hour是小时0-23,minute是分钟0-59,message是闹钟标签。"""

    cmd = [

        "am", "start", "-a", "android.intent.action.SET_ALARM",

        "--ei", "android.intent.extra.alarm.HOUR", str(hour),

        "--ei", "android.intent.extra.alarm.MINUTES", str(minute),

        "--es", "android.intent.extra.alarm.MESSAGE", message,

        "--ez", "android.intent.extra.alarm.SKIP_UI", "true"

    ]

    result = subprocess.run(cmd, capture_output=True, text=True)

    if result.returncode == 0:

        return f"闹钟已设置:{hour:02d}:{minute:02d} - {message}"

    else:

        return f"设置失败:{result.stderr}"

@mcp.tool()

def cancel_alarm(message: str = "") -> str:

    """取消闹钟。message是要取消的闹钟标签,留空则取消全部。"""

    cmd = ["am", "start", "-a", "android.intent.action.DISMISS_ALARM",

           "--ez", "android.intent.extra.alarm.SKIP_UI", "true"]

    if message:

        cmd += ["--es", "android.intent.extra.alarm.MESSAGE", message]

    result = subprocess.run(cmd, capture_output=True, text=True)

    if result.returncode == 0:

        return "闹钟已取消"

    else:

        return f"取消失败:{result.stderr}"

if __name__ == "__main__":

    mcp.run(transport="sse")

EOF

3. 在后台跑起来(关掉 Termux 窗口也能用)

nohup python ~/alarm_server.py > /dev/null 2>&1 &

三、前端连接配置(关键的避坑指南)

非常重要: 不是所有 AI App 都能连得上(kelivo能连接,RikkaHub不行)

配置地址:

在 AI 客户端的 MCP 设置中,选择 SSE 连接,填入以下地址:

http://127.0.0.1:8765/sse

 四、排雷:为什么连上了但调用失败?(权限问题)

如果你在 AI 界面提示“设置失败:

Permission denied”

“SecurityException”,不是代码问题,是安卓底层拦截了。

必须手动在手机设置里做一次授权(只需做一次):

1. 打开手机 设置 -> 应用管理。

2. 找到并点击 Termux。

3. 点击 权限。

4. 关键:找到 “修改系统设置”,改为 “允许”。

5. 如果列表里还有 “闹钟和提醒”,也改为 “允许”。(如果不给这个权限,系统会认为是恶意程序悄悄设闹钟,强制拦截。)

五、进阶扩展(如何做到手机“关机”也能用?)

目前的架构是跑在当前手机的 127.0.0.1 上的。一旦关机,这个服务会停掉。

如果想做成 24 小时在线的智能闹钟服务器:

1. 找一台废旧的安卓手机或电视盒子,插着电源,连上 WiFi。

2. 同样安装 Termux,并重复上面的步骤。

3. 关键操作: 给这台旧手机的 WiFi 设置 “静态 IP”(例如固定为 192.168.1.200)。

4. 把这台旧手机的电池优化设为 “无限制”,确保它永不休眠。

5.修改AI前端配置的地址,换成:

http://192.168.1.200:8765/sse

6.其他用Termux在手机上跑的MCP工具也同理。

这样,只要你用 DeepSeek 或者 Claude,一句口令就能远程控制这台 24 小时开机的旧手机设定闹钟,彻底摆脱联网和关机的限制。

用同样的思路还能够让AI打开其他手机自带应用,有问题可以在评论区留言~