Docs

MCPサーバー

monthlet 0.13.1 以降

monthlet は MCP サーバとしてふるまえます。Claude Code のようなアプリ外のエージェントが、ファイルを直接触るのではなく monthlet を通して vault のノートを読み書きできます。このページは、公開しているツールと、それぞれが何を保証するかをまとめたものです。アプリ内での操作手順はアプリのヘルプをご覧ください。

概要

有効にすると monthlet が MCP の接続を待ち受け、決まったツールを公開します。ノートの検索と一覧・ノートの Markdown での読み取り・スプレッドシートのセルとチャートの数値の読み取り、そして別途許可したときだけノートの作成と書き換え、ノートとフォルダの移動・名前の変更です。

アプリの起動が前提です。接続できるのは monthlet を起動している間だけで、公開される vault は、いま開いている 1 つです。vault を切り替えると公開対象も切り替わります。

すべての操作は monthlet を経由します。ファイルを書くのは常にアプリ自身であり、それによって変更履歴・検索インデックス・開いている編集画面が、エージェントの操作と食い違わないようにしています。

セットアップ

  1. monthlet の設定 → コネクタ → 外部エージェントに公開を開き、公開するをオンにします。
  2. セットアップのコマンドをコピーを押し、コピーした内容をターミナルで実行します。Claude Code に登録されます。
  3. 書き込みも許可する場合は、同じ画面の書き込みを許可をオンにします。既定はオフです。
  4. ノートやフォルダの移動・名前の変更も許可する場合は、その下の移動・名前の変更を許可をオンにします。既定はオフで、書き込みの許可も必要です。

コマンドは次の形です。実際のものは設定画面からコピーしてください(アプリの置き場所によってパスが変わります)。

claude mcp add --scope user monthlet -- \
  /Applications/monthlet.app/Contents/Resources/bin/monthlet-mcp

これは 2 つある接続方法のうち新しいほうで、monthlet 0.13.3 以降が必要です(このコマンドを同梱したのが 0.13.3 からです)。設定画面でも見分けられます。セットアップにコマンドをコピーと HTTP で直接(トークン込み)の 2 つが並んでいれば使えます。ボタンが 1 つだけの場合は、下の HTTP でつなぐ方法をお使いください。

HTTP で直接つなぐ

コマンドを起動できないクライアントや、streamable HTTP しか話さないクライアントは、接続先へ直接つなげます。こちらは同じ画面の HTTP で直接(トークン込み)からコピーしてください(トークンを含み、既定のポートが使用中のときはポート番号も変わります)。

claude mcp add --scope user --transport http monthlet \
  http://127.0.0.1:27180/mcp --header "Authorization: Bearer <token>"

ツール

読み取り

ツール用途主な引数返すもの
search_notesノートとスプレッドシートの全文検索。タイトル・本文・タグが対象。query(必須)・tags・includeArchived・limit(既定20・monthlet 1.1.0以降は上限199)関連度順の該当件を`results`で返す。各件にパス・タイトル・種別・更新日・タグ・前後のスニペット。monthlet 1.1.0以降は、`limit`で切ったかどうかの`truncated`と、使った`limit`も返す。`truncated`がtrueなら当たりはまだあるので、`limit`を上げるか語を絞る。
grep_notesノートの本文を、完全一致か正規表現で検索する(grepと同じ使い方)。対象はread_noteが返すのと同じMarkdown。スプレッドシートは対象外。monthlet 1.1.0以降。pattern(必須)・regex・ignoreCase・path(フォルダ、またはdev/**/*.htmlのようなグロブ)・outputMode(lines / files)・context(0〜5)・includeArchived・limit(既定100・上限500)当たった行(パス・行番号・行の中身)。`files`ならノートごとの件数。ほかに、limitに関係なく数えた`totalMatches`・`totalFiles`、`truncated`、読めずに飛ばしたノートの数`skipped`。0件のときは`skipped`が0であることを見てから「無い」と判断する。
list_notesノートとスプレッドシートの一覧。更新の新しい順。folder・includeExcerpt・includeArchived・limit(既定 200)パス・フォルダ・タイトル・種別(ノート / シート)・更新日・タグ・ピン・アーカイブ。指定すると本文冒頭 160 字も。
read_noteノートの本文を Markdown で読む。スプレッドシートは対象外(read_sheet_range を使う)。path(必須)・offset(読み始める行・1始まり)・limit(読む行数)パス・タイトル・タグ・更新日・本文(Markdown)・版(`version`)。monthlet 1.1.0以降は、本文の先頭に`---`で囲んだfrontmatterが付く。中身はOKF(Open Knowledge Format)の種別のキー`type`(ノートが持っていなければ`Note`)と、ノート独自のキー(title・tags・pinned・archivedとmonthletが持つ日付以外)。ほかに`startLine`・`endLine`・`totalLines`と、一部だけを返したかどうかの`partial`。一部だけを返したときは`version`が付かない。`offset`と`limit`はmonthlet 1.1.1以降。
read_sheet_rangevault 内のスプレッドシートのセルを読む。path(この接続では必須)・range(A1 形式)・sheet_idセルの値。range を省略すると使用範囲の概観。
read_chart_dataノート内のチャートの数値を読む。path(必須)・idチャートごとのラベルと系列の値。シートに連動している場合は参照元のパスと範囲も。
list_foldersvaultのフォルダのツリーを返す(空のフォルダも含む)。ノートを作る場所や移動先を決める前に、構造を見るのに使う。monthlet 1.1.1以降。path(起点のフォルダ)・depth(起点の直下が1)フォルダごとのパス・名前・`documents`(直下のノートとスプレッドシートの数)・`totalDocuments`(配下すべての数)・子フォルダ。最大2,000フォルダで、`depth`か上限で切ったところには`truncated`が付く。
list_filesフォルダの中のファイルを、どのノートに付いているかと関係なく列挙する。既定では画像・PDF・動画・音声などの添付だけ。あるノートに付いている添付だけを引くときは`list_attachments`を使う。monthlet 1.1.1以降。path・recursive(既定true)・include(files / notes / all)ファイルごとのパス・種別(note / image / video / audio / other)・サイズ。
get_backlinks指定したノートへリンクしているノートを一覧する。クラウドにあってまだダウンロードされていないノートは含まない。monthlet 1.1.1以降。path(必須)リンク元のノートごとのパスとタイトル。
list_attachmentsあるノートに付いている添付を一覧する。本文から参照しているもの(`where: body`)と、添付パネルだけにあるもの(`where: panel`)の両方が出る。フォルダの中のファイルをノートと関係なく一覧するときは`list_files`を使う。monthlet 1.1.1以降。path(必須)添付ごとの`path`(`readWith`のツールにそのまま渡せる)・本文に書かれている参照・`where`・`kind`(image / pdf / text / video / audio / other)・`exists`・`size`と、中身を読むツールの`readWith`(`view_image` / `read_pdf` / `read_file`。読めないものは空)。
view_imagevault内の画像(PNG・JPEG・GIF・WebP)を、エージェントが見られる形で返す。monthlet 1.1.1以降。path(必須。list_attachmentsのpathをそのまま渡せる)MCPの画像コンテンツとしての画像。
read_pdfvault内のPDFから文字を取り出す。図表やレイアウトは含まず、文字の層が無いスキャンしたPDFはエラーになる。monthlet 1.1.1以降。path(必須)PDFの文字。
read_filevault内のテキストのファイル(.md・.txt・.csv・.jsonなど)を読む。ノートは`read_note`、PDFは`read_pdf`で読む。monthlet 1.1.1以降。path(必須)ファイルの中身。

書き込み

これらは書き込みを許可がオンのときだけ現れます。パスは vault からの相対パスで、読み取り系のツールが返すものと同じです。

ツール用途主な引数返すもの
create_noteMarkdownからノートを作る。指定したフォルダが無ければ作られる。monthlet 1.1.0以降は、先頭のfrontmatterのtagsがノートのタグに、それ以外のキーがノートのfrontmatterになる(タイトルは引数の`title`)。monthlet 1.1.1以降は、本文の`[[ノート名]]`が内部リンクになる。title(必須)・markdown(必須)・folder・tags(monthlet 1.1.1以降)作成したノートのパスとタイトル。同じタイトルが既にあるときは連番が付く。monthlet 1.1.1以降はタグと、どのノートにも当たらず文字のまま残った`[[...]]`の名前(`unresolvedWikilinks`)も返す。
update_noteノートの本文をMarkdownで置き換える。`read_note`が返した`version`を渡す。monthlet 1.1.0以降は、先頭のfrontmatterをノートのfrontmatterとして保存する(省くと今のまま・空の`---` `---`で消す)。monthlet 1.1.1以降は、本文の`[[ノート名]]`が内部リンクになる。path(必須)・markdown(必須)・version(1.0.2から必須)パス・タイトル・保たれたプレースホルダ・消えたプレースホルダ・書いたあとの`version`。titleやtagsのようにmonthletが管理するキーは、ここではfrontmatterで変えられない。書いたときは`ignoredFrontmatterKeys`で知らせる。monthlet 1.1.1以降は`unresolvedWikilinks`も返す。
edit_noteノートの本文の一部を置き換える(monthlet 1.1.0以降)。`read_note`が返した本文の中の文字列`old_string`を`new_string`に置き換え、ほかの部分は元のまま残す。`read_note`が返した`version`を渡す。path(必須)・old_string(必須)・new_string(必須・消すときは"")・replace_all・version(必須)`update_note`と同じものと、置き換えた箇所の数`replacements`。monthlet 1.1.1以降は、`new_string`の`[[ノート名]]`が内部リンクになり、どのノートにも当たらなかった名前を`unresolvedWikilinks`で返す。
create_folder空のフォルダを作る。途中の階層も作られる。path(必須)作成したフォルダ。
create_sheet行データからスプレッドシートを作る。作成時に数式と書式は設定しない。title(必須)・rows(必須)・folder作成したスプレッドシートのパスとタイトル。
update_tagsノートかスプレッドシートのタグを足す・外す。本文は変わらない。大文字小文字や全角半角の違いは同じタグとして扱い、先頭の#は付けても付けなくてもよい。monthlet 1.1.1以降。path(必須)・add・remove・versionパスと、結果として付いているタグ。渡した`version`がまだ一致していれば、書いたあとの`version`も返るので、読み直さずに`update_note`へ渡せる。
add_attachmentノートに添付を足す。中身をbase64で渡すとノートと同じフォルダに保存し(同名があれば上書きせず連番を付ける)、vault内に既にあるファイルを渡すとコピーせずに参照する。vaultの外のパスは受け付けないので、中身を渡す。保存できるのは画像・動画・音声・PDF・テキスト(txt・md・csv・tsv・json・log)だけで、上限は20MB。monthlet 1.1.1以降。path(必須)・dataとfilenameかfile・placement(bodyかpanel。既定は画像・動画・音声が本文の末尾、それ以外は添付パネル)・version添付のパス・ノートに書いた参照・置いた場所・コピーしたかどうか。添付パネルに置いて、渡した`version`がまだ一致していれば、書いたあとの`version`も返る。

移動・名前の変更

これらは書き込みを許可と移動・名前の変更を許可の両方がオンのときだけ現れます(monthlet 1.1.0以降)。ほかのノートからの内部リンクは移動先に合わせて書き換わります。monthletで編集中(未保存)のノートは移動も名前の変更もせず、そのようなノートを含むフォルダも動かしません。削除は提供していません。

ツール用途主な引数返すもの
move_noteノートを別のフォルダへ移動する。ファイル名は変わらない。path(必須)・to_folder(必須。vaultの最上位は""か.)移動後のパス。移動先に同じ名前のファイルがあるときは番号が付く。
move_folderフォルダを中身ごと別のフォルダの下へ移動する。自分自身やその下のフォルダへは移動できない。path(必須)・to_folder(必須。vaultの最上位は""か.)移動後のパス。
rename_noteノートのタイトルを変える。ファイル名もタイトルに合わせて変わる。path(必須)・new_title(必須)新しいタイトルとパス。
rename_folderフォルダの名前を、同じ場所のまま変える。中のノートのパスも変わる。別のフォルダの下へ動かすときはmove_folderを使う。path(必須)・new_name(必須)変更後のパス。

ツールが保証すること

意図的に公開していない操作

アプリには存在しますが、この接続では提供していません。

セキュリティ

互換の方針