mcpField
M
Mcp Server

Mcp Server

ローカル
github.com/inkdropapp生産性562 日前に更新

Mcp Server について

Inkdrop MCP Serverは、Inkdrop Local HTTP Server APIをMCPクライアントに接続し、ノート、ノートブック、タグ、添付ファイルを扱うワークフローを支援します。取得や編集に加え、キーワード検索やノート間のバックリンク検索にも対応します。

主な機能

  1. 01ノートの読み取り、検索、絞り込み
  2. 02ノートの作成と更新
  3. 03ノートのバックリンク検索
  4. 04ノートブックとタグの管理
  5. 05画像添付ファイルの作成と取得

活用シーン

  1. 01キーワードでノートを検索する
  2. 02ノートを編集してステータスを変更する
  3. 03ノートブックとタグを整理する
  4. 04画像添付ファイルをノートに追加する

MCP 対応

Inkdrop Local HTTP Server APIを通じて、ノート、ノートブック、タグ、添付ファイルを読み書きするツールをMCPクライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"inkdropapp": {
"command": "npx",
"args": [
"-y",
"@inkdropapp/mcp-server"
],
"env": {
"INKDROP_LOCAL_SERVER_URL": "<INKDROP_LOCAL_SERVER_URL>",
"INKDROP_LOCAL_USERNAME": "<INKDROP_LOCAL_USERNAME>",
"INKDROP_LOCAL_PASSWORD": "<INKDROP_LOCAL_PASSWORD>"
}
}
}
}
起動コマンドnpx -y @inkdropapp/mcp-server
設定が必要な環境変数
INKDROP_LOCAL_SERVER_URL
INKDROP_LOCAL_USERNAME
INKDROP_LOCAL_PASSWORDシークレット

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@inkdropapp/mcp-server

ツール

13

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
noteIdstringはい取得するノートの ID。ノートドキュメントの `_id` で確認できます。必ず `note:` で始まります。
includeTemplatebooleanいいえtrue に設定され、ノートに `sourceTemplateId` がある場合、そのテンプレートも取得し、本文(記入手順と例)を追加のテキストブロックとして埋め込みます。これにより、1 回の呼び出しでノートとテンプレートの両方を取得できます。

詳細

Inkdrop MCP サーバー

Inkdrop Local HTTP Server API 用の Model Context Protocol サーバーです。

インストール

こちらのドキュメントをお読みください。

コンポーネント

ツール
  1. read-note:データベースから、IDで指定したノートの全内容を取得します。
    • 必須の入力:
      • noteId:取得するノートのIDです。ノートのドキュメント内で _id として確認できます。必ず note: で始まります。
    • 任意の入力:
      • includeTemplate:true に設定されていて、ノートに sourceTemplateId がある場合、そのテンプレートも取得し、本文(記入手順と例)を追加のテキストブロックとして埋め込みます。デフォルト:false。
    • 注:テンプレートから作成されたノートの場合、レスポンスにはソーステンプレートへのリソースリンクが含まれます。テンプレートの本文には記入手順と例が記載されています。
  2. read-backlinks:ノートへのバックリンク、つまりそのノートにリンクしているノートを取得します。
    • 必須の入力:
      • noteId:バックリンクを調べるノートのIDです。必ず note: で始まります。
    • 注:各結果は、参照元のノートを指すリソースリンク(inkdrop://note/<id>)として返されます。バックリンクは、すべてのノートの本文を検索し、そのノートのリンクURIを探して検出されます。
  3. search-notes:指定したキーワードを含むすべてのノートを一覧表示します。
    • 必須の入力:
      • keyword:検索するキーワードです。
    • 注:結果には、本文を200文字に切り詰めたノートが含まれます。全文を取得するには read-note を使用してください。
    • book:、tag:、status:、title: などの高度な検索条件に対応しています。
  4. list-notes:指定した条件に一致するすべてのノートを一覧表示します。
    • 必須の入力:
      • bookId:ノートブックのIDです。必ず「book:」で始まります。
    • 任意の入力:
      • tagIds:絞り込みに使用するタグIDの配列です。各IDは「tag:」で始まります。
      • keyword:ノートを絞り込むキーワードです。
      • sort:並べ替えの基準(updatedAt、createdAt、または title)。デフォルト:updatedAt。
      • descending:出力順を逆にします。デフォルト:true。
    • 注:結果には、本文を200文字に切り詰めたノートが含まれます。全文を取得するには read-note を使用してください。
  5. list-templates:ノートテンプレートを一覧表示します。最初にカスタムテンプレート、続いてInkdropに同梱されている公式テンプレートが表示されます。
    • 任意の入力:
      • keyword:タイトルのあいまい検索でテンプレートを絞り込みます。
    • 注:結果には、本文を200文字に切り詰めたテンプレートが含まれます。全文を取得するには read-note を使用してください。
  6. create-note:データベースに新しいノートを作成します。
    • 必須の入力:
      • bookId:ノートブックのIDです。「book:」で始まるか、「trash」または「template」である必要があります。カスタムノートテンプレートを作成するには「template」を指定します。
      • title:ノートのタイトルです。
      • body:Markdown形式のノート本文です。
    • 任意の入力:
      • status:ノートのステータス(none、active、onHold、completed、dropped)。
      • tags:ノートに割り当てるタグIDの配列です。各IDは「tag:」で始まる必要があります。
  7. update-note:データベース内の既存のノートを更新します。指定したフィールドのみが更新され、省略したフィールドは変更されません。
    • 必須の入力:
      • _id:ノートのIDです。「note:」で始まる必要があります。
      • _rev:リビジョンID(CouchDB MVCC-token)です。
    • 任意の入力:
      • bookId:ノートブックのIDです。「book:」で始まるか、「trash」または「template」である必要があります。
      • title:ノートのタイトルです。
      • body:Markdown形式のノート本文です。
      • status:ノートのステータス(none、active、onHold、completed、dropped)。
      • tags:ノートに割り当てるタグIDの配列です。各IDは「tag:」で始まる必要があります。
  8. patch-note:完全一致する文字列の置換によって、既存のノート本文を更新します。大きなノートを少しだけ編集する場合、update-note よりも効率的で、トークンを節約できます。現在の本文を取得するため、最初に read-note でノートを読み込む必要があります。
    • 必須の入力:
      • _id:ノートのIDです。「note:」で始まる必要があります。
      • _rev:リビジョンID(CouchDB MVCC-token)です。
      • old_string:ノート本文内で検索する完全一致のテキストです。一致箇所は1つだけである必要があります。一意に特定できるよう、前後の文脈を十分に含めてください。
      • new_string:old_string を置き換えるテキストです。一致したテキストを削除するには、空文字列を使用します。
  9. list-notebooks:すべてのノートブックの一覧を取得します。
  10. read-book:IDで指定した単一のノートブックを取得します。
    • 必須の入力:
      • bookId:ノートブックのIDです。「book:」で始まる必要があります。
  11. create-book:データベースに新しいノートブックを作成します。
    • 必須の入力:
      • name:ノートブック名です。
    • 任意の入力:
      • parentBookId:親ノートブックのIDです。「book:」で始まる必要があります。ルート階層にノートブックを作成する場合は省略します。
  12. update-book:データベース内の既存のノートブックを更新します。指定したフィールドのみが更新され、省略したフィールドは変更されないため、事前にノートブックを読み込む必要はありません。
    • 必須の入力:
      • _id:ノートブックのIDです。「book:」で始まる必要があります。
    • 任意の入力:
      • _rev:リビジョンID(CouchDB MVCC-token)です。楽観的同時実行制御のガードとしてのみ必要です。競合する同時編集があった場合に更新を失敗させるには、この値を渡してください。
      • name:ノートブック名です。
      • parentBookId:親ノートブックのIDです。ノートブックをルート階層に移動するには null を渡してください。
  13. list-tags:すべてのタグの一覧を取得します。
  14. read-tag:IDで指定した単一のタグを取得します。
    • 必須の入力:
      • tagId:タグのIDです。「tag:」で始まる必要があります。
  15. create-tag:データベースに新しいタグを作成します。
    • 必須の入力:
      • name:タグ名です。
    • 任意の入力:
      • color:タグの色の種類(default、red、orange、yellow、olive、green、teal、blue、violet、purple、pink、brown、grey、black)。デフォルト:default。
  16. update-tag:データベース内の既存のタグを更新します。指定したフィールドのみが更新され、省略したフィールドは変更されないため、事前にタグを読み込む必要はありません。
    • 必須の入力:
      • _id:タグのIDです。「tag:」で始まる必要があります。
    • 任意の入力:
      • _rev:リビジョンID(CouchDB MVCC-token)です。楽観的同時実行制御のガードとしてのみ必要です。競合する同時編集があった場合に更新を失敗させるには、この値を渡してください。
      • name:タグ名です。
      • color:タグの色の種類です。現在のタグの色を維持するには省略してください。
  17. create-file:ローカルの画像ファイルまたはBase64形式の画像データから、データベースに新しい添付ファイルを作成します。ノート本文に添付ファイルを埋め込むためのMarkdownを返します。
    • 必須の入力:次のいずれか1つのみ
      • filePath:添付するローカル画像ファイルの絶対パスです。推奨される方法です。画像データが会話に含まれずに済みます。
      • data:Base64エンコードされた画像データです。data: URIプレフィックスは含めません。
    • 任意の入力:
      • name:ファイル名です。デフォルトでは filePath のファイル名が使用されます。data を指定した場合は image.<ext> が使用されます。
      • contentType:MIMEタイプ(image/png、image/jpeg、image/jpg、image/svg+xml、image/gif、image/heic、image/heif)。省略した場合は filePath の拡張子から推定されるため、data を指定する場合は必須です。
      • publicIn:添付ファイルを含めるノートIDの配列です。各IDは「note:」で始まる必要があります。
    • 注:添付ファイルの上限サイズは10MBです。
  18. read-file:IDで指定した添付ファイルを取得します。ファイルのメタデータと、PNG、JPEG、GIFの場合は画像そのものを返します。
    • 必須の入力:
      • fileId:添付ファイルのIDです。「file:」で始まる必要があります。
    • 任意の入力:
      • outputPath:添付ファイルを書き込む絶対パスです。指定するとファイルがそこに保存され、データはインラインで返されません。インライン表示できないSVG、HEIC、HEIFの添付ファイルを取得するには必須です。
      • includeImage:メタデータとともに画像を返すかどうかを指定します。デフォルト:true。大きな添付ファイルのメタデータのみを取得するには false に設定してください。

デバッグ

MCP サーバーは stdio 経由で実行されるため、デバッグが難しい場合があります。最適なデバッグ体験を得るために、MCP Inspector の使用を強くおすすめします。

次のコマンドを使って、npm から MCP Inspector を起動できます。

npx @modelcontextprotocol/inspector "./dist/index.js"

環境変数が正しく設定されていることを確認してください。

起動すると、Inspector にブラウザーからアクセスできる URL が表示され、デバッグを開始できます。

次のコマンドを使ってサーバーログを確認することもできます。

tail -n 20 -f ~/Library/Logs/Claude/mcp-server-inkdrop.log

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。