「TablePlusは良いけれど、クローズドソースなのが引っかかる」——TableProは、その不満をそのまま設計方針にしたmacOSネイティブのオープンソースデータベースクライアントだ。tableproという名前で検索すると公式サイトとGitHubリポジトリが並ぶが、日本語の実測レポートはほとんど無い。この記事ではv0.69.0のバイナリを実際にダウンロードし、起動直後のメモリ・同梱されているMCPサーバー・対応データベース数・AGPLv3と有償ライセンスの境界を、手元のmacOSで測って確かめた。
この記事のポイント(30秒でわかるTablePro)
・正体:Swift製のmacOS/iOSネイティブDBクライアント。★5,676・AGPL-3.0・2025-12-17開始(数値は2026-09-01時点)
・実測:起動直後のRSSは40.9MB(READMEの「idle around 80 MB」より軽い)。Electron・JVM・JSランタイムは1つも同梱していない
・対応DB:READMEは20種と書くが、公式プラグインレジストリの実データは26種(組み込み8+プラグイン18)
・MCP:tablepro-mcp を同梱するが単体では起動できず、本体アプリの起動とMCP有効化が前提
・弱点:日本語UIは無い。Linuxは「プロトタイプ、インストールできるものは無い」、Windowsは非対応
記事の訂正について:本記事の2026-03-26公開版は、TableProを「React/Vue向けのExcelライクなテーブル編集UIコンポーネント(MITライセンス・約45KB)」として紹介していました。これは対象リポジトリの取り違えによる誤りです。
TableProApp/TableProは当初からSwift製のデータベースクライアントであり、JavaScriptライブラリではありません。2026-09-01に全面的に書き直し、記述はすべて公式リポジトリと実機検証に基づくものへ差し替えました。
AIエージェントに開発作業を任せる流れ全体を先に押さえたい場合は、AI自動化ツール|ノーコードからコードまで2026年版の比較と選び方を先に読むと、本記事で扱うMCPサーバー同梱の位置づけがつかみやすい。
TableProとは——「ネイティブ・高速・OSS」を同時に満たすDBクライアント
READMEの冒頭は率直だ。「TablePro is what I wanted TablePlus to be: native, fast, open source.(TableProは、私がTablePlusにこうあってほしかったもの——ネイティブで、速くて、オープンソース)」。この一文が製品の輪郭をほぼ説明している。
作者が整理する既存の選択肢は3つで、TableProはその4つ目の枠を埋めるものとして位置づけられている。
| 分類 | 代表例 | 多DB対応 | ネイティブ | OSS |
|---|---|---|---|---|
| 単一DB・OSS | Sequel Ace(MySQL専用)、Postico(PostgreSQL専用) | ✗ | ○ | ○ |
| 多DB・クローズド | TablePlus | ○ | ○ | ✗ |
| 多DB・非ネイティブ | DBeaver(JVM)、Beekeeper Studio・DBGate(Electron) | ○ | ✗ | ○ |
| TablePro | — | ○ | ○ | ○ |
対応プラットフォームはREADMEの表がそのまま実情を示している。macOS 14+ と iOS/iPadOS 18+ が Stable、Linuxは「Prototype, nothing to install yet(プロトタイプ、まだインストールできるものは無い)」、Windowsは「No」。現時点ではmacOS/iOS専用ツールと考えて差し支えない。
・開始が新しい:リポジトリ作成は2025-12-17。1年経たずに★5,676・fork 378まで伸びている
・リリース間隔が短い:最新はv0.69.0(2026-08-27公開)。バージョン番号の刻みから分かる通り、小刻みに出し続けている
・開発は現役:既定ブランチへの最新pushは2026-08-31。スター数だけでなく更新の頻度も生きているタイプのプロジェクトだ
実測:インストールから起動直後のメモリまで
READMEは「Cold start under 1 second, idle around 80 MB RAM」と書いている。この種の公称値は自分で測らないと意味がないので、公式リリースの TablePro-0.69.0-arm64.dmg(25MB)をダウンロードし、マウントしたまま起動して測った。
読者が自分の環境で同じことを確かめるなら、次の3行で足りる。
# 1. .app バンドルの実サイズと実行ファイルを見る
du -sh /Applications/TablePro.app
ls -la /Applications/TablePro.app/Contents/MacOS/
# 2. 起動直後の常駐メモリを3秒おきに3回サンプリング
PID=$(pgrep -x TablePro)
for i in 1 2 3; do ps -o rss=,pcpu= -p "$PID" | awk '{printf "rss=%.1fMB cpu=%s\n", $1/1024, $2}'; sleep 3; done
# 3. 実メモリフットプリント(macOS標準ツール)
footprint -p "$PID" | tail -5
手元での結果は次の通りだった。
| 項目 | 実測値 | READMEの記載 |
|---|---|---|
| 起動直後のRSS | 40.9MB(3回とも40.8〜40.9MB) | idle around 80 MB RAM |
| phys_footprint | 21MB(peak 24MB) | — |
| .app バンドル | 62MB | — |
実行ファイル TablePro |
41.8MB | — |
同梱MCPサーバー tablepro-mcp |
582KB | — |
公称の80MBより実測の方が軽かった。DBに未接続・ウィンドウを開いた直後という最も軽い条件なので、接続を増やせば当然伸びる。ただし「公称値を盛っていない」ことは確認できた。なお起動時間については、プロセスが ps に現れるまでが1.7秒。ウィンドウ描画完了までの厳密な計測はアクセシビリティ権限が必要で今回は取れなかったため、「1秒未満」の当否は未検証とする。
「No Electron, no JDBC, no JavaScript runtime」の方は、バンドルを覗けば一発で分かる。
# 同梱フレームワークの一覧
ls /Applications/TablePro.app/Contents/Frameworks/
# → Sparkle.framework / TableProPluginKit.framework / libcrypto.3.dylib / libssl.3.dylib / libswiftCompatibilitySpan.dylib
# Electron・JAR・Nodeバイナリが混ざっていないか
find /Applications/TablePro.app \( -iname "*electron*" -o -iname "*.jar" -o -iname "node" \) | head
# → 何も出なければ同梱なし
実際に出てきたフレームワークは5つだけで、自動更新用のSparkle、プラグイン機構のTableProPluginKit、OpenSSL系の2つ、Swift互換シムのみ。Electron・JAR・Nodeバイナリは1件もヒットしなかった。同梱するサードパーティ依存は Contents/Resources/ThirdPartyLicenses/licenses.yml に38件が列挙されており、SwiftPM経由のSwiftライブラリで構成されている。
バンドルの Contents/Resources/ には他にも、テーマ定義(tablepro.default-dark.json / dracula / nord)、シンタックスハイライト用の CodeEditLanguages バンドル、そして動作確認用のサンプルDB Chinook.sqlite が入っていた。インストール直後に接続先が無くても、同梱のSQLiteサンプルですぐ触れる構成になっている。
READMEが挙げる機能のうち、バンドルの構成から裏が取れたものと、GUI操作が必要で今回は確かめられなかったものを分けておく。
| README記載の機能 | 今回の確認状況 |
|---|---|
| プラグインでドライバを追加 | TableProPluginKit.framework を同梱。レジストリ側にも18件の実データを確認 |
| 自動アップデート | Sparkle.framework を同梱(macOSアプリで標準的な自動更新機構) |
| SQLエディタのシンタックス/テーマ | CodeEditLanguages バンドルと4種のテーマJSONを確認 |
| SSHトンネル・SSL/TLS | libssl.3.dylib / libcrypto.3.dylib を同梱。実接続は未検証 |
| iCloud同期(接続情報・SSHプロファイル) | 未検証(Apple ID紐付けが必要なため) |
| AIチャット・インライン補完 | 未検証(APIキー設定とGUI操作が必要なため) |
「バンドルに部品が入っている」ことと「その機能が期待通り動く」ことは別なので、後者は実際に接続してからでないと言えない。ここでは前者だけを事実として扱う。
インストール手順——Homebrew Caskが公式手順
インストールはHomebrew Caskが公式手順として案内されている。
# 公式が案内するインストール方法
brew install --cask tablepro
# Homebrewを使わない場合は公式リリースから直接
# https://github.com/TableProApp/TablePro/releases
# → TablePro-<version>-arm64.dmg(Apple Silicon)
# TablePro-<version>-x86_64.dmg(Intel)
配布はarm64版とx86_64版が別ファイルで、v0.69.0時点のダウンロード数はarm64 dmgが1,838、x86_64 dmgが113。利用者の大半がApple Silicon機という分布になっている。動作要件はアプリのInfo.plistの LSMinimumSystemVersion が 14.0 で、READMEの「macOS 14+」と一致した。
日本語UIは無い——同梱ロケールは6言語
日本語対応については、期待しない方がいい。アプリバンドル内の言語リソースを数えると次の6つで、ja.lproj は存在しなかった。
・en.lproj(英語)
・ko.lproj(韓国語)
・tr.lproj(トルコ語)
・vi.lproj(ベトナム語)
・zh-Hans.lproj(簡体字中国語)
・zh-Hant.lproj(繁体字中国語)
READMEにベトナム語・簡体字・韓国語版が用意されていることからも分かる通り、コントリビュータの分布がそのままローカライズに反映されている。UIは英語で使う前提になる。翻訳の追加自体はOSSなのでPRを送れる領域だ。
対応データベースは20種ではなく26種——READMEとレジストリのずれ
READMEの「Supported Databases」表は、組み込み8種(MySQL / MariaDB / PostgreSQL / Amazon Redshift / CockroachDB / SQLite / ClickHouse / Redis)とプラグイン12種の計20種を挙げている。ところが、READMEが「plugin registry」としてリンクしている公式リポジトリ TableProApp/plugins の plugins.json を直接読むと、登録済みプラグインは18件あった。
READMEに載っている12種はすべてレジストリにも存在し、レジストリ側にだけある6種が差分だった。
| レジストリにのみ存在 | 登録バージョン | 種別 |
|---|---|---|
| SurrealDB Driver | 1.0.4 | マルチモデルDB |
| Elasticsearch Driver | 1.0.4 | 検索エンジン |
| Trino Driver | 1.0.7 | 分散SQLクエリエンジン |
| Kafka Driver | 1.0.0 | メッセージング |
| Snowflake Driver | 1.0.6 | データウェアハウス |
| Teradata Driver | 1.0.5 | データウェアハウス |
Kafka Driverが 1.0.0 と最も若く、Snowflake・Teradata・SurrealDB・Elasticsearchも1.0.4〜1.0.7と新しい。つまりREADMEの表が追いついていないだけで、レジストリの方が実態に近い。逆に言うと、READMEを見て「Snowflakeが無いから見送り」と判断すると誤る。次のコマンドで、その時点の最新一覧を自分で取れる。
# 公式プラグインレジストリの現在値を直接読む
curl -s https://raw.githubusercontent.com/TableProApp/plugins/main/plugins.json \
| python3 -c "import json,sys; d=json.load(sys.stdin); ps=d if isinstance(d,list) else d.get('plugins',d); \
print(len(ps)); [print('-', p.get('name'), p.get('version')) for p in ps]"
なお、組み込み8種は「アプリに最初から入っている」ドライバ、プラグイン18種は「使うときにレジストリから入れる」ドライバという区別で、後者は本体サイズを膨らませないための設計だ。62MBのバンドルで26種のDBに届く理由がここにある。同じ「軽量で多DB対応」を狙ったOSSとしては、dbx完全解説:20MBで70+DB対応のRust製DBクライアントがRust+Tauriで別のアプローチを取っており、比較対象として分かりやすい。
AGPLv3と有償ライセンスの境界——「無料」の実際の範囲
ここが最も誤解されやすい。GitHubのライセンスバッジは AGPL-3.0 と表示され、README末尾も「This project is licensed under the GNU Affero General Public License v3.0」と明記している。一方で、v0.69.0のリリースノートにはこんな行がある。
Restore Previous Values in the Edit menu, taking back a save that already committed. Starter license.
つまりライセンス種別で開く機能がある。そしてアプリバンドルの Contents/Resources/ には license_public.pem という公開鍵が同梱されていた。署名されたライセンスファイルを検証する仕組みが配布バイナリに組み込まれている、ということだ。
READMEの「Support development」節の言い回しは正直で、次のように書いている——アプリはAGPLv3で無料、仕事で使うならライセンスを買ってほしい、買えないならそのまま無料版を使ってよい、それが無料である理由だ、と。強制ではなくお願いベースの建て付けになっている。
整理すると、押さえるべき線は2本ある。
| 何が | どうなっているか |
|---|---|
| ソースコード | AGPLv3。フォークもセルフビルドも改変も可能 |
| 配布バイナリ(dmg/brew) | 無料で使える。ただし一部機能はライセンス種別(Starterなど)で開く |
| セルフビルド | READMEに手順あり(Xcode 26+ / XcodeGen / scripts/download-libs.sh)。ライセンス機構を含むソース全体が公開されている |
| AGPLv3の義務 | ネットワーク越しに改変版を提供する場合、ソース提供義務が発生する(デスクトップアプリ単体利用では通常発生しない) |
「AGPLv3だから全機能が無条件で開く」とは限らない点が要注意で、これはChat2DBがv5.3.0でライセンスを変更した件と同じ構図だ。ライセンスバッジの1行だけを見て判断せず、リリースノートとバンドルの中身まで確かめた方がいい。
同梱MCPサーバー tablepro-mcp を実際に叩いて分かったこと
TableProのAI機能はREADMEに3つ書かれている。チャット、インライン補完、そしてMCPサーバーだ。「Cursor、Raycast、Claude Desktopがあなたのデータベースと話せる」と説明されており、当サイトの読者にとってはここが一番の関心事だろう。
アプリバンドルの Contents/MacOS/ を見ると、TablePro(41.8MB)と並んで tablepro-mcp(582KB)という実行ファイルが入っている。単体のMCPサーバーとして叩けるのか試した。
Claude Desktop / Cursor / Raycast"] -->|"stdio (JSON-RPC)"| B["tablepro-mcp
582KB のブリッジ"] B -->|"tablepro:// URLスキームで起動要求"| C["TablePro.app 本体"] C -->|"MCPが有効なら接続"| B C -.->|"未起動 / 未有効化"| D["error code -33000
TablePro is not running"] D -.-> A
結果は明快で、tablepro-mcp はスタンドアロンのMCPサーバーではなくブリッジだった。本体アプリが起動していない状態で initialize と tools/list を送ると、次のように返して終了する。
# TablePro本体が起動していない状態でMCPブリッジを叩く
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"probe","version":"1"}}}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
| /Applications/TablePro.app/Contents/MacOS/tablepro-mcp
返ってきたのは次のJSON-RPCエラーだった。
[info] No trusted MCP handshake; launching TablePro via tablepro://integrations/start-mcp
[error] Bridge startup failed: Failed to launch TablePro (open exit 1)
{"error":{"message":"TablePro is not running. Launch the app and enable the MCP server.","code":-33000},"id":null,"jsonrpc":"2.0"}
ここから読み取れる運用上のポイントは3つある。
・アプリを閉じるとMCPも死ぬ:ヘッドレスなDB接続サーバーではなく、GUIアプリのフロントに乗る設計。CIやサーバー常駐用途には向かない
・URLスキームの登録が要る:ブリッジは tablepro://integrations/start-mcp を叩いて本体を起こす。今回はdmgをマウントしたまま実行したためURLスキームが未登録で、この起動経路自体が失敗した。/Applications に正規インストールしていることが前提になる
・MCPは明示的に有効化する:エラーメッセージが「Launch the app and enable the MCP server」と言う通り、インストールしただけでは有効にならない
なお tools/list が返すツール定義とその常駐トークン量は今回測れていない。上記の通りアプリ側でMCPを有効化するGUI操作が必要で、今回の検証環境では実行できなかったためだ。この点は未検証として明示しておく。v0.69.0のリリースノートには「check_constraints と generation_expression を MCP の describe_table レスポンスに追加」とあり、describe_table というツールが存在することだけは一次情報から確認できる。
TablePlus・Sequel Ace・DBeaverとの比較
READMEが自ら競合を名指ししているので、その分類に実測値を足して並べる。ライセンス・実装形態・対応DB数は2026-09-01時点の公開情報および実測で、価格は変動するため各公式サイトで確認してほしい。
読者の3つの問いへの答え(このセクション)
・結局なにができる:MySQL・PostgreSQL・Redis等26種のDBに、macOSネイティブの1アプリから接続してSQLを書き、結果をグリッドで直接編集できる
・なにを解決する:Electron/JVM製クライアントの起動待ちとメモリ消費、そして「多DB対応の良いクライアントはソースが読めない」という状態
・なにを代替する:TablePlus(多DB・クローズド)と、Sequel Ace+Postico+αの単一DBクライアントの併用
| TablePro | TablePlus | Sequel Ace | DBeaver CE | |
|---|---|---|---|---|
| ライセンス | AGPL-3.0(一部機能はライセンス種別) | プロプライエタリ | GPL-3.0 | Apache-2.0 |
| 実装 | Swift / AppKit・SwiftUI | ネイティブ | Objective-C・Swift | Java(JVM) |
| 対応DB | 26種(組み込み8+プラグイン18) | 多数 | MySQL / MariaDB のみ | 多数(JDBC) |
| プラットフォーム | macOS 14+ / iOS 18+ | macOS / Windows / Linux / iOS | macOS のみ | macOS / Windows / Linux |
| 起動直後メモリ | 40.9MB(実測) | — | — | JVM前提のため一般に重い |
| MCPサーバー | 同梱(本体起動が前提) | — | — | — |
| 日本語UI | 無し | 有り | 有り | 有り |
選択の分かれ目は、実際にはこうなる。
・MySQLしか触らないなら、Sequel Aceで足りる。TableProに乗り換える理由は薄い
・Windows/Linuxでも同じクライアントを使いたいなら、TableProは現時点で候補に入らない(Linuxはプロトタイプ、Windowsは非対応)
・日本語UIが要るなら、v0.69.0時点では選べない
・「多DB × ネイティブ × ソースが読める」を全部満たしたいなら、現状ほぼ唯一の選択肢がTablePro
・AIエージェントからDBを触らせたいなら、MCPサーバーを公式に同梱している点が効く。ただし常駐サーバーではなくGUIアプリのブリッジである制約を織り込むこと
まとめ|TableProを選ぶ基準
実測で確かめられたことを整理する。計測は2026-08-31 JST、対象はv0.69.0(arm64)。公開時点でもこれが最新リリースだ。
・公称値は盛っていない:READMEの「idle around 80 MB」に対し実測40.9MB。「no Electron, no JDBC, no JavaScript runtime」も、バンドル内にElectron・JAR・Nodeバイナリが1件も無いことを確認した
・READMEの方が古い:対応DBはREADMEの20種ではなく、公式レジストリ実データで26種。Snowflake・Trino・Elasticsearch等はREADMEの表に載っていない
・MCPは同梱だがブリッジ:tablepro-mcp 単体では起動できず、本体アプリの起動とMCP有効化が前提。未起動時はJSON-RPC code -33000を返す
・AGPLv3は「ソースが自由」の意味:配布バイナリには署名検証つきのライセンス機構(license_public.pem)が入っており、一部機能はライセンス種別で開く
・日本語UIは無い:同梱ロケールは en / ko / tr / vi / zh-Hans / zh-Hant の6つ
「TablePlusは気に入っているがクローズドなのが気になる」「Electronの起動待ちが嫌」という動機なら、乗り換えを検討する価値は十分にある。逆に、Windows併用・日本語UI必須・MySQLのみという条件のいずれかに当てはまるなら、いまは急ぐ理由が無い。
参照ソース
・TableProApp/TablePro — 公式リポジトリ・README・リリース(2026-09-01アクセス)
・TableProApp/plugins — 公式プラグインレジストリ plugins.json(2026-09-01アクセス)
・TablePro 公式サイト — ダウンロード・ライセンス案内(2026-09-01アクセス)
・TablePro Documentation — 公式ドキュメント(2026-09-01アクセス)