项目简介
DataDam是一个利用Model Context Protocol (MCP) 的个人数据服务器,旨在帮助大型语言模型 (LLM) 获取和管理用户的个人上下文信息。它支持HTTP流式和Stdio两种连接方式,并使用Supabase作为后端数据库。通过DataDam,您的AI工具可以自动检索和存储个人信息,从而提供更个性化、更准确的回答。
主要功能点
- 个人数据存储与管理: 可以创建、更新、删除和分类您的个人数据,例如联系人、书籍、兴趣、基本信息等。
- 智能搜索与提取: LLM可以根据关键词搜索特定数据点,或按类别和标签提取相关数据列表。
- 自动捕获信息: 服务器设计为“主动捕获”模式,当用户在对话中提及个人信息时,AI工具能自动识别并存储。
- 多连接支持: 提供HTTP流式连接(适用于云部署、多客户端、Web AI工具)和Stdio连接(适用于本地开发、单客户端、桌面AI应用)。
- ChatGPT专用接口: 针对ChatGPT提供了一个专门的工具集(搜索和获取),以实现引用友好的搜索结果。
- 动态分类: 个人数据可按多种类别进行组织,并且这些类别是动态可配置的。
安装步骤
- 克隆仓库:
git clone https://github.com/KennethLeeJE8/datadam_mcp.git && cd datadam_mcp - 安装依赖:
npm install - 编译代码:
npm run build - Supabase数据库设置:
- 前往 Supabase官网 创建Supabase账户并创建一个新项目。
- 将仓库中 'src/database/schema.sql' 文件的完整内容复制到Supabase仪表板的SQL编辑器中,然后运行以创建必要的数据库表和函数。
- 配置环境变量:
- 在项目根目录创建 '.env' 文件(可以复制 '.env.example'):'cp .env.example .env'
- 编辑 '.env' 文件,填入您的Supabase项目URL ('SUPABASE_URL') 和服务角色密钥 ('SUPABASE_SERVICE_ROLE_KEY')。这些信息可在Supabase仪表板的“项目设置” -> “API”页面找到。
服务器配置 (MCP客户端如何连接到此服务器)
MCP客户端(如Claude Desktop, Cursor, ChatGPT等)需要配置服务器的连接信息才能与其通信。以下是两种主要连接方式的配置说明:
Stdio 连接 (适用于本地开发或桌面应用)
如果您的MCP客户端支持通过命令行启动服务器进程,您需要在客户端的MCP配置中指定以下信息:
- 服务器名称 ('server name'): 为您的服务器指定一个唯一的名称,例如 'dataDamLocal'。
- 启动命令 ('command'): 通常是 'node',用于运行JavaScript文件。
- 命令参数 ('args'): 一个数组,包含要运行的服务器脚本文件路径,例如 '["path/to/datadam_mcp/server.js"]'。请将 'path/to/datadam_mcp' 替换为您本地克隆仓库的实际路径。
- 环境变量 ('env'): 包含 'SUPABASE_URL' 和 'SUPABASE_SERVICE_ROLE_KEY' 的键值对。这些是服务器连接Supabase数据库所必需的凭据。
示例客户端配置结构(通常是JSON格式):
{ "mcpServers": { "dataDamLocal": { "command": "node", "args": ["<您本地仓库的路径>/server.js"], "env": { "SUPABASE_URL": "您的Supabase项目URL", "SUPABASE_SERVICE_ROLE_KEY": "您的Supabase服务角色密钥" } } } }
请注意替换 'command'、'args' 和 'env' 中的占位符为您的实际信息。
HTTP 连接 (适用于云部署或Web AI工具)
首先,您需要将DataDam部署到云服务(例如Render)。部署成功后,您将获得一个可访问的URL。然后,在您的MCP客户端中配置:
- 服务器名称 ('server name'): 为您的服务器指定一个唯一的名称,例如 'dataDamCloud'。
- 服务器URL ('url'): 部署后的HTTP接口地址。
- 主要MCP接口: 'https://<您的部署URL>/mcp'
- ChatGPT专用接口: 'https://<您的部署URL>/chatgpt_mcp'
- 传输协议 ('transport'): 通常是 'http' 或 'https'。
示例客户端配置结构(通常是JSON格式):
{ "mcpServers": { "dataDamCloud": { "url": "https://<您的部署URL>/mcp", "transport": "http" } } }
请将 '<您的部署URL>' 替换为您在Render等云平台部署后获得的实际URL。
基本使用方法
- 启动服务器:
- Stdio模式 (本地测试): 在项目根目录运行 'npm run inspector:stdio'。在弹出的MCP Inspector工具中,选择 "stdio" 作为传输协议,并在“Arguments”字段中填入 'server.js',然后点击“Connect”。
- HTTP模式 (部署后): 在命令行运行 'npm run inspector:http'。在MCP Inspector中,将“Server URL”设置为您部署后的HTTP URL(例如 'http://<您的部署URL>/mcp'),选择 "HTTP" 作为传输协议,然后点击“Connect”。
- 与AI工具交互:
- 检索信息: 在与LLM对话时,提及 "我的 [类别名称]"(例如 "我的联系人"),或使用具体搜索词(例如 "查找John的邮箱"),AI工具将调用服务器中注册的 'datadam_search_personal_data' 或 'datadam_extract_personal_data' 工具来获取个人数据。
- 存储信息: 当您在对话中分享个人信息(例如 "我的邮箱是 [email protected]" 或 "我住在波士顿")时,AI工具会通过服务器的 'datadam_create_personal_data' 工具自动捕获并存储这些数据。
- 更新/删除信息: 当您需要修改或删除已存储的信息时,可以通过相应的提示词触发 'datadam_update_personal_data' 或 'datadam_delete_personal_data' 工具。
- 查看可用类别: AI工具可以查询 'data://categories' 资源来获取当前所有可用的个人数据类别及其描述。
信息
分类
AI与计算