Skip to content

A lightweight Model Context Protocol (MCP) server that provides persistent bookmark management for Claude and other MCP-compatible clients. Features categorized storage, resource discovery, and seamless integration with your AI workflow.

License

Notifications You must be signed in to change notification settings

infinitepi-io/bookmark-manager-mcp

πŸ”– Bookmark Manager MCP

A Model Context Protocol (MCP) server for managing bookmarks with persistent storage

Docker Hub GitHub TypeScript MCP

Bookmark Manager MCP

πŸ“‹ Overview

This MCP server provides a simple yet powerful bookmark management system that integrates seamlessly with Claude and other MCP-compatible clients. It offers persistent storage, categorization, and easy retrieval of your bookmarks.

✨ Features

  • πŸ“ Persistent Storage: Bookmarks are saved to ~/.data/bookmarks.json
  • 🏷️ Categories: Organize bookmarks with custom categories
  • πŸ” Resource Discovery: Browse bookmarks by category using MCP resources
  • 🐳 Container Support: Ready-to-use container image (Docker/Podman)
  • ⚑ TypeScript: Type-safe implementation with Zod validation
  • πŸ”— MCP Integration: Full Model Context Protocol compliance

πŸ› οΈ Installation

πŸ”§ Claude Code Integration

# Add to Claude Code (Docker)
docker pull mindriftfall2infinitepiio/bookmark-manager-mcp:latest
claude mcp add bookmark-manager -- docker run \
    --rm \
    --interactive \
    --volume ~/.data:/app/.data \
    mindriftfall2infinitepiio/bookmark-manager-mcp:latest

# Or with Podman
podman pull mindriftfall2infinitepiio/bookmark-manager-mcp:latest
claude mcp add bookmark-manager -- podman run \
    --rm \
    --interactive \
    --volume ~/.data:/app/.data \
    mindriftfall2infinitepiio/bookmark-manager-mcp:latest

πŸ”§ VS Code Integration

# Docker
docker pull mindriftfall2infinitepiio/bookmark-manager-mcp:latest

# Or Podman
podman pull mindriftfall2infinitepiio/bookmark-manager-mcp:latest
  • Create .vscode/mcp.json
{
  "servers": {
    "bookmark-manager": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "--interactive",
        "--volume",
        "~/.data:/app/.data",
        "mindriftfall2infinitepiio/bookmark-manager-mcp:latest"
      ]
    }
  }
}

For Podman users:

{
  "servers": {
    "bookmark-manager": {
      "command": "podman",
      "args": [
        "run",
        "--rm",
        "--interactive",
        "--volume",
        "~/.data:/app/.data",
        "mindriftfall2infinitepiio/bookmark-manager-mcp:latest"
      ]
    }
  }
}

Local Development

# Clone the repository
git clone https://github.com/infinitepi-io/bookmark-manager-mcp.git
cd bookmark-manager-mcp

# Install dependencies
pnpm install

# Development mode
pnpm run dev

# Build for production
pnpm run build
pnpm start

πŸš€ Usage

GitHub Copilot (VS Code)

Agent Mode + Natural Language or # prefix

Add bookmark for GitHub at https://github.com category development

#add bookmark: title "GitHub", url "https://github.com"

#list all my bookmarks in development category

Claude Code (CLI)

Usage: @ prefix

claude @bookmark-manager add bookmark for GitHub at https://github.com

claude @bookmark-manager search development bookmarks

claude @bookmark-manager list all bookmarks

MCP Resources Available

  • bookmarks://all - All bookmarks
  • bookmarks://mcp - MCP-related bookmarks
  • bookmarks://general - General bookmarks
  • bookmarks://{category} - Custom category bookmarks

Example Usage with Claude

Add a bookmark for "OpenAI Documentation" with URL "https://docs.openai.com" in category "ai"

List all my bookmarks

Show me all MCP-related bookmarks

πŸ’Ύ Data Storage

Storage Location

  • Local: ~/.data/bookmarks.json
  • Container (Docker/Podman): /app/.data/bookmarks.json (mount your local ~/.data directory)

Data Format

[
  {
    "title": "Model Context Protocol",
    "url": "https://modelcontextprotocol.io/introduction",
    "category": "mcp"
  },
  {
    "title": "infinitepi-io",
    "url": "https://github.com/infinitepi-io",
    "category": "general"
  }
]

Data Persistence

  • Automatic Creation: If no bookmarks file exists, default bookmarks are created
  • Error Handling: Graceful error handling for file operations
  • Backup Strategy: Simple JSON format allows easy backup and restoration

🐳 Container Configuration

Image Details

  • Base Image: node:22-alpine
  • Size: Optimized for minimal footprint
  • Volumes: /app/.data for persistent storage

πŸ”’ Privacy & Security

  • OpenTelemetry Data Collection: We collect telemetry data only for the tool list and add calls to improve performance and debugging
  • No Personal Data: We do not collect any personal information or bookmark content
  • Security First: We prioritize your privacy and data security in all our implementations

πŸ“Š Technical Details

Dependencies

  • @modelcontextprotocol/sdk: ^1.13.2
  • zod: ^3.25.67 (Schema validation)
  • Node.js: 22+
  • TypeScript: 5.0+

Build Process

# TypeScript compilation with esbuild
esbuild index.ts --bundle --platform=node --target=node22 --format=esm --outfile=dist/index.js

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   MCP Client    │◄──►│  MCP Server     │◄──►│  JSON Storage   β”‚
β”‚   (Claude)      β”‚    β”‚  (This App)     β”‚    β”‚  (~/.data/)     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Synching your bookmark to S3 or vice versa BYOS3(Bring your own s3 on aws)

🀝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the Apache License 2.0.

πŸ‘€ Author

Satish Tripathi

πŸ†˜ Support


About

A lightweight Model Context Protocol (MCP) server that provides persistent bookmark management for Claude and other MCP-compatible clients. Features categorized storage, resource discovery, and seamless integration with your AI workflow.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •