infinitepi-io/bookmark-manager-mcp
If you are the rightful owner of bookmark-manager-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Bookmark Manager MCP is a server designed to manage bookmarks with persistent storage, integrating seamlessly with MCP-compatible clients.
š 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~/.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
š 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