返回市场
蜂MCP

蜂MCP

作者:OkGoDoIt38 星标更新:2025-03-31

项目介绍

BeeMCP - 一个Bee MCP服务器

PyPI 版本 许可证:MIT

非官方模型上下文协议(MCP)服务器,用于与您的Bee可穿戴设备生活记录数据进行交互。更多背景信息在我的博客上

此服务器充当桥梁,允许大型语言模型(LLMs)如Claude或自定义AI代理访问并与其存储在Bee中的个人数据进行交互,包括对话、事实、待办事项和位置历史。

**免责声明:**这是一个非官方项目,并未得到Bee的支持。请自行承担风险使用。确保您了解通过API密钥授予AI访问您个人数据的安全影响。

核心概念

Bee.computer帮助您捕捉生活中的瞬间(对话、访问地点、笔记)。beemcp使这些数据可以通过模型上下文协议提供给您的AI助手。这意味着您可以向您的AI提出如下问题:

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

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

Claude桌面聊天示例

预备条件

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

安装

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

使用uv(推荐)

uv是一个快速的Python包安装器和解析器。如果您已安装uv,则无需单独安装beemcp。您可以直接使用uvx运行它:

# 示例直接运行(需要配置API密钥,请参见下文)
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"
# 现在在同一shell会话中运行服务器
uvx beemcp

如果找不到BEE_API_TOKEN,服务器将退出并显示错误。

2. 连接到LLM客户端

您需要告诉您的LLM客户端(如Claude.app或Zed)如何启动并与beemcp服务器通信。

针对Claude.app配置

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

使用uvx(推荐):

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

如果您打开Claude Desktop的Settings窗口并进入Developer标签页,应该能看到类似这样的内容:

Claude Desktop配置示例

针对Zed配置

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

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

可用工具

这些是LLM可以从beemcp请求的操作。

对话

  • list-all-conversations
    • 描述: 列出用户所有的对话,包括简短摘要。用于获取用户对话历史的概览。然后可以使用get-conversation工具获取特定对话的详细信息。
  • get-conversation
    • 描述: 根据ID获取对话的详细信息。当用户询问某个特定对话时,使用此工具检索特定对话的详细信息。您可以使用list-all-conversations工具来获取要查找的对话ID。
    • 参数:
      • id (整数): 对话的ID。

事实

  • list-all-user-facts
    • 描述: 列出用户记录的所有事实。用于获取用户记录的事实概览。然后可以使用get-user-fact工具获取特定事实的详细信息。
  • get-user-fact
    • 描述: 根据ID获取事实的详细信息。当用户询问某个特定事实时,使用此工具检索特定事实的详细信息。您可以使用list-all-user-facts工具来获取要查找的事实ID。
    • 参数:
      • id (整数): 事实的ID。
  • record-user-fact
    • 描述: 创建一个新的事实。用于记录关于用户的新的信息,他们的偏好以及其他可能相关的细节。
    • 参数:
      • text (字符串): 事实的内容。
  • update-user-fact
    • 描述: 更新现有的事实。用于更新关于用户的新的信息,他们的偏好以及其他可能相关的细节。如果用户明确确认了该事实,则将confirmed设为true,否则如果只是根据上下文推断的事实,则将confirmed设为false。
    • 参数:
      • id (整数): 要更新的事实的ID。
      • text (字符串): 事实的新内容。
      • confirmed (布尔值): 用户是否确认了这个事实。
  • confirm-user-fact
    • 描述: 标记事实为已确认。根据用户反馈更新事实的确认状态。如果用户明确确认了该事实,则将confirmed设为true,否则如果只是根据上下文推断的事实,则将confirmed设为false。
    • 参数:
      • id (整数): 要确认/取消确认的事实的ID。
      • confirmed (布尔值): 新的确认状态。
  • delete-user-fact
    • 描述: 删除现有的事实。用于忘记关于用户的新的信息,他们的偏好以及其他细节。只有在用户明确表示要删除时才调用此操作。
    • 参数:
      • id (整数): 要删除的事实的ID。

待办事项(提醒)

  • list-all-todos
    • 描述: 列出用户创建的所有待办事项(提醒)。用于获取用户所有任务的全面视图,包括已完成和待完成的任务。
  • list-incomplete-todos
    • 描述: 列出用户仍需完成的所有未完成的待办事项(提醒)。主动查看仍需完成的任务。
  • create-todo
    • 描述: 为用户创建一个新的待办事项。如果待办事项有具体的截止日期或提醒时间,则将alarm_at设置为ISO 8601格式的日期时间字符串。
    • 参数:
      • text (字符串): 待办事项的内容。
      • alarm_at (字符串,可选): ISO 8601日期时间字符串(例如,“2024-12-31T23:59:00Z”)。
  • update-todo
    • 描述: 更新现有的待办事项。您可以修改文本、完成状态或提醒时间。仅包括您想要更改的参数。
    • 参数:
      • id (整数): 要更新的待办事项的ID。
      • text (字符串,可选): 待办事项的新文本。
      • completed (布尔值,可选): 新的完成状态。
      • alarm_at (字符串,可选): 新的ISO 8601提醒时间。
  • delete-todo
    • 描述: 删除现有的待办事项。只有在用户明确表示要删除待办事项时才调用此操作。
    • 参数:
      • id (整数): 要删除的待办事项的ID。
  • mark-todo-completed
    • 描述: 将待办事项标记为已完成。当用户明确表示他们已经完成了某项任务时调用此操作。
    • 参数:
      • id (整数): 要标记为完成的待办事项的ID。

地点

其中一些便利函数可能是多余的,但为了便于当前大型语言模型的使用而添加。

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

可用资源

MCP资源提供了直接访问数据的方式,通常由LLM客户端用于上下文或缓存。许多LLM客户端并不很好地支持资源,因此即使它们可能是多余的,上面列出的“工具”仍然被提供。

  • 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桌面聊天示例

扩展聊天示例

之后,您的手机上的Bee应用程序将建议该事实:

Bee应用程序建议示例

调试

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

如果您使用uv安装并使用uvx运行:

npx @modelcontextprotocol/inspector uvx beemcp

如果您使用pip安装:

npx @modelcontextprotocol/inspector python -m beemcp.beemcp

如果您在项目目录中本地开发:

# 假设您位于beemcp项目的根目录
npx @modelcontextprotocol/inspector python -m beemcp.beemcp
# 或者如果使用uv进行开发
npx @modelcontextprotocol/inspector uv run beemcp.beemcp

示例问题供您的LLM

尝试向您的AI助手提出如下问题以利用beemcp

  • “我昨天有哪些对话?”
  • “查找与John关于项目的对话。”
  • “记住我喜欢喝黑咖啡。”(-> record-user-fact
  • “实际上,我在咖啡里加牛奶。”(-> update-user-fact
  • “我的待办事项清单是什么?”
  • “显示我未完成的任务。”
  • “把‘购买杂货’添加到我的提醒中。”
  • “将‘发送报告’待办事项标记为完成。”
  • “上周末我去过哪里?”
  • “今天我去了哪些地方?”

许可证

beemcp采用MIT许可证。您可以在许可条款下自由使用、修改和分发此软件。详情请参阅LICENSE文件(或标准MIT许可证文本)。