mcpField
L
LegacyShield

LegacyShield

ローカル
github.com/stephenballot-aiファイル・ストレージ01 週間前に更新

LegacyShield について

Legacy Shieldは、重要書類を保管し、家族や親しい人の緊急アクセスを準備したい人向けのデジタル保管庫です。ファイルはブラウザー内で暗号化され、インフラはEU域内で運用されます。

主な機能

  1. 01ブラウザー内でのファイル暗号化
  2. 02読み取り専用の緊急アクセス
  3. 03PDF・画像・文書ビューアー
  4. 04カテゴリ・タグ・お気に入り
  5. 05有効期限の追跡
  6. 06EU域内のインフラ

活用シーン

  1. 01パスポートや保険証書の保管
  2. 02遺言書や不動産権利証の保管
  3. 03家族や親しい人の文書アクセス準備

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"stephenballot-ai": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"compose"
]
}
}
}
起動コマンドdocker run -i --rm compose

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocicompose

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Legacy Shield

緊急アクセス機能を備えた、重要書類のための安全なデジタル保管庫。ホスティングは100%ヨーロッパです。

Legacy Shield は、パスポート、遺言書、保険証書、不動産権利書など、最も重要なファイルを保管するために設計された、プライバシーを最優先する書類保管庫です。大切な人が緊急時にアクセスできる機能を標準搭載しています。一般的なクラウドストレージとは異なり、Legacy Shield はクライアント側の暗号化とヨーロッパ限定のインフラを使用し、最大限のプライバシーとセキュリティを確保します。

🌟 主な機能

  • 🔐 ゼロ知識暗号化:アップロード前にブラウザー内でファイルを暗号化します
  • 🚨 緊急アクセス:大切な人が解除フレーズを使って保管庫にアクセスできます(読み取り専用)
  • 🇪🇺 欧州のデータ主権:インフラは100%EU内(ドイツのHetznerでホスティング)
  • 📱 書類ビューアー:PDF、画像、書類をブラウザー内で表示できます
  • 🏷️ スマート整理:カテゴリー、タグ、お気に入り、期限の追跡
  • ✅ GDPRネイティブ:プライバシーを最優先した設計で、標準で準拠しています
  • 🛡️ BitAtlasを採用:BitAtlas のゼロ知識暗号化レイヤーを、すべてのファイル保管と鍵管理に使用しています。

🏗️ アーキテクチャ

モノレポの構成:

legacy-shield/
├── packages/
│   ├── web/          # Next.js frontend (React + TypeScript)
│   ├── api/          # Express backend (Node.js + TypeScript)
│   └── shared/       # Shared types and utilities
├── infrastructure/   # Deployment configs
├── docker-compose.yml
├── product-spec.md   # Product specification
└── architecture-spec.md  # Technical architecture

技術スタック:

  • フロントエンド:Next.js 14、TypeScript、TailwindCSS、Web Crypto API
  • バックエンド:Node.js、Express、Prisma ORM、PostgreSQL
  • ストレージ:Hetzner Object Storage(S3互換)
  • ホスティング:Hetzner Cloud(ドイツ)
  • 決済:Stripe

🚀 クイックスタート

前提条件
  • Node.js 20+ と npm 10+
  • Docker と Docker Compose
  • Git
1. クローンしてインストール
cd /Users/stephenballot/Documents/LegacyShield
npm install
2. インフラを起動
# Start PostgreSQL, Redis, and MinIO (local S3)
docker compose up -d

# Verify services are running
docker ps

注:ショートカットとして npm run docker:dev も使用できます。

3. 環境を設定
# Copy example environment file
cp .env.example .env

# Edit .env with your values (defaults work for local development)
4. データベースを初期化
cd packages/api

# Generate Prisma Client
npm run db:generate

# Run database migrations
DATABASE_URL="postgresql://legacyshield:devpassword@localhost:5432/legacyshield_dev" npm run db:migrate

# Optional: seed with test data
npm run db:seed

cd ../..

注:Prisma はルートの .env ファイルを自動的に読み込まないため、DATABASE_URL を指定する必要があります。詳細は GETTING_STARTED.md を参照してください。

5. 開発サーバーを起動
# Start both frontend and backend
npm run dev

# Or start individually:
npm run dev:web    # Frontend at http://localhost:3000
npm run dev:api    # Backend at http://localhost:4000
6. アプリケーションにアクセス

📚 開発

利用可能なスクリプト
# Development
npm run dev              # Start all services
npm run dev:web          # Start frontend only
npm run dev:api          # Start backend only

# Building
npm run build            # Build all packages
npm run build:web        # Build frontend
npm run build:api        # Build backend

# Testing
npm run test             # Run all tests
npm run lint             # Lint all packages
npm run type-check       # TypeScript type checking

# Database
cd packages/api
npm run db:migrate       # Run migrations
npm run db:seed          # Seed database
npm run db:studio        # Open Prisma Studio
npm run db:reset         # Reset database

# Docker
docker compose up -d     # Start Docker services
docker compose down      # Stop Docker services
docker compose logs -f   # View Docker logs

ヒント:詳しいセットアップ手順は GETTING_STARTED.md を参照してください。

プロジェクト構成
packages/
├── web/                          # Frontend (Next.js)
│   ├── src/
│   │   ├── app/                  # Next.js App Router
│   │   │   ├── (auth)/           # Auth pages (login, register)
│   │   │   ├── (dashboard)/      # Protected dashboard pages
│   │   │   └── emergency-access/ # Public emergency portal
│   │   ├── components/           # React components
│   │   ├── lib/
│   │   │   ├── crypto/           # Client-side encryption
│   │   │   ├── api/              # API client
│   │   │   └── utils/            # Utilities
│   │   ├── hooks/                # Custom React hooks
│   │   ├── store/                # Zustand stores
│   │   └── types/                # TypeScript types
│   └── package.json
│
├── api/                          # Backend (Express)
│   ├── src/
│   │   ├── routes/               # API routes
│   │   ├── middleware/           # Express middleware
│   │   ├── services/             # Business logic
│   │   ├── models/               # Data models
│   │   ├── jobs/                 # Background jobs
│   │   ├── utils/                # Utilities
│   │   └── server.ts             # Main server file
│   ├── prisma/
│   │   ├── schema.prisma         # Database schema
│   │   └── migrations/           # Database migrations
│   └── package.json
│
└── shared/                       # Shared code
    ├── src/
    │   ├── types/                # Shared TypeScript types
    │   ├── constants/            # Shared constants
    │   └── utils/                # Shared utilities
    └── package.json

🔒 セキュリティ

Legacy Shield はゼロ知識アーキテクチャを採用しています。

  1. クライアント側の暗号化:アップロード前に、すべてのファイルをブラウザー内で暗号化します
  2. 鍵の導出:PBKDF2(100k回の反復)を使って、パスワードからマスターキーを導出します
  3. ファイルごとの鍵:各ファイルを固有のAES-256-GCM鍵で暗号化します
  4. 二重鍵システム:ファイルを所有者用の鍵と緊急用の鍵の両方で暗号化します
  5. 平文の保存なし:サーバーが暗号化されていないファイルや鍵を目にすることはありません
  6. 2FA必須:すべてのユーザーに二要素認証が必要です
暗号化の流れ
Password → PBKDF2 → Master Key → Encrypts file keys → AES-256-GCM → Encrypted file
                                                                           ↓
                                                              Hetzner Object Storage (Germany)

🇪🇺 欧州のデータ主権

すべてのインフラは欧州連合内のみでホスティングされます。

  • コンピューティング:Hetzner Cloud(ドイツ、ファルケンシュタイン)
  • データベース:Hetzner Managed PostgreSQL(ドイツ)
  • ストレージ:Hetzner Object Storage(ドイツ)
  • バックアップ:ニュルンベルク(ドイツ)への自動バックアップ

データが欧州域外に出ることはなく、以下によって保護されています。

  • GDPR(一般データ保護規則)
  • ドイツのBDSG(連邦データ保護法)
  • 米国のCLOUD Actの管轄対象外

📖 ドキュメント

🧪 テスト

# Run all tests
npm run test

# Run tests for specific package
npm run test --workspace=web
npm run test --workspace=api

# Run tests in watch mode
npm run test:watch --workspace=web

# Run e2e tests
npm run test:e2e

🚀 デプロイ

本番環境へのデプロイ(Hetzner Cloud)
  1. インフラストラクチャのセットアップ:infrastructure/README.mdを参照してください
  2. 環境変数:本番環境用の.envに実際の認証情報を設定してください
  3. データベースのマイグレーション:本番データベースでマイグレーションを実行してください
  4. デプロイ:GitHub Actionsまたは手動でデプロイしてください
# Build for production
npm run build

# Deploy to Hetzner (manual)
# See infrastructure/deploy.sh
CI/CD

GitHub Actionsのワークフローでは、次の処理が自動的に行われます。

  • PRごとにテストを実行
  • developブランチへの変更時にビルドしてステージング環境にデプロイ
  • mainブランチへの変更時にビルドして本番環境にデプロイ

🤝 コントリビューション

これは非公開プロジェクトです。開発チームの方は、次の手順に従ってください。

  1. フィーチャーブランチを作成します:git checkout -b feature/your-feature
  2. 変更を加えてコミットします:git commit -m "Add your feature"
  3. ブランチをプッシュします:git push origin feature/your-feature
  4. GitHubでプルリクエストを作成します
コード規約
  • TypeScript:厳格モードを有効化
  • Lint:Airbnb設定のESLintを使用
  • フォーマット:Prettierを使用(コミット時に自動実行)
  • コミット:Conventional Commits形式

📊 料金

  • 無料プラン:ドキュメント15件、緊急連絡先1件
  • Proプラン:月額$10、または買い切り$500
    • ドキュメント100件
    • 緊急連絡先5件
    • 高度な機能(有効期限の追跡、共有、監査ログ)

📄 ライセンス

Copyright © 2026 Legacy Shield. All rights reserved.

これはプロプライエタリソフトウェアです。無断での複製または配布は禁止されています。

🆘 サポート

  • ドキュメント:ルートディレクトリの仕様ファイルを参照してください
  • 問題報告:GitHub Issues(非公開リポジトリ)
  • メール:[email protected]

ヨーロッパで❤️を込めて開発。あなたのデータ、あなたのプライバシー、あなたのレガシー。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。