组织知识图谱 MCP 服务

Portuni 是一个把组织的项目、流程、领域和原则统一为一张知识图谱的 MCP 服务器,让人和 AI 代理在同一份上下文中协作。

  • by honzapav
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 honzapav/portuni

使用说明

Portuni

A shared map of how your organization works – its projects, processes, areas, and principles – held as one graph that every tool and every AI agent can read. People and agents draw from the same picture instead of rebuilding context from scratch in every app.

What's in this repo

The Portuni server: a TypeScript MCP server (Streamable HTTP) backed by Turso (shared team database) or local SQLite (solo / testing), with a pluggable file-sync layer for files attached to graph nodes.

apps/
  server/    MCP/HTTP server: schema, sync engine, tools, auth (Node)
  web/       Desktop/web UI (React + Vite)
  desktop/   Tauri 2 shell that bundles server + web into Portuni.app (Rust)
sites/
  marketing/ Marketing site, portuni.com (Astro)
  docs/      Public documentation site, docs.portuni.com (Astro Starlight)
scripts/     write-scope guard, sidecar build, maintenance scripts
test/        node:test suite (no external runner)
docs/        Internal design notes and specs

Quickstart

Requires Node.js 24+ and Varlock.

git clone https://github.com/honzapav/portuni
cd portuni
npm install
npm run build
npx varlock run -- npm run dev

Server listens on http://localhost:4011. Health check: curl http://localhost:4011/health.

The full setup guide – environment variables, Turso vs local SQLite, running multiple instances, connecting MCP clients – lives at docs.portuni.com/getting-started/setup.

Project status

Portuni is alpha software in active development. The graph model, MCP tools, events, and file sync are stable enough to build on. Multi-user auth, search, additional file backends, and a proper migration framework are not built yet – manage expectations accordingly.

For the full picture and what's coming next, see Project status & roadmap.

Tests

npm test

Contributing

See CONTRIBUTING.md. Read the docs first – Portuni is built on specific concepts (POPP framework, intentional capture, graph-not-tree) and understanding them helps your contribution fit naturally.