使用说明
MCP是的,你认识我
一台MCP服务器。您的所有个人数据。 mcpyeahyouknowme 将WhatsApp、Gmail、文档、表格、日历、任务、联系人、幻灯片、本地笔记、浏览器历史记录、实时网络搜索和谷歌位置连接到一个单独的位置 主控程序 端点——所以你的人工智能助手使用一个一致的工具集,而不是处理一堆单独的服务器。
全球搜索一切。 一个 search 该工具一次在每个连接的源(电子邮件、聊天记录、日历事件、文档、笔记、浏览器历史记录)上执行BM25关键字搜索,并根据与后续元数据的相关性进行排名,这些元数据指向正确的源特定工具进行深度阅读。
线下优先,隐私保护。 所有数据同步到本地SQLite数据库。每个读取工具都直接查询本地文件——没有网络延迟,在您明确请求之前,任何东西都不会离开您的机器。后台守护进程处理同步;MCP服务器从本地缓存读取。
注意: 与许多MCP服务器一样,这取决于 致命的三联征及时注入可能会导致私人数据泄露。
建筑
一个带有可插拔功能的Go二进制文件 DataSource 界面。两种长时间运行模式:
| 模式 | 命令 | 描述 |
|---|---|---|
| 核心守护进程 | mcpyeahyouknowme core |
将所有源同步到本地SQLite,维护全局搜索索引,公开用于写入的REST API |
| MCP服务器 | mcpyeahyouknowme mcp |
Stdio MCP服务器——从本地SQLite读取每个查询,代理写入核心守护进程 |
所有读取都会命中本地SQLite;MCP服务器从不直接调用外部API。写操作(发送消息、下载媒体)通过核心守护进程的环回REST API代理。
请参阅 产品规格 了解全部细节。
安全
内置可选控件 ~/.local/share/mcpyeahyouknowme/config.json 在顶级之下 mcp 对象(可以省略;默认值在运行时应用,而无需重写文件)。任何正在进行的MCP连接都需要重新启动/加载才能生效。A. 完整注释模板 (所有来源+ mcp 钥匙)在里面 config.json引用 在......下面
| 字段 | 默认值 | 它的作用 |
|---|---|---|
read_only |
false |
何时 true,MCP服务器注册 不 变异工具(不改变状态或命中写入路径)。 |
disabled_tools |
[] |
完全省略工具名称(例如。 whatsapp_send_message). |
mutating_tools_per_min |
10 |
每个工具滑动窗口:每个 非只读 工具每分钟最多只能运行这么多次;进一步的调用返回速率限制工具错误。 |
whatsapp_send_max_runes |
1000 |
一个字符中允许的最大Unicode字符数 whatsapp_send_message 身体。省略或设置 ≤ 0 保持默认值(1000).如果您经常通过MCP发送长文本,请设置得更高。 |
审核日志: 每次MCP工具调用都会向以下对象附加一行JSON mcp-audit.log 在同一个数据目录中。敏感参数键(message, query, path, body, base64, media_path)被记录为仅限长度的编辑。文件被修剪成 core.log 当其增长超过5 MiB时(最新保持约1 MiB)。
不受信任的内容: 来自外部或用户控制的来源的结果(例如WhatsApp/Gmail消息正文、网络搜索、浏览器历史记录、笔记本阅读和全局 search / profile_about_me 当点击包含这些来源时)会以简短的安全警告作为前缀,并包括 _meta 提示支持的地方。
whatsapp_send_message 规模上限(对费率限制的补充): 不能替代 mutating_tools_per_min,但它限制了一个发送可以携带多少文本——当自动化代理可能以其他方式粘贴巨大的blob(意外或通过提示注入)时非常有用。默认 1000 每次调用的Unicode字符;用以下方式覆盖 mcp.whatsapp_send_max_runes.
2FA/OTP编辑(哪些内容会被审查): 在坚持使用SQLite之前(因此在全文索引和从本地数据库读取MCP之前),服务器会运行 保守启发式 对消息文本进行审查,以确定它是否是一次性密码消息,如果是,则进行审查。
先决条件
- macOS (苹果硅或英特尔)
- 家酿 (用于安装依赖项)
- 去 (建造)
快速开始
-
克隆仓库
git clone https://github.com/bdombro/mcpyeahyouknowme.git cd mcpyeahyouknowme -
安装
./scripts/install.sh这将构建Go二进制文件,并将其复制到
/usr/local/bin/mcpyeahyouknowme,设置核心守护进程,并添加shell补全。 -
登录 (仅限第一次)
mcpyeahyouknowme whatsapp login使用WhatsApp应用程序扫描二维码。登录时将捕获初始历史同步。守护进程将从现在开始处理重新连接。
-
配置MCP服务器 在您的AI客户端中:
{ "mcpServers": { "whatsapp": { "command": "mcpyeahyouknowme", "args": ["mcp"] } } }- 克劳德桌面版:
~/Library/Application Support/Claude/claude_desktop_config.json - 光标:
~/.cursor/mcp.json
- 克劳德桌面版:
-
重新启动克劳德桌面/光标
Google套件设置
Google Suite使用带有PKCE的桌面OAuth客户端。谷歌仍然期待两者 GOOGLE_CLIENT_ID 和 GOOGLE_CLIENT_SECRET 在令牌交换期间,但二进制文件仍然可以在没有它们的情况下构建。如果在构建时缺少其中之一 gsuite 在使用这两个值重新生成之前,源标记为不可用。
-
Bootstrap谷歌云项目
just google-project-setup your-google-project-id这验证了
gcloud,选择项目,启用所需的API,创建受限的Places API密钥,并打印剩余的手动Google Cloud Console步骤。 -
完成Google Cloud控制台的手动步骤
- 打开 谷歌云控制台 并确认项目
- 打开 谷歌认证平台
- 配置品牌/应用程序信息
- 选择观众(
External对于公共应用程序,Internal仅限工作区使用) - 在应用程序未经验证时添加支持/联系电子邮件并测试用户
- 审查请求的范围
- 创建类型为的OAuth客户端 桌面应用
- 复制桌面应用程序 客户端ID 和 客户端密钥
桌面应用程序客户端密钥在已发布的macOS二进制文件中不是有意义的可信密钥,但谷歌目前在令牌交换期间仍需要它。
-
设置客户端凭据
export GOOGLE_CLIENT_ID='your-desktop-client-id' export GOOGLE_CLIENT_SECRET='your-desktop-client-secret'将它们添加到您的shell配置文件或放入
.env在建造之前,如果你想gsuite二进制文件中启用了源代码。 -
构建时位置API密钥 (可选)
just google-project-setup还将创建一个受限制的Places API密钥并将其写入.env作为GOOGLE_PLACE_API_KEY.当出现在just build,它使google_places_*用于实时业务和地址查找的MCP工具。 -
构建时勇敢搜索API密钥 (可选)
集
BRAVE_API_KEY在.env在构建之前,启用brave_search_*用于实时网络搜索和URL元数据查找的MCP工具。从 勇敢搜索API仪表板. -
验证并启用您想要的应用程序
mcpyeahyouknowme gsuite login这将打开您的浏览器进行OAuth授权,并将令牌存储在
~/.local/share/mcpyeahyouknowme/gsuite_token.json,将帐户电子邮件存储在~/.local/share/mcpyeahyouknowme/gsuite_email.txt,并提示您选择要启用的Google应用程序。应用程序开始禁用,直到您明确启用它们。 -
管理已启用的应用程序
mcpyeahyouknowme gsuite管理
8. **Reset Google Suite data** (optional)
```bash
mcpyeahyouknowme gsuite reset
这将删除令牌和同步的Google数据,然后禁用源,直到您再次登录。
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
BRAVE_API_KEY |
可选 | 构建时勇敢搜索API密钥,用于启用 brave_search_* 工具 |
GOOGLE_CLIENT_ID |
可选 | 来自谷歌云控制台的桌面OAuth客户端ID;仅当您需要时才需要 gsuite 来源可用 |
GOOGLE_CLIENT_SECRET |
可选 | 匹配桌面OAuth客户端密钥;仅当您需要时才需要 gsuite 来源可用 |
GOOGLE_PLACE_API_KEY |
可选 | Build-time Places API键,用于启用 google_places_* 工具 |
GOOGLE_PROJECT_ID |
可选 | 由使用 scripts/google-project-setup.sh / just google-project-setup |
管理守护进程
安装核心守护进程(登录时运行,自动重启)并对其进行管理:
mcpyeahyouknowme start
mcpyeahyouknowme stop
mcpyeahyouknowme restart
其他命令:
# Show status and data locations
mcpyeahyouknowme status
# Refresh the status view every 10 seconds
mcpyeahyouknowme status --live
# Wipe WhatsApp data and session (only WhatsApp)
mcpyeahyouknowme whatsapp reset
# Wipe Google Suite token and synced data
mcpyeahyouknowme gsuite reset
卸载
要完全删除mcpyeahyouknowme:
cd /path/to/mcpyeahyouknowme
./scripts/uninstall.sh
这将:
- 杀死所有正在运行的mcpyeahyouknowme进程
- 清理数据库锁文件
- 卸载并删除守护进程
- 删除数据目录(
~/.local/share/mcpyeahyouknowme) - 从以下位置移除壳体完井
~/.zshrc - 从中删除二进制文件
/usr/local/bin/mcpyeahyouknowme
故障排除
- 二维码未显示:重新启动CLI。检查您的终端是否支持QR渲染。
- 已登录:CLI会自动重新连接,无需二维码。
- 已达到设备限制:从手机上的WhatsApp中删除现有设备(设置>链接设备)。
- 没有消息加载:对于大型帐户,初始历史同步可能需要几分钟。历史记录仅在第一次配对时推送。如果您的数据库为空,请运行
mcpyeahyouknowme whatsapp login --relogin以重新配对并捕获初始同步。 - 不同步:运行
mcpyeahyouknowme whatsapp reset要擦除所有数据,则mcpyeahyouknowme whatsapp login重新验证。 - 会话已过期/405错误:运行
mcpyeahyouknowme whatsapp login --relogin清除过时的会话并重新配对。守护程序将自动重新启动。
有关其他Claude Desktop故障排除,请参阅 MCP文件.
config.json引用
路径: ~/.local/share/mcpyeahyouknowme/config.json (与SQLite数据库和 mcp-audit.log).
守护进程会随着时间的推移使此文件正常化:每个 注册源 得到a sources.<name> 即使在禁用时也可以输入,因此密钥可能会在配置源之前出现。这 mcp 块是可选的,由只读 mcpyeahyouknowme mcp 子流程。
完整参考(带注释的JSON,tsconfig样式)
重要提示: Go运行时使用严格 JSON — // 和 /* */ 不允许发表评论 在磁盘上的真实文件中。将下面的块视为文档:复制所需的结构和值, 删除所有注释行,然后保存。(有些编辑器可以在导出时将JSONC剥离为JSON。)
{
// --- sources: one object per integration (names are fixed) ---
"sources": {
"brave_search": {
// Whether this source is turned on in config. Live Brave tools also need
// BRAVE_API_KEY at build time; there is no API key stored here.
"enabled": false,
// When true, the core daemon runs source Reset() on its next loop, then
// tooling normally clears this flag. You rarely set it by hand.
// "reset": false,
// No "auth" blob for brave_search.
},
"browser_history": {
"enabled": false,
// "auth" selects which Chromium profile DB to snapshot (macOS).
// Typical values: "chrome", "brave". Use: mcpyeahyouknowme browser_history enable <browser>
"auth": {
"browser": "chrome"
}
},
"google_places": {
"enabled": false,
// Places needs GOOGLE_PLACE_API_KEY at build time; nothing stored under "auth".
},
"gsuite": {
"enabled": false,
// "auth" only holds per-app toggles. OAuth tokens live in gsuite_token.json
// next to this file (written by: mcpyeahyouknowme gsuite login).
"auth": {
"apps": {
"docs": false,
"sheets": false,
"gmail": false,
"calendar": false,
"tasks": false,
"contacts": false,
"slides": false
}
}
},
"notebook": {
"enabled": false,
// Local directories to index (markdown, PDF, images). Use:
// mcpyeahyouknowme notebook add <path> (populates dirs for you)
"auth": {
"dirs": []
}
},
"whatsapp": {
"enabled": false
// Pairing/session files live under the data directory; login sets enabled.
// No "auth" object in config.json for WhatsApp.
}
},
// --- mcp: optional; used only by `mcpyeahyouknowme mcp` (restart MCP to apply) ---
"mcp": {
// When true, no mutating tools are registered (no sends, downloads, etc.).
"read_only": false,
// Exact tool names to hide entirely, e.g. "whatsapp_send_message".
"disabled_tools": [],
// Per mutating tool name: max calls per sliding minute (default 10 if omitted or <= 0).
"mutating_tools_per_min": 10,
// Max Unicode runes/words per whatsapp_send_message body (default 1000 if omitted or <= 0).
"whatsapp_send_max_runes": 1000
}
}
