Skip to main content
Glama
dgholamian

Bookmarks MCP Server

by dgholamian

Bookmarks MCP Server

Postgres をバックエンドにしたブックマークマネージャーと、汎用 REST API ツールを MCP サーバーとして公開するものです。LLM クライアント(例: Claude Desktop)があなたの代わりにブックマークを保存、検索、管理できるようにします。

機能

  • asyncpg を介してブックマーク(url, title, description, tags)を Postgres に保存します

  • CRUD ツールを公開します: add_bookmark、list_bookmarks、get_bookmark、search_bookmarks、update_bookmark、delete_bookmark

  • DB 検査ツールを公開します: list_tables、describe_table、run_query(安全性のため SELECT のみ)

  • 汎用 REST ツール api_request を 1 つ公開します。これは .env の API_BASE_URL で設定した任意の API を呼び出します(メソッド、パス、クエリパラメータ、JSON ボディは任意)。デフォルトでは、URL を保存する前にリンクプレビュー(title/description/image)を取得するために Microlink(無料、API キー不要)を使用する設定になっています。

Related MCP server: veyra-bookmarks

セットアップ

1. データベース

専用のロールとデータベースを作成します(アプリ自体には Postgres スーパーユーザーを使用しないでください):

CREATE ROLE bookmarks_app WITH LOGIN PASSWORD 'choose-a-password';
CREATE DATABASE bookmarks OWNER bookmarks_app;

次にテーブルを作成します:

psql -U bookmarks_app -h localhost -d bookmarks -f schema.sql

2. Python 環境

python -m venv venv
venv\Scripts\activate        # Windows
# source venv/bin/activate   # macOS/Linux
pip install -r requirements.txt

3. .env を設定

copy .env.example .env        # Windows
# cp .env.example .env        # macOS/Linux

記入する項目:

  • DATABASE_URL — bookmarks_app の接続文字列

  • API_BASE_URL / API_KEY — api_request に呼び出させたい REST API(デフォルトは Microlink。キーは不要です。認証を必要としない API の場合は API_KEY を空のままにしてください)

4. 実行

python src/server.py

Claude Desktop に接続

claude_desktop_config.json にエントリを追加します:

{
  "mcpServers": {
    "bookmarks": {
      "command": "/absolute/path/to/bookmarks-server/venv/Scripts/python.exe",
      "args": ["/absolute/path/to/bookmarks-server/src/server.py"]
    }
  }
}

環境変数は .env から読み込まれます(python-dotenv 経由。プロセスの作業ディレクトリに関係なくプロジェクトルートからの相対パスで解決されます)。そのため、機密情報を Claude の設定自体に含める必要はありません。

Windows Store (MSIX) 版の Claude Desktop: 設定ファイルは通常の %APPDATA%\Claude\ パスにはありません。%LOCALAPPDATA%\Packages\<Claude package id>\LocalCache\Roaming\Claude\claude_desktop_config.json の下にサンドボックス化されています。編集する前に、Claude Desktop をウィンドウを閉じるだけでなく、システムトレイから完全に終了してから、再起動してください。

セキュリティに関する注意事項

  • すべてのクエリはパラメータ化された SQL($1、$2、...)を使用します。文字列を組み立てた SQL はないため、ツール引数からのインジェクションリスクはありません。

  • run_query は SELECT ステートメントのみを許可します。書き込みは代わりに専用の CRUD ツールを経由します。これは LLM 駆動のクライアントに対して意図的に攻撃面を狭くした設計です。

  • bookmarks_app は bookmarks データベースに限定された非スーパーユーザーロールです。サーバーが Postgres スーパーユーザーとして接続することはありません。

  • .env は gitignore されています。実際の認証情報をコミットしないでください。テンプレートとして .env.example を使用してください。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables semantic search across browser bookmarks from Chrome, Firefox, Edge, Opera, and other browsers using natural language queries. Extracts and indexes bookmark content and metadata into a vector database for intelligent retrieval.
    1
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Bookmark manager for AI agents with tags, categories, and full-text search. Reads are free, writes require Veyra commit mode.
    8 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to save and search bookmarks using OpenAI's RAG capabilities for intelligent bookmark management and retrieval.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to save, search, and manage bookmarks with semantic search, automatic metadata extraction, and optional LLM-powered enrichment, all running locally.
    8
    6
    MIT