mcpField
B
BeeMCP - A Bee MCP Server

BeeMCP - A Bee MCP Server

本地服务
rogerpincombe.com记忆与知识5182 周前更新

关于 BeeMCP - A Bee MCP Server

BeeMCP 是一个非官方 MCP 服务,用于将 Bee 可穿戴设备的生活记录数据接入 LLM 客户端或自定义 Agent。它面向希望让 AI 助手查询对话、事实、待办和位置历史的用户。

主要功能

  1. 01查询对话记录与摘要
  2. 02读写用户事实记录
  3. 03查看、创建与完成待办事项
  4. 04按时间范围查询位置历史

适用场景

  1. 01查找上周讨论过的重要内容
  2. 02让 AI 助手记住用户偏好
  3. 03通过对话添加或完成提醒事项

MCP 相关

BeeMCP 是 MCP 服务,向 Claude、Zed 等 MCP 客户端暴露对话、事实、待办和位置相关的工具与资源。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"beemcp": {
"command": "uvx",
"args": [
"beemcp"
]
}
}
}
启动命令uvx beemcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypibeemcp

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

BeeMCP - 一个 Bee MCP 服务

PyPI version License: MIT

用于访问 Bee 可穿戴设备生活记录数据的非官方模型上下文协议(MCP)服务。更多背景信息请参阅我的博客。

此服务充当桥梁,让 Claude 等大语言模型(LLM)或自定义 AI Agent 能够访问和交互存储在 Bee 中的个人数据,包括对话、事实、待办事项和位置历史记录。

**免责声明:**这是一个非官方项目,与 Bee 没有隶属关系。使用风险自负。请确保了解通过 API 密钥授权 AI 访问个人数据所涉及的安全影响。

核心概念

Bee.computer 帮助你记录生活中的点滴(对话、到访地点、笔记)。beemcp 通过模型上下文协议,让 AI 助手能够访问这些数据。这意味着你可以向 AI 提问,例如:

  • “我上周讨论了哪些重要事情?”
  • “提醒我 Brad 的饮食偏好。”
  • “上周二下午我在哪里?”
  • “将‘预订机票’添加到我的提醒事项中。”

AI 使用 beemcp 后,可以从你的 Bee.computer 账户安全地获取或修改这些信息。

Claude Desktop 聊天示例

前置要求

  1. **Python:**版本 3.10 或更高。
  2. **Bee.computer API 密钥:**你需要从 Bee 账户设置中获取 API 密钥。

安装

你可以使用 uv(推荐)或 pip 安装并运行 beemcp。

使用 uv(推荐)

uv 是一款快速的 Python 软件包安装器和依赖解析器。如果你已安装 uv,就无需单独安装 beemcp。你可以直接使用 uvx 运行它:

# Example of running directly (requires API key configured, see below)
uvx beemcp
使用 PIP

或者,你也可以使用 pip 安装 beemcp:

pip install beemcp

安装后,你可以将其作为 Python 模块运行:

python -m beemcp.beemcp

或者,如果安装时已将入口点正确添加到系统的 PATH 中,你或许可以直接运行:

beemcp

配置

1. 设置 API 密钥(必需)

beemcp 需要你的 Bee API 密钥才能运行。切勿公开分享此密钥或将其提交到版本控制系统中。

请从 Bee 开发者网站获取 API 密钥。

如果在 Claude 或其他 MCP 客户端中运行,你通常需要在客户端配置中提供 BEE_API_TOKEN 环境变量。

如果直接从命令行运行,请在运行 beemcp 服务的目录中使用 .env 文件提供密钥:

  1. 在打算运行 beemcp 的同一目录中创建名为 .env 的文件。

  2. 在 .env 文件中添加以下内容,并将 your_actual_bee_api_key_here 替换为你的实际密钥:

    BEE_API_TOKEN="your_actual_bee_api_key_here"
    

或者,也可以直接在系统或 shell 中设置 BEE_API_TOKEN 环境变量:

export BEE_API_TOKEN="your_actual_bee_api_key_here"
# Now run the server in the same shell session
uvx beemcp

如果未找到 BEE_API_TOKEN,服务将报错并退出。

2. 连接到大模型客户端

你需要告知大模型客户端(例如 Claude.app 或 Zed)如何启动 beemcp 服务并与其通信。

为 Claude.app 配置

将以下内容添加到 Claude 设置(settings.json)中:

使用 uvx(推荐):

"mcpServers": {
  "beemcp": {
    "command": "uvx",
    "args": ["beemcp"],
    "env": {"BEE_API_TOKEN": "<YOUR API KEY HERE>"}
  }
}
使用 pip 安装
"mcpServers": {
  "bee": {
    "command": "python",
    "args": ["-m", "beemcp.beemcp"],
    "env": {"BEE_API_TOKEN": "<YOUR API KEY HERE>"}
  }
}

在 Claude Desktop 中打开 Settings 窗口并切换到 Developer 选项卡后,你应该会看到类似以下的内容:

Claude Desktop 配置示例

为 Zed 配置

将以下内容添加到 Zed 的 settings.json 中:

使用 uvx(推荐)
"context_servers": [
  {
    "name": "beemcp",
    "command": "uvx",
    "args": ["beemcp"],
    "env": {"BEE_API_TOKEN": "<YOUR API KEY HERE>"}
  }
],
使用 pip 安装
"context_servers": [
  {
    "name": "beemcp",
    "command": "python",
    "args": ["-m", "beemcp.beemcp"],
    "env": {"BEE_API_TOKEN": "<YOUR API KEY HERE>"}
  }
],

可用工具

以下是 LLM 可向 beemcp 请求的操作。

对话
  • list-all-conversations
    • **描述:**列出用户进行过的所有对话,包括简短摘要。使用此工具概览用户的对话历史,以获取上下文。之后,你可以使用 get-conversation 工具获取特定对话的完整详情。
  • get-conversation
    • **描述:**根据对话 ID 获取对话的完整详情。当用户询问特定对话时,使用此工具检索相关详情。你可以使用 list-all-conversations 工具获取要查询的对话 ID。
    • 参数:
      • id(integer):对话的 ID。
事实
  • list-all-user-facts
    • **描述:**列出用户记录的所有事实。使用此工具概览用户记录的事实,以获取上下文。之后,你可以使用 get-user-fact 工具获取特定事实的完整详情。
  • get-user-fact
    • **描述:**根据事实 ID 获取事实的完整详情。当用户询问特定事实时,使用此工具检索相关详情。你可以使用 list-all-user-facts 工具获取要查询的事实 ID。
    • 参数:
      • id(integer):事实的 ID。
  • record-user-fact
    • **描述:**创建一条新事实。使用此工具记录有关用户、用户偏好以及其他可能与回答其他问题相关的信息。
    • 参数:
      • text(string):事实内容。
  • update-user-fact
    • **描述:**更新已有事实。使用此工具更新有关用户、用户偏好以及其他可能与回答其他问题相关的信息。如果用户已明确确认该事实,请将 confirmed 设为 true;如果该事实只是根据上下文推断得出,则设为 false。
    • 参数:
      • id(integer):要更新的事实 ID。
      • text(string):事实的新内容。
      • confirmed(boolean):用户是否已确认此事实。
  • confirm-user-fact
    • **描述:**将事实标记为已确认。使用此工具根据用户反馈更新事实的确认状态。如果用户已明确确认该事实,请将 confirmed 设为 true;如果该事实只是根据上下文推断得出,则设为 false。
    • 参数:
      • id(integer):要确认或取消确认的事实 ID。
      • confirmed(boolean):新的确认状态。
  • delete-user-fact
    • **描述:**删除已有事实。使用此工具遗忘有关用户、用户偏好以及其他详细信息。只有用户明确提出要求时,才调用此工具。
    • 参数:
      • id(integer):要删除的事实 ID。
待办事项(提醒)
  • list-all-todos
    • 描述: 列出用户创建的所有待办事项(提醒)。使用此工具全面查看用户的所有任务,包括已完成和待完成的任务。
  • list-incomplete-todos
    • 描述: 列出用户尚未完成的所有待办事项(提醒)。主动使用此工具查看仍需完成的待处理任务。
  • create-todo
    • 描述: 为用户创建新的待办事项。如果待办事项有具体的截止时间或提醒时间,请将 alarm_at 设为 ISO 8601 格式的日期时间字符串。
    • 参数:
      • text(string):待办事项的内容。
      • alarm_at(string,可选):ISO 8601 日期时间字符串(例如:"2024-12-31T23:59:00Z")。
  • update-todo
    • 描述: 更新现有待办事项。可以修改文本、完成状态或提醒时间。只需包含要更改的参数。
    • 参数:
      • id(integer):要更新的待办事项的 ID。
      • text(string,可选):待办事项的新文本。
      • completed(boolean,可选):新的完成状态。
      • alarm_at(string,可选):新的 ISO 8601 提醒时间。
  • delete-todo
    • 描述: 删除现有待办事项。只有在用户明确要求删除待办事项时才调用此工具。
    • 参数:
      • id(integer):要删除的待办事项的 ID。
  • mark-todo-completed
    • 描述: 将待办事项标记为已完成。当用户明确表示已完成某项任务时调用此工具。
    • 参数:
      • id(integer):要标记为已完成的待办事项的 ID。
位置

其中一些便捷函数存在冗余,但添加它们是为了让当前大模型更便于使用

  • list-all-locations
    • 描述: 列出用户记录的所有位置。使用此工具全面查看用户的位置历史记录。
  • get-locations-today
    • 描述: 获取用户过去 24 小时内到访的位置。当用户询问今天或过去一天去过哪里时使用此工具。
  • get-locations-week
    • 描述: 获取用户过去 7 天内到访的位置。当用户询问本周或过去几天去过哪里时使用此工具。
  • get-locations-month
    • 描述: 获取用户过去 30 天内到访的位置。当用户询问本月或过去几周去过哪里时使用此工具。
  • get-locations-by-time
    • 描述: 获取特定时间范围内的位置。当用户询问某个特定时段去过哪里时使用此工具。start_time 和 end_time 应为 ISO 8601 格式的日期时间字符串,格式如下:2025-12-31T00:00:00Z
    • 参数:
      • start_time(string,可选):ISO 8601 格式的开始时间。
      • end_time(string,可选):ISO 8601 格式的结束时间。

可用资源

MCP 资源可直接访问数据,通常由大模型客户端用于提供上下文或缓存。许多大模型客户端对资源的支持不太好,因此即使上方列出的“工具”可能存在冗余,也仍会提供它们。

  • bee://conversations:列出所有对话的摘要。
  • bee://conversations/{id}:获取指定对话的完整详情。
  • bee://facts:列出所有已确认事实的摘要。
  • bee://facts/{id}:获取指定事实的完整详情。
  • bee://todos:列出所有待办事项的摘要。
  • bee://todos/incomplete:列出未完成待办事项的摘要。
  • bee://todos/{id}:获取指定待办事项的完整详情。
  • bee://locations:列出所有记录位置的摘要(按顺序合并)。
  • bee://locations/today:列出过去 24 小时内的位置。
  • bee://locations/week:列出过去 7 天内的位置。
  • bee://locations/month:列出过去 30 天内的位置。

示例交互

Claude Desktop 聊天示例

扩展聊天示例

随后,手机上的 Bee 应用会建议记录这条事实:

Bee 应用建议示例

调试

你可以使用 MCP 检查器工具(@modelcontextprotocol/inspector)直接与 beemcp 服务交互并进行调试。

如果你使用 uv 安装并通过 uvx 运行:

npx @modelcontextprotocol/inspector uvx beemcp

如果你使用 pip 安装:

npx @modelcontextprotocol/inspector python -m beemcp.beemcp

如果你在项目目录中进行本地开发:

# Assuming you are in the root directory of the beemcp project
npx @modelcontextprotocol/inspector python -m beemcp.beemcp
# Or if using uv for development
npx @modelcontextprotocol/inspector uv run beemcp.beemcp

给大模型的示例问题

尝试向你的 AI 助手提出以下问题,以充分利用 beemcp:

  • “我昨天进行了哪些对话?”
  • “查找我和 John 关于这个项目的对话。”
  • “记住我喜欢喝黑咖啡。”(-> record-user-fact)
  • “其实,我喝咖啡要加牛奶。”(-> update-user-fact)
  • “我的待办事项列表里有什么?”
  • “显示我尚未完成的任务。”
  • “将‘买杂货’添加到我的提醒事项中。”
  • “将‘发送报告’标记为已完成。”
  • “我上周末去了哪里?”
  • “我今天去了哪些地方?”

许可证

beemcp 根据 MIT 许可证 授权。你可以根据许可证条款自由使用、修改和分发本软件。详情请参阅 LICENSE 文件(或标准 MIT 许可证文本)。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。