textrawl
byJeff Green

Introduction

Personal Knowledge MCP Server - Turn your documents into Claude's memory

textrawl

textrawl is a Personal Knowledge MCP Server that gives Claude access to your documents, emails, notes, and other knowledge. It uses hybrid search combining semantic understanding with keyword matching to find the most relevant content.

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

Why textrawl?

Give Claude access to your personal documents, emails, notes, and knowledge. 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.

Multi-Format Support

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

MCP Native

Native Model Context Protocol integration. Works with Claude Desktop, Cursor IDE, and any MCP client.

Privacy First

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

Quick Start

# Clone and setup
git clone https://github.com/jeffgreendesign/textrawl.git
cd textrawl
npm run setup
 
# Start the server
npm run dev
 
# Test with MCP Inspector
npm run inspector

MCP Tools

textrawl exposes 12 tools via MCP:

Document Tools

ToolPurpose
search_knowledgeHybrid search with configurable weights
get_documentRetrieve full document content
list_documentsBrowse documents with pagination
update_documentUpdate document title and tags
add_noteCreate notes with automatic embedding

Memory Tools (Persistent Memory)

ToolPurpose
remember_factStore facts about entities with semantic embeddings
recall_memoriesSearch stored memories with hybrid search
relate_entitiesCreate relationships between entities
get_entity_contextGet all info about an entity
list_entitiesList known entities with pagination
forget_entityDelete entity and associated memories
memory_statsGet memory statistics

View all tools →

Architecture

┌─────────────────────────────────────────────────────────┐
│                    Claude Desktop                        │
│                    or Cursor IDE                         │
└────────────────────────┬────────────────────────────────┘
                         │ MCP Protocol

┌─────────────────────────────────────────────────────────┐
│                    textrawl Server                       │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────┐  │
│  │   Search    │  │  Documents  │  │     Memory      │  │
│  │  (Hybrid)   │  │  (CRUD)     │  │  (Entities)     │  │
│  └──────┬──────┘  └──────┬──────┘  └────────┬────────┘  │
│         │                │                   │           │
│         └────────────────┼───────────────────┘           │
│                          ▼                               │
│  ┌─────────────────────────────────────────────────────┐│
│  │           Supabase PostgreSQL + pgvector            ││
│  │  • documents + chunks (document search)             ││
│  │  • memory_entities + observations (memory)          ││
│  │  • hybrid_search() / memory_search() RPCs           ││
│  └─────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────┘

Learn more about hybrid search →

Next Steps

On this page