peek
このREADMEのすべてのスクリーンショットは、単一のset_layout MCP呼び出しで生成されています —
apps/desktop/scripts/screenshot.mjsを参照。
peekは、MCPサーバーを兼ねるデスクトップデータベースGUIです。Claudeにテーブルを開くよう、クエリを実行するよう、または比較用にパネルを配置するよう依頼すると、それは目の前のウィンドウで実行されます。AIツールの呼び出しとあなた自身のクリックが、1つのコマンドチャネルを共有するからです。組み込みのチャットパネルはアプリ内でClaude Codeを実行するため、あなたが話しかけるエージェントは、自分が住んでいるウィンドウを操作します。
機能
🤝 人間とAIのための単一UI — すべてのクリックとすべてのMCPツール呼び出しは、同じバス上のコマンドです。シャドウ状態も同期ステップもありません
💬 Claude Code内蔵 — チャットパネルはACP経由でホストし、peek自身のMCPサーバーに接続します
🛠️ 16のMCPツール — 接続、スキーマのイントロスペクト、クエリ実行、ビューを開く、レイアウト制御、通知、ユーザーへの質問
🔒 サーバーによって強制される読み取り専用 — 読み取り専用トランザクションとフラグ。キーワードフィルタリングはどこにもありません
📎 データは添付したときだけAIに届く — それ以外の場合、クエリは最大20行をモデルに返します
📦 データベースはプラグイン — 6つのドライバが
~/.peek/packages/<id>/から読み込まれます。追加するということは、ディレクトリをインストールすることを意味します⚡ 100万行のスクロール — ドロップフレーム0、起動約0.5秒、バンドル6.3MB(パフォーマンス)
🔑 パスワードはOSのキーチェーンに保存 — ディスク上に平文はありません
データベース: PostgreSQL · MySQL · SQLite · Redis · Qdrant · Neo4j
Related MCP server: mcp-knowledgebase
インストール
Releasesからpeek-v0.0.1-macos-arm64.zipをダウンロードし、解凍してpeek.appをアプリケーションフォルダにドロップします。現時点ではApple Siliconのみ対応です。
このビルドはアドホック署名です(Developer IDはまだありません)。そのため、macOSは初回起動時にダウンロードしたアプリを「破損している」として拒否します。クォータニンフラグを一度クリアすれば、通常どおり開きます:
xattr -d com.apple.quarantine /Applications/peek.appまたは: システム設定 → プライバシーとセキュリティ → 「このまま開く」。署名・公証済みビルドが計画されています。
クイックスタート
要件: Node ≥ 22、pnpm 10.32.1(packageManagerで固定)、および接続先のデータベース。現時点ではmacOS / Apple Siliconでのみ開発・テストされています。
pnpm install
pnpm dev # opens the window; MCP server on port 7332
pnpm build # production bundles into apps/desktop/outアプリ内で: サイドバーでドライバを選択し、接続文字列を貼り付けて、ブラウズします。ハンドシェイクが完了した接続は自動的に保存されます(パスワードはOSのキーチェーンに保存されます)。テーブルは仮想化グリッドとして開き、SQLは⌘⏎でCodeMirrorエディタで実行され、パネルは⌘\ / ⌘⇧\で分割され、すべての結果ビューには実際のデッドラインに基づくキャンセルボタンがあります。
テスト
pnpm -r typecheck # strict TS across every package
pnpm -r test # 2567 tests; driver suites need real servers (see below)デスクトップスイートは純粋なロジックであり、何も必要としません。各ドライバスイートは、環境からターゲットを読み取り、サーバーに到達できない場合は自身をスキップする統合スイートです:
PEEK_TEST_PG_URL="postgresql://user@localhost:5432/your_db" \
PEEK_TEST_REDIS_URL="redis://localhost:6379" \
PEEK_TEST_QDRANT_URL="http://localhost:6333" \
PEEK_TEST_MYSQL_URL="mysql://root:pw@localhost:3306/peek_test" \
PEEK_TEST_NEO4J_URL="bolt://localhost:7687" PEEK_TEST_NEO4J_PASSWORD="…" \
pnpm -r test注意点: Redis / Qdrant / MySQL / SQLiteスイートは独自のフィクスチャを作成してクリーンアップします。PostgreSQLスイートは現在、特定の開発データベースに対してアサートします(自己プロビジョニングはTODOです)。Neo4jは常に明示的なパスワードが必要です。また、ビルド済みアプリのエンドツーエンドのスモークテスト(smoke-drivers.mjs)があり、設定されたすべてのドライバをMCP経由で駆動します。
Claude Codeから使う
peekは起動時にMCPサーバーを開始し(ループバックのみ、ベアラートークン認証)、エンドポイントを~/.peek/mcp.json(モード0600)に書き込みます。一度登録します:
claude mcp add peek --transport http http://127.0.0.1:7332/mcp \
--header "Authorization: Bearer <token from ~/.peek/mcp.json>"正確なコマンド(トークン入力済み)は、設定 → MCPエンドポイントでワンクリックで取得できます。ポートの変更やトークンのローテーションもそこで行います。
ツール
ツール | 目的 |
| 現在のUIを確認: レイアウト、タブ、結果ステータス、接続。行データは返しません。 |
| ドライバ、ステータス、機能を持つすべての接続。シークレットはマスクされます。 |
| データベース接続を開きます。 |
| 名前空間ツリーを展開します(db → schema → table)。 |
| ビューを画面に表示します: |
| ステートメントを実行します。AIは最初の20行と件数を受け取ります。完全な結果はUIに残ります。 |
| パネルツリー全体を1回の呼び出しで宣言します — 比較用に複数のビューを並べて表示します。 |
| ディバイダーをドラッグするように、1つの分割をリサイズします。 |
| 1つのビューを別のパネルに、タブまたは分割として移動します。 |
| バックグラウンドのタブを前面に持ってきます。 |
| 実行中のクエリを停止します。 |
| 外部からチャットパネルを操作: メッセージ送信、トランスクリプト読み取り、セッション管理。 |
| peekが最前面ウィンドウでなくても、ユーザーに通知します。 |
| ユーザーに多肢選択の質問をし、回答を待ちます。 |
完全な結果セットをモデルに渡すツールは、意図的に存在しません。
チャットパネル
人間が回答するまで一時停止するask呼び出し — エージェントは自分自身の質問に答えることはできません。
独自のクライアントを持ち込む必要はありません: peekはClaude Code自体をタブとしてホストします。組み込みエージェントは、ファイルツール、シェル、およびpeek自身以外のMCPサーバーなしで起動します — あなたのsettings.json、CLAUDE.md、または設定済みのMCPサーバーを継承せず、verify-chat-security.mjsが実際のエージェントに対してそれをチェックします。2つの設定(どちらもデフォルトでオフ)でオプトインできます: ファイル/コマンドツール、および独自のMCPサーバー。それぞれのスイッチの横にコストが説明されています — セキュリティモデルを参照。
セキュリティモデル
MCPサーバー: ループバックのみ、
Authorization: Bearer必須、Host/OriginをDNSリバインディングに対してチェック、トークンは定数時間で比較され、ログに記録されることはありません。読み取り専用: 可能な場合はデータベースサーバーによって強制されます(トランザクション、フラグ)。RedisおよびQdrantドライバは単に書き込みコマンドを発行しません。1つのギャップ: 独自の読み書きトランザクションを開く既存のストアドプロシージャ — 重要なものには読み取り専用のデータベースアカウントを使用してください。
プロセス分離: ドライバは接続ごとに1つの子プロセスで実行されます。詰まったクエリやクラッシュはウィンドウを落とすことができず、プロセスを強制終了することは無条件のキャンセルです。パッケージコードがメインプロセスで実行されることはありません。
パッケージは信頼され、サンドボックス化されません。 インストールするものは信頼するものです — VS Code拡張機能やMCPサーバーと同じ扱いです。peekはパッケージのマニフェスト形状を検証し、プロセスを分離し、環境から資格情報を除去しますが、署名チェックもサンドボックスもありません。詳細は設計ドキュメントにあります。
エージェントのファイルツールを有効にすることには実際のコストがあります:
~/.peek/mcp.jsonを読み取れるエージェントはベアラートークンを保持し、権限プロンプトは障壁ではなくなります。設定パネルは、スイッチがオンのときにこれを正確に説明します。
パフォーマンス
Apple M2 Max(macOS、120Hz Retina)で、生成された1,000,000行のSQLiteフィクスチャに対して、2つの再現可能なベンチマークスクリプト(bench-startup.mjs、bench-scroll.mjs)で測定:
シナリオ | 結果 |
起動 → ウィンドウ準備完了(ウォーム) | 中央値 518 ms |
1,000,000行のスクロール、600フレーム | 0 ドロップフレーム |
1,000,000行時のグリッド内DOM要素 | < 400(データではなくビューポートに制限) |
1,000,000行に対する | 2.1 s |
ビルド済みバンドル | 6.3 MB 合計 |
結果はバックプレッシャーとLRUキャッシュを備えたカラムナチャンクとしてストリーミングされ、仮想スクロールは手書きです。ChromiumがRetina解像度で約699,000行で要素の高さを静かにクランプするためです — peekのDOM寸法は行数から導出されません。
ステータスと制限事項
初期段階ですが本物です: 6つのデータベースすべてが接続、イントロスペクト、行のストリーミングを行います。上記のレイアウト、チャット、MCPサーフェス、パッケージシステムは実装されテストされています。pnpm buildはバンドルを生成し、package-mac.mjsはmacOSの.appを生成します。署名付きインストーラはまだありません。書き込みは、読み取り専用パスが完全に安定するまで意図的にスコープ外です。
既知の制限事項(詳細はdocs/PLAN.mdとdocs/design/にあります):
大規模なクエリは(設計上)約20万行で一時停止し、さらにスクロールするまで続行しません。約200MBのキャッシュから退避された行は、その場で再取得できません — クエリを再実行してください。
固定24pxの行高。大きな値はモーダルで開きます。
アクセシビリティはレイアウトレベルでは堅牢(ARIAタブリスト、ロービングタブインデックス、フォーカス管理)ですが、パネル本体の内部では最小限で、実際のスクリーンリーダーでの検証はされていません。
復元されたワークスペースはレイアウト、タブ、エディタテキストを再開しますが、クエリを再実行することはありません。
Qdrant: クエリキャンセルなし(APIに存在しないため — ボタンにその旨が表示されます)、テーブルヘッダーのソートはまだできません。
保存された資格情報はOSユーザーアカウントと同じくらいプライベートです。バイナリ署名は最初の公開ビルドで導入されます。
リポジトリレイアウト
peek/
├─ packages/
│ ├─ core/ # command schemas, workspace types, capability + chunk protocol, driver-host runtime
│ ├─ db-postgres/ # PostgreSQL driver
│ ├─ db-sql/ # MySQL + SQLite behind one dialect layer
│ ├─ db-redis/ # Redis driver
│ ├─ db-qdrant/ # Qdrant driver
│ └─ db-neo4j/ # Neo4j driver, plus the `graph` view kind
├─ apps/desktop/ # Electron app: main / preload / renderer, plus scripts/ (benchmarks, smoke tests)
└─ docs/ # PLAN.md (design record) and docs/design/ (per-change design docs)docs/PLAN.md は設計の正式な記録です — アーキテクチャの決定、
パフォーマンス予算、およびマイルストーン定義(PLAN.zh-CN.md は中国語の
原本)。変更ごとの設計ドキュメントは docs/design/ にあります。
ライセンス
MIT。 LICENSE を参照してください。
This server cannot be deployed
Maintenance
Related MCP Connectors
- dataOAuthco.thinair
PostgreSQL, MySQL, and SQL Server in one session. 26 read-only MCP tools for AI agents.
Let AI agents query data and act across all your business apps via MCP.
An agent-native database over MCP: shared, validated, structured records in every AI chat.
AI agents propose database changes as reviewable requests — no direct write access.
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceA read-only MCP server that enables AI agents to explore database schemas and execute safe queries on PostgreSQL and MySQL.-
- FlicenseAqualityDmaintenanceEnables AI agents to explore MySQL database schemas and execute read-only queries through a safe, MCP interface.6-
- AlicenseNot gradedqualityBmaintenanceProvides read-only access to databases for MCP-compatible AI tools, allowing schema exploration and SELECT queries without exposing credentials or risking data changes.80 npm3MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to analyze databases through MCP, including listing all tables and inspecting table structures.-