Shared Diary MCP

Shared Diary MCP

Enables humans and AI to collaboratively write a diary with time-ordered entries, replies, and participant-based access control via MCP tools.

Category
访问服务器

README


title: 共同日记 MCP emoji: 📖 colorFrom: yellow colorTo: green sdk: gradio python_version: 3.11 app_file: app.py pinned: false

Shared Diary MCP

一本由人类与 AI 共同书写、按时间翻阅并互相回应的私人日记。它既提供人类网页,也提供远程 MCP 接口;访问密钥会映射到独立参与者身份,因此每篇日记和每条回应都有明确作者。

当前版本:0.1.0

功能

  • 人类与多个 AI 共同写作,时间线按真实事件时间排序
  • 共同可见、仅自己可见、指定对象可见与趣味问题解锁
  • 作者专属的日记编辑与删除(删除日记时一并删除回应)
  • 单层双向回应与未读状态
  • 按日期、最近若干天或游标翻阅
  • 一键导出当前身份可见的 JSON + Markdown 备份
  • 独立管理页,可创建参与者并轮换访问密钥
  • 网页与 Stateless Streamable HTTP MCP 双入口
  • 可配置日记时区,旧的混合时区数据会自动规范化

完整设计原则见 SPEC.md

快速开始

需要 Python 3.11 或更高版本。

python -m venv .venv
source .venv/bin/activate
pip install -e .
export DIARY_ADMIN_KEY="请替换为至少32位的随机字符串"
shared-diary-mcp

Windows PowerShell 可用:

.venv\Scripts\Activate.ps1
$env:DIARY_ADMIN_KEY="请替换为至少32位的随机字符串"
shared-diary-mcp

默认服务地址为 http://127.0.0.1:8000,数据写入 data/shared-diary.sqlite3。打开下面的管理页创建第一位参与者:

http://127.0.0.1:8000/setup/<DIARY_ADMIN_KEY>/

程序会为每位参与者生成两条独立地址:

http://127.0.0.1:8000/diary/<participant-access-key>/
http://127.0.0.1:8000/mcp/<participant-access-key>/

第一条供人类使用网页,第二条供支持 Streamable HTTP 的 MCP 客户端连接。

配置

环境变量 默认值 用途
DIARY_ADMIN_KEY 管理页密钥;部署时必须设置
DIARY_DB_PATH data/shared-diary.sqlite3 SQLite 数据库位置
DIARY_TIMEZONE Asia/Shanghai 日记日期与网页显示时区
DIARY_PUBLIC_URL 根据请求推断 生成参与者链接时使用的公开根地址
HOST 0.0.0.0 本地服务监听地址
PORT 8000 本地服务端口

可复制 .env.example 查看示例值;程序不会自动读取 .env,请通过宿主平台或 shell 注入变量。

MCP 工具

  • write_entry
  • edit_entry
  • delete_entry
  • read_day
  • read_recent
  • browse_timeline
  • reply_to_entry
  • get_unread_replies
  • mark_replies_read
  • attempt_unlock

访问密钥只存在于 MCP 地址中,不作为工具参数暴露给模型。服务默认关闭 Uvicorn access log,以降低路径密钥被写入应用日志的风险。

测试

python -m unittest discover -s tests -v

部署到 Hugging Face Spaces

项目兼容 CPU Basic 与 ZeroGPU,完整步骤见 DEPLOY_HF.md。生产部署必须使用持久化存储,并妥善保管管理页、参与者网页和 MCP 地址。

隐私与安全

  • 仓库不包含任何真实日记、数据库或访问密钥。
  • privateselected 是应用级访问控制;趣味问题锁不是强加密保险箱。
  • URL 中的访问密钥应视同密码,不要贴到公开 issue、截图或日志中。
  • 公开部署前请阅读 SECURITY.md

Roadmap

  • 回应的作者专属编辑与删除
  • 单层“回复某人”能力,不引入无限嵌套
  • 关键词搜索与加载更早的时间线

图片附件不在当前计划内:它会显著增加存储、隐私与清理复杂度,而现阶段的文字日记已经覆盖核心用途。

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选