个人数据同步工具

MyData是一个将个人数据从多种服务同步到本地SQLite数据库的工具,支持通过SQL查询数据或使用Claude进行分析。

  • by bibekg
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 bibekg/mydata

使用说明

MyData-个人数据中心

将来自各种服务的个人数据同步到本地SQLite数据库中。使用SQL查询您的数据,或让Claude通过MCP工具帮助您分析数据。

支持的集成

  • 午餐费 -交易、类别、资产、经常性项目
  • 斯特拉瓦 -活动(跑步、骑行、游泳等)

设置

1.安装依赖项

npm install
npm run build

2.配置环境变量

# Lunch Money - Get your API key from https://my.lunchmoney.app/developers
export LUNCHMONEY_API_KEY=your_api_key

# Strava - Create an app at https://www.strava.com/settings/api
export STRAVA_CLIENT_ID=your_client_id
export STRAVA_CLIENT_SECRET=your_client_secret

# Hevy
export HEVY_API_KEY=

3.使用OAuth服务进行身份验证

# Start OAuth flow for Strava
npm start -- auth strava

CLI使用情况

# Sync all configured integrations
npm start -- sync

# Sync specific integration
npm start -- sync lunchmoney
npm start -- sync strava

# Query the database
npm start -- query "SELECT * FROM lm_transactions LIMIT 10"

# Check status
npm start -- status

MCP 服务器

添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "mydata": {
      "command": "node",
      "args": ["/path/to/mydata/dist/mcp-server.js"],
      "env": {
        "MYDATA_DB_PATH": "/path/to/mydata/data/mydata.db"
      }
    }
  }
}

可用的MCP工具

  • query_database -对数据执行SQL查询
  • list_tables -显示所有表及其模式
  • describe_table -获取特定表的详细架构
  • get_sync_status -显示每次集成的最后同步时间

数据存储

所有数据都存储在本地SQLite数据库中 ./data/mydata.db。默认情况下,此文件被忽略。