一个提供全面 Google Workspace 集成的 模型上下文协议(MCP)服务器,为您的个人 AI 助手提供金库级别的安全性。
使用 Next.js、TypeScript、Better Auth 和 Vercel 的 MCP SDK 构建,此服务器通过安全的 OAuth 2.1 身份验证和高级会话管理以及图数据库集成,实现对 Gmail、Google Drive、日历、表格、幻灯片和任务的自然语言控制。
VaultAssist 在 AI 助手与 Google Workspace 服务之间充当安全桥梁,通过金库保护的认证 API 实现无缝自动化和数据访问。服务器支持多个用户,每个用户的资料、会话和 Google Workspace 访问完全隔离。Better Auth 提供强大的用户会话管理,PostgreSQL 确保持久的按用户数据存储,而 图数据库 则在您的个人数据生态系统中实现智能的用户特定关系映射。
graph TB
subgraph "客户端层"
VSCode[VS Code MCP 客户端]
Other[其他 MCP 客户端]
end
subgraph "VaultAssist MCP 服务器 (Next.js)"
Auth[Better Auth<br/>OAuth 2.1 + MCP 插件]
Router[MCP 处理器<br/>Vercel SDK + 动态路由]
subgraph "工具注册表"
Gmail[Gmail 工具]
Drive[驱动工具]
Docs[文档工具]
Calendar[日历工具]
Sheets[表格工具]
Slides[幻灯片工具]
Tasks[任务工具]
Memory[记忆工具]
Sequential[顺序思维]
end
subgraph "核心服务"
OAuth[Google OAuth 客户端]
Schema[Zod 验证]
DB[数据库层]
GraphDB[图数据库<br/>关系和上下文]
SessionMgmt[高级会话<br/>管理]
end
end
subgraph "Google API"
GmailAPI[Gmail API]
DriveAPI[驱动 API]
DocsAPI[文档 API]
CalendarAPI[日历 API]
SheetsAPI[表格 API]
SlidesAPI[幻灯片 API]
TasksAPI[任务 API]
end
subgraph "基础设施"
PostgresDB[(PostgreSQL 数据库<br/>用户数据及会话)]
GraphStore[(图数据库<br/>关系和记忆)]
GoogleCloud[Google Cloud 控制台<br/>OAuth 2.1 凭据]
VercelSDK[Vercel MCP SDK<br/>& 库]
end
%% 客户端连接
VSCode --> Router
Other --> Router
%% 认证流程
Router --> Auth
Auth --> GoogleCloud
Auth --> DB
Auth --> SessionMgmt
DB --> PostgresDB
SessionMgmt --> GraphStore
%% 工具注册和执行
Router --> Gmail
Router --> Drive
Router --> Docs
Router --> Calendar
Router --> Sheets
Router --> Slides
Router --> Tasks
Router --> Memory
Router --> Sequential
%% 服务层与 MCP SDK 集成
Gmail --> OAuth
Drive --> OAuth
Docs --> OAuth
Calendar --> OAuth
Sheets --> OAuth
Slides --> OAuth
Tasks --> OAuth
Memory --> GraphDB
Sequential --> GraphDB
%% 外部 API 调用
OAuth --> GmailAPI
OAuth --> DriveAPI
OAuth --> DocsAPI
OAuth --> CalendarAPI
OAuth --> SheetsAPI
OAuth --> SlidesAPI
OAuth --> TasksAPI
%% 数据验证和 MCP SDK
Gmail --> Schema
Drive --> Schema
Docs --> Schema
Calendar --> Schema
Sheets --> Schema
Slides --> Schema
Tasks --> Schema
Memory --> Schema
Sequential --> Schema
%% MCP SDK 集成
Router --> VercelSDK
Schema --> VercelSDK
Auth --> VercelSDK
%% 图数据库关系
GraphDB --> PostgresDB
GraphDB --> GraphStore
%% 样式
classDef clientNodes fill:#e1f5fe,stroke:#01579b,stroke-width:2px,color:#000000
classDef serverNodes fill:#f3e5f5,stroke:#4a148c,stroke-width:2px,color:#000000
classDef apiNodes fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#000000
classDef infraNodes fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px,color:#000000
class VSCode,Other clientNodes
class Auth,Router,Gmail,Drive,Docs,Calendar,Sheets,Slides,Tasks,Memory,Sequential,OAuth,Schema,DB,GraphDB,SessionMgmt serverNodes
class GmailAPI,DriveAPI,DocsAPI,CalendarAPI,SheetsAPI,SlidesAPI,TasksAPI apiNodes
class PostgresDB,GraphStore,GoogleCloud,VercelSDK infraNodes
VaultAssist 设计用于安全的多用户操作。每个用户通过 OAuth 2.1 进行身份验证,并分配一个唯一的加密会话。所有 Google Workspace API 调用严格代表经过身份验证的用户执行,确保:
这种架构使 VaultAssist 能够安全地同时为多个用户提供服务,具有强烈的隐私和访问控制保证。
mcp-server/
├── src/
│ ├── app/
│ │ ├── api/[transport]/ # MCP 端点,带工具注册表
│ │ ├── auth/ # 身份验证页面
│ │ └── dashboard/ # 用户仪表板
│ ├── lib/
│ │ ├── auth.ts # Better Auth 配置
│ │ ├── db/ # 数据库模式和操作
│ │ └── toolset/google/ # Google API 实现
│ └── components/ # UI 组件
├── drizzle/ # 数据库迁移
└── package.json
https://github.com/user-attachments/assets/d0bf7f21-8044-4308-a029-1b8c13c439c9
git clone https://github.com/3xCaffeine/mcp-server.git
cd mcp-server
bun install # 或 npm install, pnpm install, yarn install
设置您的 PostgreSQL 数据库并配置环境变量:
# 复制环境模板
cp .env.example .env
http://localhost:3000/api/auth/callback/google.env# 生成并运行迁移
bun run drizzle:generate
bun run drizzle:migrate
# 可选:打开 Drizzle Studio 查看数据库
bun run drizzle:studio
# 启动开发服务器
bun dev
访问 http://localhost:3000/dashboard 以访问 Web 接口。
cd mcp-server/deployment/
docker compose up -d
打开 VS Code 命令面板 > MCP: 打开用户配置,并将以下内容粘贴到 mcp.json 配置中。
{
"servers": {
"google-workspace": {
"url": "https://mcp.rycerz.es:3000/api/mcp",
"type": "http"
}
},
"inputs": []
}
/auth 并使用 Google 登录| 工具 | 描述 |
|---|---|
search_gmail_emails | 使用 Gmail 查询语法搜索邮件 |
read_gmail_email | 通过消息 ID 读取完整邮件内容 |
send_gmail_email | 发送带有附件和格式化的邮件 |
draft_gmail_email | 创建邮件草稿 |
modify_gmail_email | 从邮件中添加/删除标签 |
delete_gmail_email | 永久删除邮件 |
list_gmail_labels | 列出所有 Gmail 标签 |
create_gmail_label | 创建自定义标签 |
update_gmail_label | 修改现有标签 |
delete_gmail_label | 删除自定义标签 |
get_or_create_gmail_label | 获取现有或创建新标签 |
batch_modify_gmail_emails | 批量标签操作 |
batch_delete_gmail_emails | 批量删除邮件 |
| 工具 | 描述 |
|---|---|
search_drive_files | 使用 Drive 查询语法搜索文件 |
get_drive_file_content | 读取文件内容(支持 Office 格式) |
list_drive_items | 列出目录中的文件和文件夹 |
create_drive_file | 从内容或 URL 创建文件 |
| 工具 | 描述 |
|---|---|
search_docs | 使用 Drive API 按名称搜索 Google 文档 |
get_doc_content | 检索 Google 文档或 Drive 文件(.docx 等)的内容 |
list_docs_in_folder | 列出特定 Drive 文件夹内的 Google 文档 |
create_doc | 创建新的 Google 文档,并可选插入初始内容 |
modify_doc_text | 修改 Google 文档中的文本 - 插入/替换文本并应用格式 |
find_and_replace_doc | 在整个 Google 文档中查找和替换文本 |
insert_doc_elements | 插入表格、列表或分页符等结构元素 |
insert_doc_image | 从 Drive 或 URL 将图像插入 Google 文档 |
update_doc_headers_footers | 更新 Google 文档中的页眉或页脚 |
batch_update_doc | 在单个原子批处理更新中执行多个文档操作 |
inspect_doc_structure | 查找安全插入点并理解文档结构 |
create_table_with_data | 创建表格并填充数据 |
debug_table_structure | 调试表格布局和单元格位置 |
| 工具 | 描述 |
|---|---|
list_calendars | 列出可访问的日历 |
get_events | 使用过滤器检索事件 |
create_event | 创建带有 Google Meet 和附件的事件 |
modify_event | 更新现有事件 |
delete_event | 删除事件 |
get_event | 获取详细事件信息 |
| 工具 | 描述 |
|---|---|
list_spreadsheets | 列出可访问的电子表格 |
get_spreadsheet_info | 获取电子表格元数据 |
read_sheet_values | 读取单元格范围 |
modify_sheet_values | 写入/更新/清除单元格 |
create_spreadsheet | 创建新的电子表格 |
create_sheet | 向现有文件添加工作表 |
| 工具 | 描述 | |------|