mcpField
L
Lintbase Mcp

Lintbase Mcp

ローカル
github.com/lintbase開発ツール314 週間前に更新

Lintbase Mcp について

LintBaseは、FirestoreとMongoDBの実データを調べ、開発者やコーディングエージェント向けのデータベース情報と診断を作成します。CLIでスキーマ情報を出力し、CIでスナップショットを比較して変更を検出できます。

主な機能

  1. 01実データのスキーマとフィールド分析
  2. 02AIコンテキストの出力
  3. 03スキーマスナップショットとCIチェック
  4. 04セキュリティとコストの診断
  5. 05FirestoreとMongoDBへの対応

活用シーン

  1. 01コーディングエージェントに現在のフィールド情報を提供
  2. 02CIでスキーマ変更を検出
  3. 03データベースのセキュリティとクエリリスクを確認

MCP 対応

別途提供されるlintbase-mcpサーバーは、MCPを通じてAIエージェントにFirestoreのリアルタイムなスキーマ情報を提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"lintbase": {
"command": "npx",
"args": [
"-y",
"lintbase"
]
}
}
}
起動コマンドnpx -y lintbase

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

パッケージ
npmlintbase

ツール

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

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

詳細

LintBase

AI コーディングエージェントのための信頼できる情報源。 LintBase は、データベースのスキーマ、セキュリティルール、アーキテクチャに関するリアルタイムの知識を AI エージェントに提供し、コードベースについての幻覚を防ぎます。

npx lintbase export-context firestore --key ./service-account.json

npm version npm downloads License: MIT


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-querylimit() を使わず、コレクション全体をスキャンするクエリ
missing-indexコレクション全体のスキャンにフォールバックするフィルターの組み合わせ
debug-collection一時データと思われるものが、クリーンアップされずに残っているコレクション
📐 スキーマの不整合
ルール検出内容
type-inconsistencyドキュメント間で型が異なるフィールド
missing-required-fieldドキュメントの 90%以上に存在する一方、一部には存在しないフィールド
nullable-idnull になることがある参照フィールド
⚡ パフォーマンス
ルール検出内容
deep-nesting3 階層を超えてネストされたドキュメントフィールド
large-documentFirestore の上限である 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

コメント

MCP は初めてですか?

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

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