Skip to main content
Glama
DeeNihl

BookmarkMemory

by DeeNihl
README.md
# BookmarkMemory

A Python-based semantic search system for bookmarks that enables intelligent querying of URL contents through vector embeddings and semantic chunking.

## Features

- 🔍 **Semantic Search**: Find bookmarks based on meaning, not just keywords
- 🧩 **Smart Chunking**: Intelligently splits content into meaningful segments
- 🚀 **Multiple Backends**: Support for Qdrant Cloud, local containers, or auto-start
- 🌐 **FastAPI Server**: RESTful API with auto-generated documentation
- 🤖 **MCP Integration**: FastMCP server for AI assistant integration
- 📊 **Flexible Embeddings**: Support for multiple embedding models

## Quick Start

### Installation

```bash
# Clone the repository
git clone file:///c:/temp/BookmarkMemory
cd BookmarkMemory

# Install dependencies
pip install -r requirements.txt
pip install -e .
```

### Basic Usage

```python
from bookmark_memory import BookmarkMemory

# Initialize
bm = BookmarkMemory()

# Add bookmarks
bm.add_bookmarks([
    "https://example.com/article1",
    "https://example.com/article2"
])

# Search
results = bm.find_related_bookmarks("machine learning")
for result in results:
    print(f"{result['url']} - Score: {result['relevance_score']:.3f}")
```

### API Server

```bash
# Start the FastAPI server
uvicorn bookmark_memory.api.fastapi_app:app --reload

# Visit http://localhost:8000/docs for API documentation
```

### MCP Server

Add to your Claude Desktop configuration:

```json
{
  "mcpServers": {
    "bookmark-memory": {
      "command": "python",
      "args": ["-m", "bookmark_memory.mcp.mcp_server"],
      "env": {
        "QDRANT_MODE": "auto"
      }
    }
  }
}
```

## Configuration

### Environment Variables

- `QDRANT_MODE`: Connection mode (auto, cloud, local)
- `QDRANT_HOST`: Qdrant host address
- `QDRANT_PORT`: Qdrant port (default: 6333)
- `EMBEDDING_MODEL`: Model for embeddings (default: sentence-transformers/all-MiniLM-L6-v2)

See `config/settings.py` for all configuration options.

## Documentation

- [API Documentation](http://localhost:8000/docs) (when server is running)
- [Project Requirements](../BookmarkContext/prd.claude.md)
- [Examples](examples/)

## Testing

```bash
# Run all tests
pytest

# Run with coverage
pytest --cov=bookmark_memory
```

## License

MIT License - See LICENSE file for details.