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 Server for Database
インストール
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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage and query SQLite databases through MCP tools, supporting CRUD operations, schema management, and saved views.4MIT
- FlicenseNot gradedqualityFmaintenanceA read-only MCP server that enables AI agents to explore database schemas and execute safe queries on PostgreSQL and MySQL.
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to explore MySQL database schemas and execute read-only queries through a safe, MCP interface.
- 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.923MIT
Related MCP Connectors
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
Read-only Remote MCP for externally grounded AI agent trust receipts.
GibsonAI MCP server: manage your databases with natural language
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Gyangu/peek-viewer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server