screentime-mcp
screentime-mcp 是一个模型上下文协议(MCP)服务器,用于回答有关您的 MacOS屏幕时间。它是由AgentBank为您带来的,用于教育目的。
此MCP服务器将其加载到DuckDB数据库中,并将该数据库作为名为 screentime_sql。该端点需要 sql 允许LLM查询数据的参数。结果总是以CSV的形式返回,简化了LLM的处理。
______________________________________________________________________
屏幕时间SQLite数据
您的屏幕时间数据存储在MacOS计算机上的 SQLite数据库。以下是一些参考资料:
目前,这是敏感数据,因此您必须为此MCP服务器的主机环境启用“全磁盘权限”。它在读取本地数据库文件时在您的计算机上运行。
安装
虽然我们希望有预构建的二进制文件和Homebrew包,但我们现在遇到了一个问题。因此,首选的安装方式是使用 go install 或 从源头建造:
$ go install github.com/AgentDank/screentime-mcp@latest它将安装在您的 $GOPATH/bin 目录,通常 ~/go/bin.
与LLM一起使用
要使用此 screentime-mcp MCP服务器,您必须配置主机程序才能使用它。我们将用 克劳德桌面我们必须找到 screentime-mcp 我们系统上的程序;下面的示例显示了 screentime-mcp 已安装我的 go install.
以下配置JSON(同样在回购中 mcp-config.json)设置此项:
{
"mcpServers": {
"screentime": {
"command": "~/go/bin/screentime-mcp",
"args": [
]
}
}
}克劳德桌面
使用Claude Desktop,您可以按照以下步骤操作 他们的配置教程 但替换上述配置。有了这个,你可以问克劳德问题,它将使用 screentime-mcp 服务器。
问题: 为了使其发挥作用,你需要批准 “完全磁盘访问” 到克劳德桌面(Claude.app) . *可能发生的最糟糕的情况是什么?!?* 屏幕时间 knowledgeC.db 否则文件将受到保护。
奥拉玛和 mcphost
\*\*我目前对此工作有问题,但会给感兴趣的人留下指示。 \*\*
以下是如何使用存储在中的上述配置安装和运行它 mcp-config.json:
$ go install github.com/mark3labs/mcphost@latest
$ ollama pull llama3.3
$ mcphost -m ollama:llama3.3 --config mcp-config.json
...chat away...同样,您可能需要授予终端应用程序“全磁盘访问”权限。外面要小心。
命令行用法
以下是命令行帮助:
usage: ./bin/screentime-mcp [opts]
--db string DuckDB data file to use, use ':memory:' for in-memory. Default is ':memory: (default ":memory:")
-d, --dev Activate dev mode
-h, --help Show help
-l, --log-file string Log file destination (or MCP_LOG_FILE envvar). Default is stderr
-j, --log-json Log in JSON (default is plaintext)
-o, --once Exit after one tool call
--sse Use SSE Transport (default is STDIO transport)
--sse-host string host:port to listen to SSE connections
-v, --verbose Verbose logging要查看MCP模式是什么样子,您可以运行 task stdio-schema | jq (链接).
这 --dev 模式将重新加载飞行前迁移文件(./internal/db/duckdb_views.sql)每次工具调用时,将其导入新的DuckDB数据库。这会导致MCP服务器丢失任何DB状态,并尝试新的迁移,而不需要重新构建。它还将允许MCP服务器从失败的迁移开始。
这 --once 标志将只允许MCP服务器进行一次工具调用。从字面上看 os.Exit MCP服务器在短暂超时后。这对发展也很有用。
建筑
建筑是通过以下方式进行的 任务:
$ task
task: [build] go build -o screentime-mcp main.go______________________________________________________________________
贡献与行为
欢迎提交请求和问题。或者用叉子叉,你自己动手。
无论哪种方式,遵守我们的 行为准则要遮遮掩掩,但不要做混蛋。
元数据
I’ve found good value in making purpose-build MCP servers like that with the general model: Data<>DuckDB<>MCP<>LLM With verbose description for the LLM of an “sql” tool endpoint for it to use to explore.从那以后,我一直在使用克劳德来帮助改进原始工具。这涉及改进 工具说明 以及飞行前 SQL视图创建。我请Claude使用该工具做一些工作,看看它存在的问题(例如DuckDB方言问题、时间戳转换),并创建更改。由于它知道视图和工具描述,它可以自己完成大部分繁重的工作,由人引导(主要是作为一块重新启动Claude Desktop的肉)。
学分和许可证
根据 MIT许可证,请参阅 LICENSE.txt.
______________________________________________________________________
用:心:和:火:由背后的团队制作 代理感谢.
