Lintbase Mcp について
LintBaseは、FirestoreとMongoDBの実データを調べ、開発者やコーディングエージェント向けのデータベース情報と診断を作成します。CLIでスキーマ情報を出力し、CIでスナップショットを比較して変更を検出できます。
主な機能
- 01実データのスキーマとフィールド分析
- 02AIコンテキストの出力
- 03スキーマスナップショットとCIチェック
- 04セキュリティとコストの診断
- 05FirestoreとMongoDBへの対応
活用シーン
- 01コーディングエージェントに現在のフィールド情報を提供
- 02CIでスキーマ変更を検出
- 03データベースのセキュリティとクエリリスクを確認
MCP 対応
別途提供されるlintbase-mcpサーバーは、MCPを通じてAIエージェントにFirestoreのリアルタイムなスキーマ情報を提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
LintBase
AI コーディングエージェントのための信頼できる情報源。 LintBase は、データベースのスキーマ、セキュリティルール、アーキテクチャに関するリアルタイムの知識を AI エージェントに提供し、コードベースについての幻覚を防ぎます。
npx lintbase export-context firestore --key ./service-account.json
LintBase を使う理由
開発者は常に、Cursor、Windsurf、Copilot Workspace、Claude Code などの AI ツールにコンテキストファイルを与えています。 エージェントがデータベースの実際のスキーマを理解していないと、本番環境で失敗するコードを書いてしまいます。
LintBase はその橋渡しをします。データベースに直接接続し、稼働中のドキュメントの信頼できる情報を読み取り、AI に最適化された構造化コンテキストを生成します。
- 🤖 AI の幻覚を防止 — 正確なスキーマ、フィールドの存在率、型を生成します。
- 📐 スキーマのドリフトを検出 — スキーマスナップショットに対する
lintbase checkで CI を保護します。 - 🔒 セキュリティコンテキスト — AI がクエリを書く前に、不足しているルールや露出した PII を明らかにします。
- 💸 コストを考慮 — 200 万件以上のドキュメントを含むコレクションに対する、上限のないクエリを AI が書くのを防ぎます。
- 🍃 あらゆる NoSQL に対応 — Firestore と MongoDB で手軽に利用できます。
エージェントにコードを読ませるだけではだめですか?
ドキュメントデータベースでは、コードが実態を反映していないためです。実際のスキーマは、稼働中のドキュメントに含まれている内容そのものであり、中途半端なマイグレーション、フィールド名の変更、急いで書かれた過去の AI セッションのたびに、コードとの乖離が生じます。TypeScript のインターフェースからスキーマを推測するエージェントは、もはや存在しないデータベースに対して、もっともらしいクエリを書いてしまいます。その失敗は気づかれにくく、空の結果、未定義の値、新旧のフィールド形式の併存として現れます。LintBase が読むのはコードではなくドキュメントです。
制限事項(正直にお伝えします)
- 対応しているのは Firestore と MongoDB のみです。明らかに足りない Postgres は次の対応対象です。
- 大規模なコレクションは全件スキャンではなくサンプリングされます。数百万件のドキュメントを含むコレクションでは、存在率は推定値です。
- MCP サーバーは CLI より新しいため、まずはこちらで粗削りな部分が見つかる可能性があります。
🤖 AI コンテキストのエクスポート(Cursor、Claude、Windsurf 向け)
AI エージェントに完璧なデータベース知識を与える最速の方法です。
npx lintbase export-context firestore --key ./service-account.json
出力:
/lintbase-context/
├── database-schema.md
├── collections.md
├── security-rules.md
├── architecture.md
└── risk-report.md
lintbase-context フォルダーを AI のコンテキストウィンドウに追加するか、.cursorrules で参照してください。これで、エージェントはドリフトのない完璧なデータベースクエリを書けるようになります。
クイックスタート
1. サービスアカウントキーを取得する
Firebase Console → Project Settings → Service Accounts → Generate new private key
JSON ファイルを保存します。git に絶対にコミットしないでください。
2. CI パイプラインで保護する(スキーマのドリフト)
LintBase は「スキーマのバージョン管理」として機能します。スナップショットコマンドを実行して、ベースラインを作成します。
npx lintbase snapshot firestore --key ./service-account.json
.lintbase/schema.json をリポジトリにコミットします。次に、CI/CD パイプライン(GitHub Actions、GitLab CI)にチェックコマンドを追加します。
npx lintbase check firestore --key ./service-account.json --fail-on error
クエリまたはデプロイによって重要なフィールドが誤って削除されたり、型(例:string から number)が変更されたりすると、CI ビルドはただちに失敗します。
3. 全般的なスキャンを実行する
npx lintbase scan firestore --key ./service-account.json
ターミナルに完全なレポートが表示されます。
LintBase — Firestore Scan
─────────────────────────────────────────────
Collections scanned: 12
Documents sampled: 847
Issues found: 23 (4 errors · 11 warnings · 8 infos)
Risk score: 67 / 100 [HIGH]
ERRORS
✖ users no-auth-check Documents readable without authentication
✖ orders missing-index Query on `status` + `createdAt` has no composite index
✖ debug_logs large-collection Collection has 2.4M docs — estimated $340/mo in reads
WARNINGS
⚠ products schema-drift Field `price` found as both Number and String
⚠ sessions ttl-missing No expiry field — stale docs accumulate indefinitely
...
3. ダッシュボードに保存する(任意)
lintbase.com でデータベースの健全性を継続的に追跡できます。
npx lintbase scan firestore \
--key ./service-account.json \
--save https://www.lintbase.com \
--token <your-api-token>
トークンは lintbase.com/dashboard/settings で取得してください。
対応データベース
- Firestore:
npx lintbase scan firestore --key ./sa.json - MongoDB:
npx lintbase scan mongodb --uri mongodb+srv://user:[email protected]/test
🤖 AI エージェントとの連携(MCP)
Cursor、Claude Desktop、または Windsurfをお使いですか?lintbase-mcp をインストールすると、AI エージェントに Firestore スキーマのリアルタイムのコンテキストを提供でき、フィールド名を誤って生成するのを防げます。
.cursor/mcp.json に追加します:
{
"mcpServers": {
"lintbase": {
"command": "npx",
"args": ["-y", "lintbase-mcp"]
}
}
}
これで、AI に *「users にフィールドを追加して」*と頼むと、コードを1行でも書く前に実際のスキーマを確認します。
検出できる問題
🔒 セキュリティ
| ルール | 検出内容 |
|---|---|
no-auth-check | 認証なしで読み書きできるコレクション |
exposed-pii | 暗号化のマーカーがないメールアドレス、電話番号、SSN のフィールド |
world-readable | セキュリティルールの許可範囲が広すぎるドキュメント |
💸 コスト
| ルール | 検出内容 |
|---|---|
large-collection | ドキュメントが 100k 件以上あり、読み取りコストが高いコレクション |
unbounded-query | limit() を使わず、コレクション全体をスキャンするクエリ |
missing-index | コレクション全体のスキャンにフォールバックするフィルターの組み合わせ |
debug-collection | 一時データと思われるものが、クリーンアップされずに残っているコレクション |
📐 スキーマの不整合
| ルール | 検出内容 |
|---|---|
type-inconsistency | ドキュメント間で型が異なるフィールド |
missing-required-field | ドキュメントの 90%以上に存在する一方、一部には存在しないフィールド |
nullable-id | null になることがある参照フィールド |
⚡ パフォーマンス
| ルール | 検出内容 |
|---|---|
deep-nesting | 3 階層を超えてネストされたドキュメントフィールド |
large-document | Firestore の上限である 1MB に近づいているドキュメント |
hot-document | 多数のユーザーが同時に更新する単一のドキュメント |
no-pagination | 標準的なページネーション用フィールドがないコレクション |
オプション
lintbase <command> <database> [options]
Commands:
scan <database> Scan a database and print diagnostic report
export-context <database> Export schema to markdown/JSON for AI agents
snapshot <database> Generate local schema snapshot for CI comparison
check <database> Run in headless CI mode (fails on schema drift)
Options:
--key <path> Path to Firebase service account JSON
--uri <uri> MongoDB connection URI
--limit <n> Max documents to sample per collection [default: 100]
--max-depth <n> Firestore: tiers to recurse into subcollections
(1 = top-level only) [default: 2]
--fail-on <lvl> Fail pipeline if issues exceed severity (error, warning, info)
--save <url> Dashboard URL to save results
--token <token> API token for dashboard (from lintbase.com)
--collections Comma-separated list of collections to scan
-h, --help Show help
ダッシュボード
CLI は永久に無料です。ダッシュボードでは、スキャン結果をインタラクティブなスキーママップとして視覚化できます。認証情報がマシンの外に送信されることはありません。
--save で利用できる Pro の機能:
- ⬡ スキーママップ — 各コレクションをドラッグ可能なカードで表示し、実際のフィールド名、型、存在率、問題バッジを確認できます
- ◎ ヘルスレーダー — スキーマ、セキュリティ、パフォーマンス、コストの各軸でコレクションごとのレーダーチャートを表示します
- ⊕ 優先度マトリクス — 影響度と修正の容易さを示す 2×2 のバブルチャートで、最初に修正すべき項目がわかります
- ≋ 不整合のタイムライン — スキャン履歴を保存し、時間の経過に伴うスキーマアーキテクチャを再現できます。
CLI のローカルツール: 100%無料 · Pro: 月額 $39 — 履歴、ダッシュボード、チームで共有できるワークフローが無制限。
セキュリティ
- サービスアカウントキーがマシンの外に出ることはありません。ローカルでのみ読み取られます
- ドキュメントのサンプリング数には
--limit(デフォルトは 100)による上限が設けられており、意図しない読み取りコストを防ぎます --saveフラグで送信されるのはスキャンの概要と問題の一覧のみで、生のドキュメントデータは送信されません
ライセンス
MIT © Mamadou Dia
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。