Local-first personal whiteboard workspace for developers and external AI agents (tldraw + MCP stdio/SSE + SQLite)
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 86
filesystem 7
- fs (weak) atpaawej-openboard-ea7814c/apps/server/src/__tests__/acceptance.test.ts :3
import fs from 'node:fs'; - fs (weak) atpaawej-openboard-ea7814c/apps/server/src/__tests__/canvas-lifecycle.test.ts :3
import fs from 'node:fs'; - fs (weak) atpaawej-openboard-ea7814c/apps/server/src/__tests__/mcp-bridge.test.ts :4
import fs from 'node:fs'; - fs atpaawej-openboard-ea7814c/apps/server/src/server.ts :3
import fs from 'node:fs'; - fs atpaawej-openboard-ea7814c/cli/build.js :1
import fs from 'node:fs'; - fs (weak) atpaawej-openboard-ea7814c/packages/storage/src/__tests__/sqlite.test.ts :3
import fs from 'node:fs'; - fs atpaawej-openboard-ea7814c/packages/storage/src/sqlite/sqlite.ts :3
import fs from 'node:fs';
shell / exec 1
- shell atpaawej-openboard-ea7814c/cli/src/commands/start.ts :74
import('node:child_process').then(({ exec }) => {
network 9
- net (weak) atpaawej-openboard-ea7814c/apps/server/src/__tests__/acceptance.test.ts :24
const healthRes = await fetch(`${api}/api/health`); - net (weak) atpaawej-openboard-ea7814c/apps/server/src/__tests__/canvas-lifecycle.test.ts :22
const createRes = await fetch(`${info.url}/api/boards`, { - net (weak) atpaawej-openboard-ea7814c/apps/server/src/__tests__/mcp-bridge.test.ts :3
import http from 'node:http'; - net (weak) atpaawej-openboard-ea7814c/apps/server/src/__tests__/server.test.ts :18
const healthRes = await fetch(`${info.url}/api/health`); - net atpaawej-openboard-ea7814c/apps/server/src/server.ts :1
import http from 'node:http'; - net atpaawej-openboard-ea7814c/apps/web/src/canvas/useBoardAutosave.ts :60
const response = await fetch(`/api/boards/${boardId}`, { - net atpaawej-openboard-ea7814c/apps/web/src/hooks/useHealthCheck.ts :27
const response = await fetch('/api/health'); - net atpaawej-openboard-ea7814c/apps/web/src/views/BoardCanvasView.tsx :67
const response = await fetch(`/api/boards/${id}`); - net atpaawej-openboard-ea7814c/apps/web/src/views/DashboardView.tsx :82
const res = await fetch(`/api/boards?${params.toString()}`);
database 3
- db (weak) atpaawej-openboard-ea7814c/packages/storage/src/__tests__/sqlite.test.ts :6
import Database from 'better-sqlite3'; - db atpaawej-openboard-ea7814c/packages/storage/src/sqlite/migrations.ts :1
import type Database from 'better-sqlite3'; - db atpaawej-openboard-ea7814c/packages/storage/src/sqlite/sqlite.ts :4
import Database from 'better-sqlite3';
declared dependencies 5
- @types/node@^22.13.4
- esbuild@^0.25.0
- eslint@^9.20.1
- prettier@^3.5.1
- typescript@^5.7.3