Doc Agent
by prosdevlab
README.md
# doc-agent
Document extraction and semantic search CLI with MCP integration. Extract structured data from invoices, receipts, and bank statements using Vision AI.
## Features
- š **Document Extraction**: Extract structured data from PDFs and images using Vision AI
- š¦ **Ollama-First**: Privacy-first default using local `llama3.2-vision` model
- š§ **Zero Setup**: Auto-installs Ollama via Homebrew if needed, auto-pulls models
- š **Multi-Format**: Supports PDFs and images (PNG, JPEG, WebP)
- š¬ **OCR-Enhanced**: Uses Tesseract.js for accurate text extraction from receipts
- š¾ **Local Storage**: All data persists to local SQLite database
- š **Semantic Search**: Natural language search over indexed documents (coming soon)
- š¤ **MCP Integration**: Use via Claude Desktop or any MCP-compatible assistant
- š **Privacy-First**: Data stays on your machine (unless you opt for cloud AI)
## Quick Start
### Installation
```bash
npm install -g doc-agent
```
### Usage
**Extract document data (uses Ollama by default):**
```bash
doc extract invoice.pdf
```
> š” Don't have Ollama? No problem! The CLI will offer to install it for you via Homebrew.
**With Gemini (cloud, higher accuracy):**
```bash
export GEMINI_API_KEY=your_key_here
doc extract invoice.pdf --provider gemini
```
**Start MCP server:**
```bash
doc mcp
```
### Claude Desktop Integration
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"doc-agent": {
"command": "npx",
"args": ["-y", "doc-agent", "mcp"],
"env": {
"GEMINI_API_KEY": "your_key_here"
}
}
}
}
```
Then in Claude Desktop:
> "Extract data from ~/Downloads/invoice.pdf"
## Development
```bash
# Clone and install dependencies
git clone https://github.com/prosdevlab/doc-agent
cd doc-agent
pnpm install
# Build the project
pnpm build
# Run CLI locally
pnpm dev extract examples/invoice.pdf
# Run tests
pnpm test
# Start MCP server
pnpm mcp
```
### Architecture
The CLI is built with [Ink](https://github.com/vadimdemedes/ink) (React for CLIs) for rich interactive output:
```
packages/
āāā cli/ # Ink-based CLI with services, hooks, and components
āāā core/ # Shared types and interfaces
āāā extract/ # Document extraction (Gemini, Ollama) + OCR
āāā storage/ # SQLite persistence (Drizzle ORM)
āāā vector-store/ # Vector database for semantic search
```
## Roadmap
See [ROADMAP.md](./ROADMAP.md) for the project plan.
## License
MITThis server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues