textrawl
byJeff Green

Introduction

Personal Knowledge Server — your documents, searchable and AI-ready

textrawl

textrawl is a personal knowledge server — a second brain that stores your documents, emails, notes, and other knowledge. Use it through the web dashboard, connect it to AI assistants via MCP, or integrate it into your own tools with the REST API. It uses hybrid search combining semantic understanding with keyword matching to find the most relevant content.

Why textrawl?

Bring all your personal documents, emails, notes, and knowledge into one searchable place. textrawl combines semantic understanding with keyword precision using Reciprocal Rank Fusion to deliver the most relevant results.

Combine semantic similarity with full-text keyword matching. Adjust weights to optimize for your use case.

Persistent Memory

Remember facts about people, projects, and concepts. Build a knowledge graph with relationships between entities. Track conversation context across sessions.

Proactive Insights

Automatically discover cross-source connections, recurring themes, and outliers in your knowledge base after bulk imports.

Multi-Format Support

Import MBOX emails, HTML pages, PDFs, DOCX files, and more. Convert once, search forever.

Multiple Interfaces

Access your knowledge via the web dashboard, MCP for AI assistants, REST API, CLI tools, or the desktop app.

Privacy First

Self-hosted on your infrastructure. Your documents never leave your control.

What is MCP?

The Model Context Protocol (MCP) is an open standard for connecting AI assistants to external data sources and tools. Adopted by Anthropic for Claude and donated to the Linux Foundation's Agentic AI Foundation, MCP enables:

  • Tool Use: Claude can call functions to search, retrieve, and create content
  • Context Sharing: Your documents become part of Claude's working knowledge
  • Privacy: Data stays on your infrastructure, not uploaded to the cloud

Quick Start

# Clone and setup
git clone https://github.com/jeffgreendesign/textrawl.git
cd textrawl
pnpm setup
 
# Start the server
pnpm dev
 
# Server runs at http://localhost:3000

Tools

textrawl exposes 25 tools, available via MCP and REST API:

Document Tools

ToolPurpose
searchHybrid semantic + full-text search with optional memory/conversation fusion
get_documentRetrieve full document content
list_documentsBrowse documents with pagination
update_documentUpdate document title and tags
add_noteCreate notes with automatic embedding

Memory Tools

ToolPurpose
remember_factStore facts about entities with semantic embeddings
build_knowledgeStore multiple facts and relations in a single batch call
query_memoryQuery the memory graph (search, entity, or list modes)
relate_entitiesCreate relationships between entities
forget_entityDelete entity and associated memories
extract_memoriesExtract entities and facts from text via LLM

Conversation Tools

ToolPurpose
save_conversation_contextSave conversation summary and turns for recall
query_conversationsQuery past conversations (search, get, or list modes)
delete_conversationDelete a conversation session

Insight Tools

ToolPurpose
get_insightsView discovered patterns and connections
discover_connectionsTrigger insight scan across knowledge base
dismiss_insightDismiss an insight from the queue

Stats

ToolPurpose
get_statsStatistics across knowledge, memory, conversations, and insights

Unified Tools

ToolPurpose
askUnified RAG search across all knowledge sources
daily_briefingPersonalized briefing with recent additions and insights
save_urlSave web pages as documents with auto-embedding
timelineBrowse knowledge chronologically by date range

Postgres Analysis

ToolPurpose
pg_analyzeComprehensive database health analysis
pg_recommendationsActionable optimization recommendations
pg_report_historyCompare analysis reports over time

View all tools →

Architecture

 MCP Client       Dashboard      REST Client       CLI
 (Claude,         (Web UI)       (curl, apps)    (batch)
  Cursor)
     │                │               │              │
     ▼                ▼               ▼              ▼
 POST /mcp      GET/POST /api   GET/POST /api   POST /api
     └────────────────┼───────────────┘──────────────┘

┌─────────────────────────────────────────────────────────┐
│                    textrawl Server                       │
│  ┌───────────┐ ┌───────────┐ ┌────────┐ ┌───────────┐  │
│  │  Search   │ │ Documents │ │ Memory │ │  Insights │  │
│  │ (Hybrid)  │ │  (CRUD)   │ │(Graph) │ │(Patterns) │  │
│  └─────┬─────┘ └─────┬─────┘ └───┬────┘ └─────┬─────┘  │
│        │              │           │             │        │
│        └──────────────┴───────────┴─────────────┘        │
│                          ▼                               │
│  ┌─────────────────────────────────────────────────────┐│
│  │           Supabase PostgreSQL + pgvector            ││
│  │  • documents + chunks (document search)             ││
│  │  • memory_entities + observations (memory)          ││
│  │  • conversation_sessions + turns (conversations)    ││
│  │  • proactive_insights (insight discovery)           ││
│  │  • hybrid_search() / memory_search() RPCs           ││
│  └─────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────┘

Learn more about hybrid search →

Next Steps

On this page