Token导航 LogoToken导航TokenDH.com
Work Diary MCP logo
文档知识stdio官方级别未说明来源级核验

Work Diary MCP

MCP Server

一个基于Model Context Protocol (MCP)的服务,用于管理和维护每周工作日记,支持通过Claude CLI或Zed进行交互,并将日记以Markdown格式保存。

工具数

16

提示词数

0

GitHub Stars

0

资源数

0
Jira集成PythonClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

amy-hashi

提供方

amy-hashi

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run --group dev pytest -v

详细介绍

工作日记mcp

A. 模型上下文协议(MCP) 用于管理每周工作日记的服务器。内置于 FastMCP 在Python中。

通过对话方式与您的日记互动 Claude 命令行界面泽德服务器将Markdown文件写入磁盘,可以直接复制到Microsoft Loop(或任何兼容Markdown的工具)中。

有关更改的运行摘要,请参阅 更改日志.md.

______________________________________________________________________

索引

______________________________________________________________________

快速开始

先决条件

  • Python 3.11+
  • uv --使用官方文档中的平台说明安装它:

该项目旨在同时开展这两项工作 macOS视窗以下示例在需要时使用Unix风格的路径;在Windows上,使用等效的本地路径 uv 您环境的可执行文件位置。

安装依赖项

cd ~/work-diary-mcp/python
uv sync

在Zed注册

添加到您的Zed settings.json (cmd+,).此示例显示了以下对象的macOS样式路径 uv;在Windows上,使用以下路径 uv.exe 或另一个解析为 uv 在您的环境中:

{
  "context_servers": {
    "work-diary": {
      "command": "/path/to/uv",
      "args": [
        "--directory",
        "/Users/yourname/work-diary-mcp/python",
        "run",
        "work-diary-mcp"
      ],
      "env": {}
    }
  }
}

在Claude CLI注册

使用任何东西 uv 可执行路径适合您的平台:

claude mcp add work-diary /path/to/uv \
  --directory $HOME/work-diary-mcp/python run work-diary-mcp

______________________________________________________________________

配置

默认情况下,日记文件会写入 data/ 在存储库内部。您可以将服务器指向任何目录,并使用环境变量或设置文件配置Jira自动链接。

环境变量

数据目录

WORK_DIARY_DATA_DIR 绝对(或 ~-前缀)路径:

export WORK_DIARY_DATA_DIR=~/Documents/work-diary

要使其永久化,请将导出添加到您的shell配置文件中,并将其传递到MCP客户端配置中的服务器。

泽德 --添加一个 env 条目:

{
  "context_servers": {
    "work-diary": {
      "command": "/path/to/uv",
      "args": ["--directory", "/Users/yourname/work-diary-mcp/python", "run", "work-diary-mcp"],
      "env": {
        "WORK_DIARY_DATA_DIR": "/Users/yourname/Documents/work-diary"
      }
    }
  }
}

Claude 命令行界面 --注册时添加env-var:

claude mcp add work-diary /path/to/uv \
  --directory $HOME/work-diary-mcp/python run work-diary-mcp \
  --env WORK_DIARY_DATA_DIR=$HOME/Documents/work-diary

在Windows上,使用Windows样式路径 uv 可执行和 WORK_DIARY_DATA_DIR.

Jira自动链接

您还可以通过环境变量配置Jira链接:

  • WORK_DIARY_JIRA_BASE_URL
  • WORK_DIARY_JIRA_PREFIXES

例子:

export WORK_DIARY_JIRA_BASE_URL=https://jira.example.com/browse
export WORK_DIARY_JIRA_PREFIXES=PROJ,INFRA,ENG

WORK_DIARY_JIRA_BASE_URL 必须是非空URL,并且必须包含以下方案 https://.

多过程安全

默认情况下, work-diary-mcp 使用进程内 threading.Locks来协调写入。对于单个MCP服务器进程是数据目录的唯一写入者的常见情况,这是安全的,并避免了每次调用 flock / msvcrt.locking 头顶。

如果运行多个写入同一数据目录的进程,请设置 WORK_DIARY_FILE_LOCKS=1 要额外获取每周和提醒写入的文件系统锁:

export WORK_DIARY_FILE_LOCKS=1

设置文件

使用以下键的任意组合创建设置文件:

  • macOS/Linux: ~/.config/work-diary/settings.toml
  • 窗户: %APPDATA%\work-diary\settings.toml
data_dir = "~/Documents/work-diary"
jira_base_url = "https://jira.example.com/browse"
jira_prefixes = ["PROJ", "INFRA", "ENG", "OPS", "SEC", "DATA"]

设置文件密钥:

  • data_dir --日记文件和提醒存储应该放在哪里
  • jira_base_url --Jira实例的基本浏览URL
  • jira_prefixes --应链接的Jira项目密钥前缀列表

jira_base_url 必须是非空URL,并且必须包含以下方案 https://.

配置的路径会自动展开,并在首次使用时创建目录。

解析顺序

数据目录

  1. WORK_DIARY_DATA_DIR 环境变量
  2. data_dir 在平台本机设置文件中
  3. 内置默认值: /data

Jira自动链接

  1. WORK_DIARY_JIRA_BASE_URL / WORK_DIARY_JIRA_PREFIXES 环境变量
  2. jira_base_url / jira_prefixes 在平台本机设置文件中
  3. 内置默认值:

- https://jira.example.com/browse - ["PROJ", "INFRA", "ENG", "OPS", "SEC", "DATA"]

______________________________________________________________________

工具

工具说明
update_project_status使用可选的内联注释和可选的角色更新或添加项目的状态。通过 append_note: true 附加到现有注释而不是替换它。For role,通过 null (或省略它)保持任何现有角色不变,用空字符串清除它,或用任何接受的角色值设置它。支持可选 date 针对特定的一周。现有项目也可以通过行号引用,例如 project 2不明确的行引用会引发错误, project 0 总是无效的,超出范围的正引用被视为字面项目名称,而不是提升。
bulk_update_projects在一次操作中更新多个项目——比调用更有效 update_project_status 反复。每个条目可以可选地包括 role,同样 null/""/价值语义 update_project_status.支持可选 date 针对特定的一周。现有项目也可以通过行号引用,例如 project 2不明确的行引用会引发错误, project 0 总是无效的,超出范围的正引用被视为字面项目名称,而不是提升。
set_project_role设置或清除现有项目的角色。接受规范角色名称(Sponsor, Guide, Catcher, Advisor, Catalyst, Participant(%s),表情符号快捷方式(:rocket:, :world_map:, :fire_extinguisher:, :compass:, :test_tube:, :raising_hand:)、裸表情符号或已格式化的显示值。传递一个空字符串以清除角色。支持可选 date 针对特定的一周。
rename_project重命名项目,保留其状态和注释。支持可选 date 针对特定的一周。现有项目也可以通过行号引用,例如 project 2不明确的行引用会引发错误, project 0 始终无效,行引用必须在重命名操作的范围内。
add_note在一般注释部分添加注释。支持可选 date 针对特定的一周。
edit_note用索引号替换现有注释的内容。支持可选 date 针对特定的一周。
delete_note按索引号删除注释。支持可选 date 针对特定的一周。
add_reminder添加当前或未来一周的提醒,而不创建未来的日记页面。支持可选 due_datedate.
list_reminders列出目标周的提醒,包括复选框状态和任何截止日期。支持可选 date 针对特定的一周。
complete_reminder将目标周的提醒标记为已完成。支持可选 date.
reopen_reminder将已完成的提醒标记为目标周的未完成提醒。支持可选 date.
get_diary检索当前或过去一周的完整Markdown日记。
list_projects列出当前或过去一周的所有项目及其状态。
list_weeks列出所有有日记条目的周,从最早到最新排序。
remove_project从目标周中删除项目及其注释。支持可选 date 针对特定的一周。现有项目也可以通过行号引用,例如 project 2不明确的行引用会引发错误, project 0 始终无效,行引用必须在要删除的范围内。
clear_project_note清除项目的内联注释,保持其状态不变。支持可选 date 针对特定的一周。现有项目也可以通过行号引用,例如 project 2不明确的行引用会引发错误, project 0 始终无效,行引用必须在注释清除的范围内

______________________________________________________________________

用法

自然地说话——你的MCP客户端会自动调用正确的工具:

Update Project Phoenix to On Track
Platform Infra is now blocked — waiting on the infra team
Add a note: had a productive all-hands today, big Q3 roadmap updates
Show me this week's diary
What projects am I tracking this week?
Show me my diary from last week
Show me my diary from 2 weeks ago
What weeks do I have diary entries for?
Remove Project Phoenix from this week
Clear the note on Platform Infra
Update [Project Phoenix](https://jira.example.com/PROJ-123) to At Risk with a note: blocked on dependency
Rename Project Phoenix to Phoenix Rewrite
Update all my projects: Phoenix Rewrite is On Track, Platform Infra is Blocked, Auth Service is Done
Append a note to Platform Infra: dependency resolved, unblocked as of Friday
Edit note 2: corrected — the all-hands covered Q3 and Q4 roadmap
Delete note 3
PROJ-1234 is now On Track
Add a note: opened PROJ-1234 and INFRA-5678 to track the rollout
Add a note to last week's diary: wrapped up the migration checklist
Edit note 2 in last week's diary: corrected the rollout status
Delete note 1 from 2 weeks ago
Update Stacks on TFE to Blocked in last week's diary with a note: waiting on dependency
Update project 2 to Done
Clear the note on project 3
Rename project 1 to Phoenix Rewrite
Add a reminder for next week: follow up with the perf team
Add a reminder for next week with due date Friday: confirm rollout checklist
Add a reminder in 4 weeks: prepare rollout notes
List reminders for next week
Complete reminder 1 for next week
Reopen reminder 1 for next week

______________________________________________________________________

特性

  • 项目状态表 --跟踪每个项目的状态、可选的内联注释和可选的参与角色
  • 参与角色 -在每个项目上标记一个首席工程师风格的参与角色(赞助商、向导、追赶者、顾问、催化剂、参与者),并在专用的表情符号中呈现 Role 列。角色与项目本身一起每周进行。
  • 一般说明 --在一周内添加笔记
  • 结转 --在每个新周的第一次交互中,未完成的项目会自动从前一周结转,而项目注释会重置为新周
  • Jira自动链接 --裸Jira票证引用(用于支持的前缀,如 PROJ-1234INFRA-5678)自动转换为Markdown链接
  • Markdown链接 --在任何地方使用标准的Markdown链接语法: [text](url)
  • 相对日期支持 --使用ISO日期和自然语言(如 "last week", "next week", "2 weeks ago", "2 weeks from now",或 "in 4 weeks"
  • 上周写支持 --通过指定日期(如)添加注释并更新过去一周的项目 "last week""2026-03-02"
  • 项目行引用 --使用以下短语按表行引用现有项目 "project 2" 更新、批量更新、重命名、删除或清除项目注释时。如果引用类似 "project 2" 也可能意味着一个名为 Project 2,服务器会产生歧义错误,而不是猜测。 project 0 始终无效,即使存在具有该名称的文字项目。超出范围的正引用被视为字面项目名称。
  • 提醒事项 --存储当前或未来几周的提醒,而不创建未来的日记页面,将其呈现在专用部分,并用复选框标记为完成
  • 可配置数据目录 --将日记文件存储在仓库默认位置,或将服务器指向自定义目录

______________________________________________________________________

支持的状态值

众所周知的状态会自动格式化为表情符号。任何其他字符串都按原样存储。

输入渲染
在轨道上🟢 按计划进行
有风险🟡 面临风险
已阻止🔴 已阻止
完成✅ 完成
完成✅ 完成
已完成✅ 已完成
正在进行中🔵 进行中
未开始⚪ 未开始
已取消⛔ 已取消
已取消⛔ 已取消
暂停⏸️ 暂停
已发货🚀 已发货
GA🚀 GA
规划中💡 在规划

终端状态用于决定哪些内容不应转入新的一周。

______________________________________________________________________

支持的角色价值观

项目角色受首席工程师角色框架的启发。每个项目都可以选择在其状态旁边分配一个角色;该角色在一个专门的 Role 日记项目表中的列。

输入渲染
赞助商/ :rocket: / 🚀🚀 赞助商
指南/ :world_map: / 🗺️🗺️ 指南
捕手/ :fire_extinguisher: / 🧯🧯 捕手
顾问/ :compass: / 🧭🧭 顾问
催化剂/ :test_tube: / 🧪🧪 催化剂
参与者/ :raising_hand: / 🙋🙋 参与者

角色对输入不区分大小写,并接受规范名称、表情符号快捷方式、裸表情符号或已格式化的显示值。传递一个空字符串以清除之前设置的角色。未知值按原样存储,因此调用者可以根据需要使用任意角色标签。

______________________________________________________________________

Jira自动链接

每当文本保存到日记中时,Bare Jira票证引用都会自动转换为Markdown链接,包括项目名称、内联注释和常规注释。已链接的引用永远不会双重链接。

默认的Jira配置为:

  • 基本URL: https://jira.example.com/browse
  • 前缀: PROJ, INFRA, ENG, OPS, SEC, DATA

您可以通过以下任一方式覆盖这些内容:

  • 环境变量:

- WORK_DIARY_JIRA_BASE_URL - WORK_DIARY_JIRA_PREFIXES (例如,逗号分隔 PROJ,INFRA,ENG)

  • 设置文件:

- jira_base_url - jira_prefixes

示例:

您键入存储为
PROJ-1234[PROJ-1234](https://jira.example.com/browse/PROJ-1234)
blocked by INFRA-5678blocked by [INFRA-5678](https://jira.example.com/browse/INFRA-5678)
[PROJ-1234](https://jira.example.com/browse/PROJ-1234)不变

票证密钥在生成的链接中大写。与支持的前缀不匹配的引用将保持原样。

WORK_DIARY_JIRA_BASE_URL / jira_base_url 必须是非空URL,并且必须包含以下方案 https://.

______________________________________________________________________

数据格式

每周的日记以两个文件的形式存储在配置的数据目录中,以该周的星期一为关键字。

YYYY-MM-DD.json --真相来源:

{
  "weekKey": "2026-03-02",
  "projects": {
    "[Project Phoenix](https://jira.example.com/browse/PROJ-123)": "On Track"
  },
  "projectNotes": {
    "[Project Phoenix](https://jira.example.com/browse/PROJ-123)": "A few bugs found; [PROJ-124](https://jira.example.com/browse/PROJ-124) opened to track."
  },
  "projectRoles": {
    "[Project Phoenix](https://jira.example.com/browse/PROJ-123)": "🚀 Sponsor"
  },
  "notes": [
    {
      "content": "Kickoff meeting with TPM for Platform Infra."
    }
  ]
}

YYYY-MM-DD.md --渲染输出:

# Work Diary — Week of Mar 2, 2026

## Reminders for this week

- [ ] Due Date: 2026-03-06 Follow up with the perf team
- [x] Confirm rollout checklist

## Project Status

| Project | Role | Status | Notes |
|---------|------|--------|-------|
| [Project Phoenix](https://jira.example.com/browse/PROJ-123) | 🚀 Sponsor | 🟢 On Track | A few bugs found; [PROJ-124](https://jira.example.com/browse/PROJ-124) opened to track. |

## Notes

- **[1]** Kickoff meeting with TPM for Platform Infra.

______________________________________________________________________

数据位置

日记文件存储在中所述的配置数据目录中 配置.

每周由该周周一键入的两个文件表示:

  • YYYY-MM-DD.json --真理之源(原始状态)
  • YYYY-MM-DD.md --已渲染的Markdown,准备复制到Microsoft Loop中

提醒信息分别存储在:

  • reminders.json --当前和未来几周提醒的真相来源

写入操作默认为当前周,但也可以使用相对日期或ISO日期针对特定周,包括 "last week", "next week", "N weeks ago", "N weeks from now", "in N weeks",或值,例如 "2026-03-02"如果过去的一周还不存在,服务器会为该周创建一个空日记页,而不是结转状态。未来的提醒不会创建未来的日记页面。

______________________________________________________________________

延续行为

在每个新的一周的第一次交互中,会自动创建一个新的日记页面。非终端项目是从最近的前一周复制过来的,所以你永远不会从一张白纸开始。

结转行为目前为:

  • 项目状态结转
  • 项目角色被延续
  • 项目内联注释不结转
  • 一般注释不结转
  • 已完成或取消的项目不结转
  • 该周的提醒将在新的日记页中呈现,而不会提前创建未来的日记页
  • 当某一周的提醒发生变化时,该周的持久Markdown会重新生成

具有终端状态的项目,例如 完成, 完成, 完成, 已取消, 已取消, 已发货,或 GA 待在他们完成的那一周,不要弄乱新一周的日记。

______________________________________________________________________

项目结构

work-diary-mcp/
├── .gitignore
├── README.md
├── CHANGELOG.md
├── data/                          # Diary files (gitignored) — default location
│   ├── YYYY-MM-DD.json            # Raw state for each week
│   └── YYYY-MM-DD.md              # Rendered Markdown, ready to copy into Loop
└── python/
    ├── README.md                  # Python-specific setup details
    ├── pyproject.toml
    ├── uv.lock
    ├── tests/
    │   ├── __init__.py
    │   └── test_diary.py
    └── work_diary_mcp/
        ├── __init__.py
        ├── config.py              # Data directory resolution and Jira configuration
        ├── diary.py               # State management, reminders, week helpers, persistence
        ├── jira.py                # Jira ticket auto-linking
        ├── markdown.py            # Markdown renderer
        ├── roles.py               # Engagement role definitions and normalization
        ├── server.py              # FastMCP server and tool definitions
        └── statuses.py            # Status definitions (emoji map, completion set)

______________________________________________________________________

测试

python/:

uv run --group dev pytest -v

目录标签

目录标签

Jira集成PythonClaude工作日记本地部署Markdown生成项目管理

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

16

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

来源信息

继续浏览同类 MCP