TablaCognita

io.github.PStryder由 GitHub 账号 PStryder 发布v0.2.0更新于 Nov 2, 2026

MCP-native collaborative markdown editor with real-time AI document editing

已验证Streamable HTTP可网页运行效率与工作流文件与存储

概览

AI 生成的概览

TablaCognita 是一款浏览器端协作 Markdown 编辑器,其 MCP 工具让 AI 实时读取、编辑并协调你的文档。

可以做什么
  • 读取整篇文档、章节大纲,或按标题名与稳定 ID 读取单个章节
  • 编辑章节、替换文本、在章节后插入或追加内容,模糊匹配可穿透 Markdown 格式
  • 与编辑器协同:申请与释放编辑锁、获取光标上下文与已改动区域、轮询变更
  • 管理文档:打开文档、创建命名快照、恢复快照、查看修订历史
适用场景
适合让 AI 在你注视下共同撰写或修改 Markdown 文档,并让人类与 AI 的编辑在同一份文本上保持协调。适用于起草、重组结构和按章节改写,而非大批量批处理。
运行要求
可使用 app.tablacognita.com 的远程端点,或在本地以 Node.js 18+ 通过 npm 启动。必须认证:在 Settings > Account 获取的 tc_ 前缀 API 密钥,或 OAuth 2.0 访问令牌,通过 Authorization 请求头发送。需要现代浏览器并保持编辑器打开,以及支持 MCP 的 AI 客户端。
安装前请注意
Authorization 请求头携带密钥或 OAuth 令牌,请勿放入共享配置。AI 可写入文档,包括替换整个章节或全文;全文替换需在浏览器中确认,且编辑可撤销。快照保存在浏览器 IndexedDB 中,清除浏览器数据可能丢失。

安装

在 SourceWeft 中

  1. 打开 控制台中的 TablaCognita,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.PStryder%2Ftablacognita/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

{
  "mcpServers": {
    "tablacognita": {
      "type": "http",
      "url": "https://app.tablacognita.com/mcp"
    }
  }
}

README

TablaCognita

Co-write with any AI. In your browser. No data on anyone's server.

TablaCognita is a browser-based Markdown editor where AI is a first-class participant, not a feature bolted onto a text box. Select text and send it to your AI. Watch edits land in real time. Undo anything. The AI sees the document through MCP tools — the same protocol that powers Claude Desktop, Cursor, and every other MCP-capable client.

Your document lives in your browser. The relay server is a stateless wire. Nobody stores your writing.

How It Works

┌──────────────┐   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  │                                                                       └──────────────────┘

The AI reads and writes through 17 MCP tools. The editor handles section addressing, fuzzy text matching, collision avoidance, and undo. The relay just passes messages. That's it.

Quick Start

bash
git clone https://github.com/pstryder/tablacognita.gitcd tablacognitanpm installnpm start

Open http://localhost:3000 in your browser. The editor is live.

Connect your MCP client. For Claude Desktop, add to your config:

json
{  "mcpServers": {    "tabla-cognita": {      "command": "node",      "args": ["server/index.js", "--transport", "stdio"],      "cwd": "/path/to/tablacognita"    }  }}

Your AI can now read your document, edit sections, replace text, and respond to selections you send it from the editor.

What Your AI Can Do

Read — read_document, get_structure, get_section. The AI sees your full document, section outline, or individual sections by heading name or stable ID.

Write — replace_section, replace_text, insert_after, append. Section-level edits with auto-locking. Fuzzy text matching that works through markdown formatting (**bold text** matched by searching "bold text"). Full document replacement requires your confirmation in the browser.

Coordinate — request_edit_lock, release_lock, get_cursor_context, get_dirty_regions, poll_context. The AI knows where your cursor is, which sections you've edited since it last looked, and can lock sections for multi-step operations. All locks have TTLs — nothing stays locked forever.

Manage — open_document, snapshot, restore_snapshot, get_revision_history. Named checkpoints saved to your browser's IndexedDB. Restore any snapshot with one tool call.

Key Design Decisions

Browser is source of truth. The relay holds zero document state. If the relay restarts, your document is still in your browser. The AI reconnects and continues.

Section IDs are stable. Rename a heading from "Introduction" to "Overview" — the section ID doesn't change. The AI can always find its way back.

Agent edits are undoable. Every AI edit goes through CodeMirror's transaction system. Ctrl+Z works on AI edits exactly like your own.

Locks are intent signals, not mutexes. Auto-locks during edits are atomic and invisible. Explicit locks for multi-step operations have TTLs and never block you — just a gentle indicator that the AI is working on a section.

Notifications are fire-and-forget. The editor tells the AI when you move between sections, rename headings, or delete content. If the transport doesn't support notifications, the AI can poll instead. No feature depends on notifications arriving.

No data leaves your browser. Documents live in CodeMirror's state. Snapshots live in IndexedDB. The relay is a WebSocket bridge with no storage. There is nothing to subpoena.

Project Structure

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

Running Tests

bash
npm test              # All 122 testsnpm run test:sections # Section parser onlynpm run test:fuzzy    # Fuzzy matching onlynpm run test:relay    # Relay round-trip only

Transport Modes

bash
npm start                    # HTTP transport (default, port 3000)npm run start:stdio          # stdio transport (for local MCP clients)npm start -- --port 8080     # Custom port

Requirements

  • Node.js 18+
  • A modern browser
  • Any MCP-capable AI client

Architecture Details

See DESIGN.md for the full specification: tool contracts, WebSocket protocol, invariants, failure modes, and build plan.

License

Apache 2.0

Credits

TablaCognita was designed and built by Pete Marchetti (PStryder) at Technomancy Laboratories, with architectural review and first live edit by Kee (Claude Opus 4.6).

The page that knows. — tabla cognita

来源:README.md,提交 b8936ef

工具

0
该服务器需要登录,因此 SourceWeft 无法在没有账号的情况下读取其工具,也未收录。已连接账号所能看到的内容可能因账号及其权限而异。

版本历史

1
  1. v0.2.0最新Sep 16, 2026

评分

已满足适用检查项的 85%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分