bookmark-manager-mcp
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.
GitHub Stars
4
User Rating
Not Rated
Favorites
0
Views
258
Forks
1
Issues
1
๐ Bookmark Manager MCP
A Model Context Protocol (MCP) server for managing bookmarks with persistent storage
๐ 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 bookmarksbookmarks://mcp- MCP-related bookmarksbookmarks://general- General bookmarksbookmarks://{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~/.datadirectory)
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/.datafor persistent storage
๐ 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)
- Use below function to copy the data from local to s3 or s3 to local:
๐ค Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
๐ License
This project is licensed under the Apache License 2.0.
๐ค Author
Satish Tripathi
- GitHub: @infinitepi-io
- Blog: https://dev.to/mindriftfall2infinitepiio/building-a-bookmark-manager-with-ai-integration-my-journey-with-model-context-protocol-2j32
๐ Support
- Issues: GitHub Issues
- Documentation: MCP Documentation
- Container Registry: mindriftfall2infinitepiio/mcp
0
Followers
0
Repositories
0
Gists
0
Total Contributions
โญAI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts.๐ฏ ๅๅซไฟกๆฏ่ฟ่ฝฝ๏ผไฝ ็ AI ่ๆ ็ๆงๅฉๆไธ็ญ็น็ญ้ๅทฅๅ ท๏ผ่ๅๅคๅนณๅฐ็ญ็น + RSS ่ฎข้ ๏ผๆฏๆๅ ณ้ฎ่ฏ็ฒพๅ็ญ้ใAI ็ฟป่ฏ + AI ๅๆ็ฎๆฅ็ดๆจๆๆบ๏ผไนๆฏๆๆฅๅ ฅ MCP ๆถๆ๏ผ่ต่ฝ AI ่ช็ถ่ฏญ่จๅฏน่ฏๅๆใๆ ๆๆดๅฏไธ่ถๅฟ้ขๆต็ญใๆฏๆ Docker ๏ผๆฐๆฎๆฌๅฐ/ไบ็ซฏ่ชๆใ้ๆๅพฎไฟก/้ฃไนฆ/้้/Telegram/้ฎไปถ/ntfy/bark/slack ็ญๆธ ้ๆบ่ฝๆจ้ใ