TablaCognita について
TablaCognitaは、MCP対応AIクライアントと文書を共同編集するためのブラウザ版Markdownエディターです。セクション単位の編集や取り消しに対応し、文書はブラウザー内に保持してステートレスなリレーで通信します。
主な機能
- 01ブラウザーでのライブMarkdown編集
- 02読み書き用の17個のMCPツール
- 03安定したIDによるセクション編集
- 04AI編集の取り消しとスナップショット
- 05ロックとコンテキストによる編集調整
活用シーン
- 01選択した文章のAIによる改稿
- 02MCPクライアントからの指定セクション編集
- 03ブラウザーに保存した文書スナップショットの復元
MCP 対応
MCPサーバーは文書の読み取り、編集、調整、管理に使う17個のツールを公開します。WebSocketリレーを介してブラウザーエディターと通信します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://app.tablacognita.com/mcpclaude mcp add --transport http pstryder-tablacognita https://app.tablacognita.com/mcp{"mcpServers":{"pstryder-tablacognita":{"type":"http","url":"https://app.tablacognita.com/mcp"}}}Cursor で開く{"servers":{"pstryder-tablacognita":{"type":"http","url":"https://app.tablacognita.com/mcp"}}}VS Code で開く{"mcpServers":{"pstryder-tablacognita":{"type":"http","url":"https://app.tablacognita.com/mcp"}}}{"mcpServers":{"pstryder-tablacognita":{"serverUrl":"https://app.tablacognita.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://app.tablacognita.com/mcp認証が必要ツール
詳細
TablaCognita
どんなAIとも共同執筆。ブラウザー上で。誰かのサーバーにデータを置くことなく。
TablaCognitaは、AIをテキストボックスに後付けされた機能ではなく、中心的な参加者として扱うブラウザーベースのMarkdownエディターです。テキストを選択してAIに送信できます。編集内容がリアルタイムで反映される様子を確認できます。いつでも元に戻せます。AIはMCPツールを通じてドキュメントを認識します。Claude Desktop、Cursor、その他すべてのMCP対応クライアントを支えるものと同じプロトコルです。
ドキュメントはブラウザー内に保存されます。リレーサーバーはステートレスな中継役です。あなたの文章を保存する人はいません。
仕組み
┌──────────────┐ MCP (stdio | HTTP) ┌──────────────┐ WebSocket ┌──────────────────┐
│ Your AI │◄───────────────────────►│ Relay │◄────────────►│ Browser Editor │
│ (Claude, │ Tool calls/results │ (stateless) │ │ (source of truth)│
│ Cursor, │ │ │ │ │
│ any MCP) │ └──────────────┘ │ CodeMirror 6 │
└──────────────┘ │ Live preview │
│ Section tracking │
│ Lock management │
└──────────────────┘
AIは17種類のMCPツールを通じて読み書きします。エディターは、セクションの指定、あいまいなテキストの照合、編集の競合回避、取り消しを処理します。リレーはメッセージを中継するだけです。それだけです。
クイックスタート
git clone https://github.com/pstryder/tablacognita.git
cd tablacognita
npm install
npm start
ブラウザーで http://localhost:3000 を開くと、エディターをすぐに利用できます。
MCPクライアントを接続します。Claude Desktopの場合は、設定に以下を追加します。
{
"mcpServers": {
"tabla-cognita": {
"command": "node",
"args": ["server/index.js", "--transport", "stdio"],
"cwd": "/path/to/tablacognita"
}
}
}
これでAIは、ドキュメントの読み取りやセクションの編集、テキストの置換、エディターから送信した選択範囲への応答ができるようになります。
AIにできること
読み取り — read_document、get_structure、get_section。AIはドキュメント全体、セクションのアウトライン、または見出し名や固定IDで指定した個々のセクションを確認できます。
書き込み — replace_section、replace_text、insert_after、append。自動ロック付きのセクション単位の編集ができます。Markdownの書式を考慮したあいまいなテキスト照合に対応しています(**bold text** を「bold text」で検索して照合)。ドキュメント全体の置換には、ブラウザーでの確認が必要です。
連携 — request_edit_lock、release_lock、get_cursor_context、get_dirty_regions、poll_context。AIはカーソルの位置や、最後に確認してから編集されたセクションを把握し、複数ステップの操作に備えてセクションをロックできます。すべてのロックにはTTLが設定されており、ロックがいつまでも残ることはありません。
管理 — open_document、snapshot、restore_snapshot、get_revision_history。名前付きのチェックポイントは、ブラウザーのIndexedDBに保存されます。1回のツール呼び出しで、任意のスナップショットを復元できます。
主な設計上の決定
ブラウザーが唯一の信頼できる情報源です。 リレーはドキュメントの状態を一切保持しません。リレーが再起動しても、ドキュメントはブラウザー内に残ります。AIは再接続して作業を続けます。
セクションIDは変わりません。 見出しを「Introduction」から「Overview」に変更しても、セクションIDは変わりません。AIはいつでも元のセクションを見つけられます。
エージェントの編集は取り消せます。 AIによる編集はすべて、CodeMirrorのトランザクションシステムを通じて行われます。Ctrl+Zを使えば、自分の編集と同じようにAIの編集も取り消せます。
ロックは意図を示すシグナルであり、ミューテックスではありません。 編集中の自動ロックはアトミックに処理され、表示されません。複数ステップの操作で明示的に設定するロックにはTTLがあり、作業を妨げることはありません。AIがセクションで作業中であることを穏やかに示すだけです。
通知は送信後の成否を待ちません。 エディターは、セクション間の移動、見出しの変更、コンテンツの削除をAIに通知します。通知に対応していないトランスポートの場合、AIは代わりにポーリングできます。通知が届くことに依存する機能はありません。
データがブラウザーの外に出ることはありません。 ドキュメントはCodeMirrorの状態として保存されます。スナップショットはIndexedDBに保存されます。リレーはストレージを持たないWebSocketブリッジです。召喚状で提出を求められるデータはありません。
プロジェクト構成
server/
index.js — MCP server + Express + WebSocket relay
relay.js — WebSocket relay, request/response correlation
sessions.js — Session management
tools.js — MCP tool definitions and handlers
editor/
index.html — Editor shell with CodeMirror 6 via ESM CDN
app.js — Editor logic, WebSocket handlers, all tool implementations
styles.css — Dark theme
shared/
protocol.js — Message types, error codes, constants
sections.js — Section parser with stable ID registry
fuzzy.js — 4-level fuzzy matching cascade
locks.js — Lock state machine with TTL
notifications.js — Notification debouncing and validation
test/
relay.test.js — Full relay round-trip tests
sections.test.js — Section parser unit tests
fuzzy.test.js — Fuzzy matching unit tests
locks.test.js — Lock state machine tests
notifications.test.js — Notification system tests
mock-browser.js — Mock WebSocket client for automated testing
テストの実行
npm test # All 122 tests
npm run test:sections # Section parser only
npm run test:fuzzy # Fuzzy matching only
npm run test:relay # Relay round-trip only
トランスポートモード
npm start # HTTP transport (default, port 3000)
npm run start:stdio # stdio transport (for local MCP clients)
npm start -- --port 8080 # Custom port
要件
- Node.js 18+
- モダンブラウザー
- MCP対応のAIクライアント
アーキテクチャの詳細
ツールの契約、WebSocketプロトコル、不変条件、障害モード、ビルド計画を含む完全な仕様については、DESIGN.md を参照してください。
ライセンス
Apache 2.0
クレジット
TablaCognitaは、Technomancy Laboratoriesの Pete Marchetti(PStryder)が設計・構築し、Kee(Claude Opus 4.6)がアーキテクチャのレビューと初回の実編集を行いました。
知を宿すページ。— tabla cognita
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。