data-ai MCP Server
Local-first AI PKM for coding conversations: import Claude Code/Cursor/Codex, distill notes, semantic search, tag graph, MCP memory.
Discovered via github-topic:mcp-server and last synced 3mo ago.
Install instructions not detected yet
Check the source repository for the latest setup steps.
Technology
Node.js + Fastify v5 + TypeScript
Vite v8 + React 19 + Tailwind CSS v4 + TanStack React Query v5
Electron + electron-builder (NSIS installer)
sql.js (WASM SQLite)
Vercel AI SDK v6 — Ollama / OpenAI / Anthropic / Google / Azure / Custom
vectra vector index, multi-provider
## Getting Started ### Prerequisites - Node.js >= 20 - An LLM service (pick one): - [Ollama](https://ollama.ai/) (local inference, free) - OpenAI / Anthropic / Google AI API key - Any OpenAI-compatible service (OpenRouter, Poe, etc.) If using Ollama, pull the required models: ```bash ollama pull qwen2.5:7b # LLM summarization ollama pull nomic-embed-text # Embedding ``` ### Installation ```bash git clone https://github.com/ZengLiangYi/ChatCrystal.git cd ChatCrystal npm install cp .env.example .env # Edit configuration as needed ``` ### Desktop App (Recommended) ```bash npm run dev:electron # Dev mode (Electron + Vite HMR) npm run build:electron # Build NSIS installer → release/ ``` The installer is in the `release/` directory. Data is stored in `%APPDATA%/chatcrystal/data/`. ### Web Dev Mode ```bash npm run dev # Starts backend (3721) + frontend (13721) ``` Visit http://localhost:13721 ### Web Production Mode ```bash npm run build # Build backend + frontend npm start # Start server (frontend served statically) ``` Visit http://localhost:3721 ## Workflow 1. Click "Import" in the sidebar to scan Claude Code / Codex CLI / Cursor / Trae / GitHub Copilot conversations 2. Browse imported conversations on the Conversations page 3. Click "Summarize" or use "Batch Summarize" to distill conversations into notes 4. Search your knowledge on the Search page; enable "Expand related notes" to follow relation edges 5. Explore note relationships on the Graph page (force-directed, draggable, zoomable) 6. Filter and browse all notes by tag on the Notes page 7. Switch LLM/Embedding providers and models on the Settings page ## Configuration Configure via `.env` file or the Settings page (hot-swappable at runtime): ```bash # Server port PORT=3721 # Data sources CLAUDE_PROJECTS_DIR=~/.claude/projects CODEX_SESSIONS_DIR=~/.codex/sessions # CURSOR_DATA_DIR= # Auto-detected per platform, can override # LLM summarization (ollama/openai/anthropic/google/azure/custom) LLM_PROVIDER=ollama LLM_BASE_URL=http://localhost:11434 LLM_MODEL=qwen2.5:7b # LLM_MAX_INPUT_CHARS=32000 # Increase for large-context models (e.g., 80000 for 128K models) # Embedding (ollama/openai/google/azure/custom) EMBEDDING_PROVIDER=ollama EMBEDDING_BASE_URL=http://localhost:11434 EMBEDDING_MODEL=nomic-embed-text ``` > **Note: LLM and Embedding must be configured separately.** Semantic search requires a dedicated embedding model that supports the `/v1/embeddings` endpoint. Large language models (Claude, GPT-4, Qwen, etc.) **cannot** be used as embedding models. Common embedding models: > >
>
`text-embedding-3-small`, `text-embedding-3-large`
`text-embedding-004`
Data Source
`~/.claude/projects/**/*.jsonl`
`~/.codex/sessions/**/rollout-*.jsonl`
Cursor `workspaceStorage/state.vscdb`
Trae `workspaceStorage/state.vscdb`
VS Code `workspaceStorage/chatSessions/*.jsonl`
Path
`/api/queue/status`
`/api/queue/cancel`
`/api/relations/:id`
Meaning
Causation
Leads to
Resolved by
Similar topic
Contradiction
Dependency
Extension
Reference
[docs/DEVELOPMENT.md](docs/DEVELOPMENT.md)
English