Token导航 LogoToken导航

MCP Server · AI代理

Activitywatch MCP Server Py

ActivityWatch MCP服务器是一个连接ActivityWatch时间跟踪数据的模型上下文协议服务器,允许LLMs(如Claude)与用户的时间跟踪数据进行交互。

stdio官方级别未说明来源级核验工具 5
时间跟踪生产力工具PythonClaude数据交互Claude Desktop

快速开始

作者 / 组织
Jelloeater
提供方
Jelloeater
运行时
Python

工具数量

5

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

2

仓库热度

收录来源

1 个

MCP World

选型结论

Activitywatch MCP Server Py 属于AI代理类 MCP Server,公开资料标注 5 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude,有可以直接复制的安装命令;接入前先确认权限范围。

分类

AI代理

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

uvx activitywatch-mcp-server-py

客户端配置示例

{
  "mcpServers": {
    "activitywatch-mcp-server-py": {
      "command": "uvx",
      "args": [
        "activitywatch-mcp-server-py"
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 5 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

活动监视MCP服务器

连接到的模型上下文协议(MCP)服务器 活动观察,允许像Claude这样的LLM与您的时间跟踪数据进行交互。

版本2.0:现在用Python实现,支持原生UVX!该服务器最初内置于TypeScript中,现已完全用Python重写,以便更好地与Python生态系统集成,并通过以下方式简化部署 uvx.

特性

  • 列出Buckets:查看所有可用的ActivityWatch bucket
  • 运行查询:执行强大的AQL(ActivityWatch查询语言)查询
  • 获取原始事件:直接从任何存储桶中检索事件
  • 获取设置:访问ActivityWatch配置设置
  • 查询示例:获取格式正确的查询的有用示例

安装

使用紫外线(推荐)

使用时 uv 不需要特定的安装。我们将使用 uvx 直接运行 _activitywatch mcp服务器py_.

uvx activitywatch-mcp-server-py

使用pip

或者,您可以安装 activitywatch-mcp-server-py 通过pip:

pip install activitywatch-mcp-server-py

安装后,您可以使用以下命令将其作为脚本运行:

python -m activitywatch_mcp_server_py

先决条件

  • 活动观察 已安装并正在运行
  • Python 3.10或更高版本(由uvx自动处理)
  • MCP客户端(Claude Desktop、OpenCode、Crush等)

配置

克劳德桌面

添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

Using uvx (recommended)

{
    "mcpServers": {
        "activitywatch": {
            "command": "uvx",
            "args": ["activitywatch-mcp-server-py"]
        }
    }
}

Using pip installation

{
    "mcpServers": {
        "activitywatch": {
            "command": "python",
            "args": ["-m", "activitywatch_mcp_server_py"]
        }
    }
}

With custom API endpoint

{
    "mcpServers": {
        "activitywatch": {
            "command": "uvx",
            "args": [
                "activitywatch-mcp-server-py",
                "--api-base",
                "http://localhost:5600/api/0"
            ],
            "env": {
                "AW_API_BASE": "http://localhost:5600/api/0"
            }
        }
    }
}

配置后,重新启动Claude Desktop并查找MCP图标以确认其正常工作。

开源代码

OpenCode支持开箱即用的MCP服务器。将服务器配置添加到您的OpenCode设置中:

Using uvx

{
    "mcp": {
        "servers": {
            "activitywatch": {
                "command": "uvx",
                "args": ["activitywatch-mcp-server-py"]
            }
        }
    }
}

Using pip installation

{
    "mcp": {
        "servers": {
            "activitywatch": {
                "command": "python",
                "args": ["-m", "activitywatch_mcp_server_py"]
            }
        }
    }
}

您可以将此添加到:

  • 用户设置(JSON):新闻 Ctrl+Shift+P 然后选择“首选项:打开用户设置(JSON)”
  • 工作区设置:创建 .vscode/mcp.json 在您的工作空间中

心动

Crush还支持MCP服务器。在您的粉碎设置中配置它:

Using uvx

{
    "mcpServers": {
        "activitywatch": {
            "command": "uvx",
            "args": ["activitywatch-mcp-server-py"]
        }
    }
}

Using pip installation

{
    "mcpServers": {
        "activitywatch": {
            "command": "python",
            "args": ["-m", "activitywatch_mcp_server_py"]
        }
    }
}

可用工具

活动观察列表桶

列出所有可用的ActivityWatch bucket,并提供可选的类型筛选。

参数:

  • type (可选):按类型过滤桶(例如,“窗口”、“网络”、“afk”)
  • include_data (可选):在响应中包含存储桶数据

activitywatch运行查询

使用ActivityWatch的查询语言(AQL)运行查询。

参数:

  • timeperiods:查询格式化为字符串数组的时间段。对于日期范围,请使用格式: ["2024-10-28/2024-10-29"]
  • query:ActivityWatch查询语言中的查询语句数组,其中每个项都是一个完整的查询,语句之间用分号分隔
  • name (可选):查询的名称(用于缓存)

重要:每个查询字符串应包含一个完整的查询,其中包含多个用分号分隔的语句。

请求格式示例:

{
    "timeperiods": ["2024-10-28/2024-10-29"],
    "query": [
        "events = query_bucket('aw-watcher-window_hostname'); RETURN = events;"
    ]
}

请注意:

  • timeperiods 应具有带斜线的预格式化日期范围
  • 中的每个项目 query 数组是一个包含所有语句的完整查询

activitywatch获取事件

从ActivityWatch存储桶中获取原始事件。

参数:

  • bucket_id:从中获取事件的bucket的ID
  • start (可选):ISO格式的开始日期/时间
  • end (可选):ISO格式的结束日期/时间
  • limit (可选):要返回的最大事件数

activitywatch获取设置

从服务器获取ActivityWatch设置。

参数:

  • key (可选):获取特定设置键,而不是所有设置

activitywatch查询示例

获取ActivityWatch MCP服务器格式正确的查询示例。此工具不接受任何参数,并返回有用的示例。

查询示例

以下是一些您可以尝试的示例查询:

  • 列出你的所有水桶:“我有什么ActivityWatch桶?”
  • 获取应用程序使用情况摘要:“你能给我看看我今天用得最多的应用程序吗?”
  • 查看浏览历史记录:“我今天花在哪些网站上的时间最多?”
  • 检查生产率:“我今天在生产力应用程序上花了多少时间?”
  • 查看设置:“我的ActivityWatch设置是什么?”或“您能在ActivityWatch中检查特定设置吗?”

查询语言示例

ActivityWatch使用简单的查询语言。以下是一些常见的模式:

// Get window events
window_events = query_bucket(find_bucket("aw-watcher-window_"));
RETURN = window_events;

// Get only when not AFK
afk_events = query_bucket(find_bucket("aw-watcher-afk_"));
not_afk = filter_keyvals(afk_events, "status", ["not-afk"]);
window_events = filter_period_intersect(window_events, not_afk);
RETURN = window_events;

// Group by app
window_events = query_bucket(find_bucket("aw-watcher-window_"));
events_by_app = merge_events_by_keys(window_events, ["app"]);
RETURN = sort_by_duration(events_by_app);

// Filter by app name
window_events = query_bucket(find_bucket("aw-watcher-window_"));
code_events = filter_keyvals(window_events, "app", ["Code"]);
RETURN = code_events;

配置选项

服务器连接到位于的ActivityWatch API http://localhost:5600/api/0 默认情况下。

您可以使用以下方式对此进行自定义:

  1. 命令行参数:
   uvx activitywatch-mcp-server-py --api-base http://localhost:5600/api/0
  1. 环境变量:
   export AW_API_BASE=http://localhost:5600/api/0
   uvx activitywatch-mcp-server-py

故障排除

活动观察未运行

如果ActivityWatch未运行,服务器将显示连接错误。确保ActivityWatch正在运行,并且可以在以下位置访问http://localhost:5600.

查询错误

如果您遇到查询错误:

  1. 检查查询语法
  2. 确保存储桶ID正确
  3. 验证时间段是否包含数据
  4. 查看ActivityWatch日志以了解更多详细信息
  5. 使用 activitywatch-query-examples 查看格式正确的示例的工具

查询格式问题

最常见的错误是查询语句被拆分为单独的数组元素,而不是组合在一个字符串中:

❌ 不正确:

{
    "query": [
        "browser_events = query_bucket('aw-watcher-web');",
        "afk_events = query_bucket('aw-watcher-afk');",
        "RETURN = events;"
    ],
    "timeperiods": ["2024-10-28/2024-10-29"]
}

✅ 对的:

{
    "timeperiods": ["2024-10-28/2024-10-29"],
    "query": [
        "browser_events = query_bucket('aw-watcher-web'); afk_events = query_bucket('aw-watcher-afk'); RETURN = events;"
    ]
}

结构

类别模型

flowchart LR
  subgraph "MCP Server"
    direction TB
    classDef server fill:#e1f5fe
    classDef tool fill:#f3e5f6
    classDef handler fill:#fff3e0

    A[server.py] --> B[tools/]
    A --> C[server.py]

    class A server
    class B tool
    class C handler
  end

  subgraph "ActivityWatch API"
    direction TB
    classDef api fill:#e8f5e8

    D[localhost:5600]

    class D api
  end

  subgraph "MCP Client"
    direction TB
    classDef client fill:#fce4ec

    E[Claude Desktop]
    F[OpenCode]

    class E client
    class F client
  end

  A --> D
  E --> A
  F --> A

项目结构

activitywatch mcp服务器/ ├── src/ │ └── activitywatch_mcp_server_py/ │ ├── 初始化.py#入口点和CLI │ ├── server.py#MCP服务器设置 │ └── 工具/#单个工具实现 │ ├── list_buckets.py │ ├── run_query.py │ ├── get_events.py │ ├── get_settings.py │ └── query_example.py ├── 测试/#测试套件 │ ├── conftest.py │ ├── test_list_buckets.py │ ├── test_run_query.py │ └── test_get_settings.py ├── pyproject.toml#项目配置 └── README.md


### Setup Development Environment

Clone the repository

git clone https://github.com/8bitgentleman/activitywatch-mcp-server.git cd activitywatch-mcp-server

Create virtual environment and install dependencies

python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate

Install in editable mode with dev dependencies

uv pip install -e ".[dev]"


### 运行测试

Run all tests

pytest tests/ -v

Run specific test file

pytest tests/test_list_buckets.py -v

Run with coverage

pytest tests/ --cov=src/activitywatch_mcp_server_py --cov-report=html

Run type checking

pyright src/

Run linting

ruff check src/


### 在本地测试服务器

Run the server directly

source .venv/bin/activate activitywatch-mcp-server-py

Test with custom API endpoint

activitywatch-mcp-server-py --api-base http://localhost:5600/api/0

Test with environment variable

AW_API_BASE=http://localhost:5600/api/0 activitywatch-mcp-server-py


### 调试

您可以使用MCP检查器调试服务器:

npx @modelcontextprotocol/inspector uvx activitywatch-mcp-server-py


这将打开一个web界面,您可以在其中:

- 查看所有可用工具
- 具有自定义参数的测试工具调用
- 查看请求/响应数据
- 调试服务器通信

### 添加新工具

要添加新工具,请执行以下操作:

1. 在中创建新文件 `src/activitywatch_mcp_server_py/tools/` (例如。, `my_tool.py`)

1. 实现模式函数和处理程序:

from mcp.types import TextContent from typing import Any

def my_tool_schema() -> dict[str, Any]: return { "type": "object", "properties": { "param": {"type": "string", "description": "Parameter description"} }, "required": ["param"] }

async def my_tool_handler(api_base: str, arguments: dict[str, Any]) -> list[TextContent]: # Implementation here return [TextContent(type="text", text="Result")]


1. 在中注册该工具 `server.py`:

from activitywatch_mcp_server_py.tools.my_tool import my_tool_schema, my_tool_handler

# In list_tools handler: Tool( name="activitywatch-my-tool", description="Tool description", inputSchema=my_tool_schema(), ),

# In call_tool handler: case "activitywatch-my-tool": return await my_tool_handler(api_base, arguments)


1. 在中编写测试 `tests/test_my_tool.py`

### 发布过程

该软件包旨在发布到PyPI,以便通过以下方式轻松安装 `uvx`:

Update version in pyproject.toml

Build the package

python -m build

Upload to PyPI (requires PyPI credentials)

twine upload dist/*

Test installation

uvx activitywatch-mcp-server-py


## 贡献

欢迎投稿!请随时提交拉取请求。

## 许可证

[麻省理工学院](LICENSE)

工具与能力

工具数量

5

资源数量

0

提示词数量

0

能力标签

时间跟踪Python本地部署数据交互LLM集成生产力工具API服务

支持客户端

Claude DesktopClaude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

多步任务编排

把拆解、检索、执行串成一条链,模型按步骤调用工具。

长期上下文

把会话、笔记和知识放到外部存储,换个会话还能接着做。

接自有流程

把内部系统和模型连起来,让助手调用已有的工作流。

选择建议

值得选的地方

  • 只提供 5 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在AI代理场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Activitywatch MCP Server Py

MCP World · 本页

5stdio有1 个2026-05-17
Everything Claude Code

MCP World

0stdio有1 个2026-05-17
Filesystem 560c4363

MCP World

13未说明未标注2 个2026-05-17
Time 7365cb6d

MCP.so

2SSE有2 个2026-05-17
Server Everything (everything)

MCP World

11stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Activitywatch MCP Server Py 怎么安装?

公开资料给出的安装命令是 uvx activitywatch-mcp-server-py,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Activitywatch MCP Server Py 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Activitywatch MCP Server Py 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Activitywatch MCP Server Py 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Activitywatch MCP Server Py 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP