プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。Google でログインするとレビューを書けます。プロトタイプ · 30分ごとに更新
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Md Log MCP

作者:md-logバージョン 1.3.1i★ 3iパソコンで動く
レジストリ名com.md-log/md-log-mcp

インストール方法

What it does

md-log MCP: save/update/fetch markdown by path (stdio + remote HTTP, PAT auth).

  • Connects パソコンで動く
  • Account or key Needs MDLOG_PAT · 1 setting to fill in (MDLOG_API_BASE_URL)
  • Category 文書・表計算・事務作業

インストール

使っているAIアプリを選んで、設定をコピーしてください。

チェック 3/3 合格 · あなたのパソコンで動きます · ✓ コマンド確認済み 2026年11月13日

まず:どの AI を使っていますか?

使っているアプリを選ぶと、下に手順が表示されます。

Claude につなげますが、先に準備が必要です

Md Log MCP のキーが必要です(提供元のサイトで作成) · 設定を 1 項目入力 (MDLOG_API_BASE_URL) · 先にパソコンへ Node.js を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません

  1. Node.js を入れる(まだなければ)

    もう入っていますか?先に確認 · ターミナルを開き、このコマンドを入力して Enter

    node -v
    • バージョン番号(例 v26.13.1)が出る = 入っています。この手順は飛ばせます
    • "command not found"(Windows では "is not recognized")が出る = まだ入っていないか、入れた直後でターミナルを開き直す必要があります
    ターミナルの開き方

    Mac:⌘ + Space を押し、Terminal と入力して Enter

    Windows:スタートメニューを開き、Windows PowerShell と入力して「開く」

    まだ入っていない場合: 公式ダウンロードページで LTS 版と、クリックで進むインストーラーを選びます:Mac は .pkg、Windows は .msi。ダブルクリックして最後まで進めるだけで、curl コマンドは不要です

    Node.js のダウンロードページを開く ↗

    入れ終わったらターミナルを閉じて開き直し、同じコマンドをもう一度実行します。バージョン番号が出れば完了です: node -v

    一度入れれば、Node.js を使うすべてのツールで使えます

  2. Md Log MCP に登録してキーを作る

    提供元のサイトで登録し、次の手順で使う API キーを作ります。料金や無料プランは提供元のサイトで確認してください。

    キーの取り方は下の提供元 README にあります

  3. 設定を 1 項目入力

    これはプログラムの設定でキーではありません。登録は不要で、作者の説明どおりに入力します。

    • MDLOG_API_BASE_URL md-log backend API base URL (must include /api/v1) · 初期値 https://app.md-log.com/api/v1

    説明は英語の原文のままです。

  4. パソコン版 Claude アプリの設定ファイルを開く

    SettingsDeveloperEdit Config

  5. この設定を貼り付けて保存

    {
      "mcpServers": {
        "md-log": {
          "command": "npx",
          "args": [
            "-y",
            "md-log-mcp"
          ],
          "env": {
            "MDLOG_API_BASE_URL": "https://app.md-log.com/api/v1",
            "MDLOG_PAT": "your-value"
          }
        }
      }
    }

    キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください

  6. Claude を終了してもう一度開く

  7. 試してみる

    Md Log MCP を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Claude が Md Log MCP を使っていると言うか、回答に Md Log MCP のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

ChatGPT はまだ Md Log MCP につなげません

Md Log MCP はパソコンに入れて使うものですが、ChatGPT は Web 上で動くサーバーにしかつなげません

代わりにできること

A · Md Log MCP につなげるアプリを使う

  • Md Log MCP のキーが必要です(提供元のサイトで作成) · 設定を 1 項目入力 (MDLOG_API_BASE_URL) · 先にパソコンへ Node.js を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
  • Md Log MCP のキーが必要です(提供元のサイトで作成) · 設定を 1 項目入力 (MDLOG_API_BASE_URL) · 先にパソコンへ Node.js を入れてください(1 回だけ)
  • Md Log MCP のキーが必要です(提供元のサイトで作成) · 設定を 1 項目入力 (MDLOG_API_BASE_URL) · 先にパソコンへ Node.js を入れてください(1 回だけ)
  • Md Log MCP のキーが必要です(提供元のサイトで作成) · 設定を 1 項目入力 (MDLOG_API_BASE_URL) · 先にパソコンへ Node.js を入れてください(1 回だけ)

B · 文書・表計算・事務作業 の中で ChatGPT につなげる別のサーバー

同じカテゴリでよく使われているものから、キーなしでアドレスだけでつなげるものを選びました

Claude Code につなげますが、先に準備が必要です

Md Log MCP のキーが必要です(提供元のサイトで作成) · 設定を 1 項目入力 (MDLOG_API_BASE_URL) · 先にパソコンへ Node.js を入れてください(1 回だけ)

  1. Node.js を入れる(まだなければ)

    もう入っていますか?先に確認 · ターミナルを開き、このコマンドを入力して Enter

    node -v
    • バージョン番号(例 v26.13.1)が出る = 入っています。この手順は飛ばせます
    • "command not found"(Windows では "is not recognized")が出る = まだ入っていないか、入れた直後でターミナルを開き直す必要があります
    ターミナルの開き方

    Mac:⌘ + Space を押し、Terminal と入力して Enter

    Windows:スタートメニューを開き、Windows PowerShell と入力して「開く」

    まだ入っていない場合: 公式ダウンロードページで LTS 版と、クリックで進むインストーラーを選びます:Mac は .pkg、Windows は .msi。ダブルクリックして最後まで進めるだけで、curl コマンドは不要です

    Node.js のダウンロードページを開く ↗

    入れ終わったらターミナルを閉じて開き直し、同じコマンドをもう一度実行します。バージョン番号が出れば完了です: node -v

    一度入れれば、Node.js を使うすべてのツールで使えます

  2. Md Log MCP に登録してキーを作る

    提供元のサイトで登録し、次の手順で使う API キーを作ります。料金や無料プランは提供元のサイトで確認してください。

    キーの取り方は下の提供元 README にあります

  3. 設定を 1 項目入力

    これはプログラムの設定でキーではありません。登録は不要で、作者の説明どおりに入力します。

    • MDLOG_API_BASE_URL md-log backend API base URL (must include /api/v1) · 初期値 https://app.md-log.com/api/v1

    説明は英語の原文のままです。

  4. ターミナルを開く

    Mac:Command+スペースで Terminal と入力 · Windows:PowerShell を開く

  5. このコマンドを貼り付けて Enter

    claude mcp add --scope user md-log --env MDLOG_API_BASE_URL=https://app.md-log.com/api/v1 --env MDLOG_PAT=your-value -- npx -y md-log-mcp

    Enter の前に「your-value」を自分のキーに書き換えてください

    キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください

  6. Claude Code で /mcp と入力

    Md Log MCP が一覧にあり、接続済みと表示されれば OK です

  7. 試してみる

    Md Log MCP を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Claude Code が Md Log MCP を使っていると言うか、回答に Md Log MCP のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

Cursor につなげますが、先に準備が必要です

Md Log MCP のキーが必要です(提供元のサイトで作成) · 設定を 1 項目入力 (MDLOG_API_BASE_URL) · 先にパソコンへ Node.js を入れてください(1 回だけ)

  1. Node.js を入れる(まだなければ)

    もう入っていますか?先に確認 · ターミナルを開き、このコマンドを入力して Enter

    node -v
    • バージョン番号(例 v26.13.1)が出る = 入っています。この手順は飛ばせます
    • "command not found"(Windows では "is not recognized")が出る = まだ入っていないか、入れた直後でターミナルを開き直す必要があります
    ターミナルの開き方

    Mac:⌘ + Space を押し、Terminal と入力して Enter

    Windows:スタートメニューを開き、Windows PowerShell と入力して「開く」

    まだ入っていない場合: 公式ダウンロードページで LTS 版と、クリックで進むインストーラーを選びます:Mac は .pkg、Windows は .msi。ダブルクリックして最後まで進めるだけで、curl コマンドは不要です

    Node.js のダウンロードページを開く ↗

    入れ終わったらターミナルを閉じて開き直し、同じコマンドをもう一度実行します。バージョン番号が出れば完了です: node -v

    一度入れれば、Node.js を使うすべてのツールで使えます

  2. Md Log MCP に登録してキーを作る

    提供元のサイトで登録し、次の手順で使う API キーを作ります。料金や無料プランは提供元のサイトで確認してください。

    キーの取り方は下の提供元 README にあります

  3. 設定を 1 項目入力

    これはプログラムの設定でキーではありません。登録は不要で、作者の説明どおりに入力します。

    • MDLOG_API_BASE_URL md-log backend API base URL (must include /api/v1) · 初期値 https://app.md-log.com/api/v1

    説明は英語の原文のままです。

  4. このボタンで Cursor を開く

    Cursor で開く

    Cursor がインストールの確認をするので Install を押します

  5. キーを入力

    Md Log MCP の設定で MDLOG_PAT, MDLOG_API_BASE_URL が空です。自分のキーを入れて保存します

    キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください

  6. Cursor の AI チャットを Agent モードで開く

  7. 試してみる

    Md Log MCP を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Cursor が Md Log MCP を使っていると言うか、回答に Md Log MCP のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Cursor のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

VS Code につなげますが、先に準備が必要です

Md Log MCP のキーが必要です(提供元のサイトで作成) · 設定を 1 項目入力 (MDLOG_API_BASE_URL) · 先にパソコンへ Node.js を入れてください(1 回だけ)

  1. Node.js を入れる(まだなければ)

    もう入っていますか?先に確認 · ターミナルを開き、このコマンドを入力して Enter

    node -v
    • バージョン番号(例 v26.13.1)が出る = 入っています。この手順は飛ばせます
    • "command not found"(Windows では "is not recognized")が出る = まだ入っていないか、入れた直後でターミナルを開き直す必要があります
    ターミナルの開き方

    Mac:⌘ + Space を押し、Terminal と入力して Enter

    Windows:スタートメニューを開き、Windows PowerShell と入力して「開く」

    まだ入っていない場合: 公式ダウンロードページで LTS 版と、クリックで進むインストーラーを選びます:Mac は .pkg、Windows は .msi。ダブルクリックして最後まで進めるだけで、curl コマンドは不要です

    Node.js のダウンロードページを開く ↗

    入れ終わったらターミナルを閉じて開き直し、同じコマンドをもう一度実行します。バージョン番号が出れば完了です: node -v

    一度入れれば、Node.js を使うすべてのツールで使えます

  2. Md Log MCP に登録してキーを作る

    提供元のサイトで登録し、次の手順で使う API キーを作ります。料金や無料プランは提供元のサイトで確認してください。

    キーの取り方は下の提供元 README にあります

  3. 設定を 1 項目入力

    これはプログラムの設定でキーではありません。登録は不要で、作者の説明どおりに入力します。

    • MDLOG_API_BASE_URL md-log backend API base URL (must include /api/v1) · 初期値 https://app.md-log.com/api/v1

    説明は英語の原文のままです。

  4. このボタンで VS Code を開く

    VS Code で開く

    VS Code がインストールの確認をするので Install を押します

  5. キーを入力

    Md Log MCP の設定で MDLOG_PAT, MDLOG_API_BASE_URL が空です。自分のキーを入れて保存します

    キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください

  6. VS Code の AI チャットを Agent モードで開く

  7. 試してみる

    Md Log MCP を使って、私に何ができるか教えて、1 つやってみせて

    ✓ VS Code が Md Log MCP を使っていると言うか、回答に Md Log MCP のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に VS Code のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

Windsurf、Zed、Gemini CLI など MCP を使える他のアプリは追加方法がそれぞれ違います。アプリ一覧で確認してください

MCP を使えるアプリをすべて見る →

JSON 設定は下の「開発者向け」にあります

つまずいたら?Md Log MCP を使っている人に聞いてみましょう💬 ディスカッション →
開発者向け:ターミナルのコマンドと JSON 設定

パソコンにインストール

Claude Code

claude mcp add --scope user md-log --env MDLOG_API_BASE_URL=https://app.md-log.com/api/v1 --env MDLOG_PAT=your-value -- npx -y md-log-mcp

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "md-log": {
      "command": "npx",
      "args": [
        "-y",
        "md-log-mcp"
      ],
      "env": {
        "MDLOG_API_BASE_URL": "https://app.md-log.com/api/v1",
        "MDLOG_PAT": "your-value"
      }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "md-log": {
      "command": "npx",
      "args": [
        "-y",
        "md-log-mcp"
      ],
      "env": {
        "MDLOG_API_BASE_URL": "https://app.md-log.com/api/v1",
        "MDLOG_PAT": "your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "md-log": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "md-log-mcp"
      ],
      "env": {
        "MDLOG_API_BASE_URL": "https://app.md-log.com/api/v1",
        "MDLOG_PAT": "your-value"
      }
    }
  }
}

自分で入力する値

  • MDLOG_API_BASE_URL 必須 env
    md-log backend API base URL (must include /api/v1)
  • MDLOG_PAT 秘密 必須 env
    md-log Personal Access Token (mdlog_pat_...)

説明は英語の原文のままです。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

ひと目でわかる

週あたりのダウンロードi
103/週
確認済みドメイン
✓ md-log.com
接続方法
パソコンで動く
最新バージョンi
1.3.1
レジストリ公開日i
2026年11月8日
コードの最終更新i
2026年11月8日
作者
md-log
パッケージ
npm: md-log-mcp
レジストリでの状態
有効

使えるアプリ

このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。

パソコン上で動かせるアプリ

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

すべてのアプリと長所・短所 →

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月15日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名はドメイン md-log.com で確認済みです(レジストリがドメインの所有を確認しています)

  • ✓ 合格

    今もメンテナンスされている

    コードの最終更新:7 日前

  • ✓ 合格

    ライセンスがある

    MITを使用

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

公開済みの脆弱性(OSV.dev)

まだ確認していません

確認していること → · JSON

作者の方へ:再確認の依頼・情報の誤りの報告

話し合い

質問、コツの共有、使えないことの報告ができます。「役に立った」の多い順です。

まだ投稿はありません。最初の質問や共有をどうぞ。

ここの投稿は利用者によるもので、PopNx チームのものではありません。

ログインして投稿

ユーザーレビュー

まだレビューはありません

ログインしてレビューを書く

文書・表計算・事務作業のほかのサーバーとの比較i

  • このカテゴリのほかの3939件のうち89%よりスターが多い
  • このカテゴリのほかの3939件のうち79%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの3939件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Md Log MCPは安全ですか?

当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:MDLOG_PAT

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は7 日前、最新バージョン(1.3.1)がレジストリに届いたのは7 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:Puter MCP, XcodeBuildMCP, Anki MCP Server, Sosumi, Zapier

似た働きのほかの候補

同じカテゴリでほかの作者のもの。コマンドは確認済み。公式を先に、次にスター順。

カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Puter MCP

Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more

作者:HeyPuter広く使われている★ 4.4万5 か月前更新

クラウドで動く✓ 提供元 · puter.com

XcodeBuildMCP

XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.

作者:getsentry広く使われている↓ 13万/週 共有パッケージの数★ 65734 か月前更新

パソコンで動く✓ 提供元 · xcodebuildmcp.com

Anki MCP Server

MCP server for Anki flashcards: adaptive review, notes, media, and deck management via AnkiConnect.

作者:ankimcp成長中↓ 1136/週★ 55841 日前更新

パソコンで動く✓ 提供元 · ankimcp.ai

Sosumi

Search and read Apple developer documentation, HIG, and WWDC transcripts as Markdown.

作者:NSHipster成長中★ 4926 日前更新

クラウドで動く✓ 提供元 · sosumi.ai

Zapier

Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.

作者:zapier成長中★ 4594 か月前更新

クラウドで動く✓ 提供元 · zapier.com
  • Puter MCP — クラウドで動き、インストール不要 · キー不要
  • XcodeBuildMCP — パソコンにインストールが必要 · キー不要
  • Anki MCP Server — パソコンにインストールが必要 · キー不要
  • Sosumi — クラウドで動き、インストール不要 · キー不要
  • Zapier — クラウドで動き、インストール不要 · キー不要 · Claude のディレクトリに掲載

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

md-log-mcp

Review the report, not the diff. An MCP server that lets your AI coding agent — Claude Code, Claude Desktop, Codex, Cursor — save its work and analysis as immutable, versioned Markdown reports into md-log, a human-in-the-loop review & archive layer for "vibe coding." You then read and stylus-annotate (S-Pen / Apple Pencil) those reports on web, phone, and tablet — every save a new immutable version.

A Model Context Protocol server — two transports, one tool set — that lets Claude Code (and other agents) save .md files — text and embedded screenshots together — straight into md-log, a human-in-the-loop review & archive layer for vibe coding. The recommended way to connect is the hosted remote endpoint (https://mcp.md-log.com/mcp, a URL + your key — no install); a local stdio (npx -y md-log-mcp) transport is the alternative. The agent writes a report by path (my-project/2026-07-07-error-report.md); missing folders are auto-created, images are uploaded and their references rewritten to asset:// links, and every save becomes an immutable new version. The same report is then readable, editable, and stylus-annotatable (S-Pen / Apple Pencil where supported) on a phone or tablet, and on the web.

md-log is a hosted service at https://app.md-log.com — you don't run any server yourself. This package is just the connector: a thin authenticated HTTP client that validates POSIX paths, orchestrates asset uploads, maps errors to stable agent codes, and forwards everything to the hosted md-log service — the single authority for auth, storage, versioning and quota. All you need is a Personal Access Token from the web app.

Stack

  • @modelcontextprotocol/sdk (TypeScript) — one McpServer (17 tools), two transports.
  • stdio transport (md-log-mcp) — JSON-RPC over stdin/stdout; the default local mode (so stdout is reserved for the protocol; logs go to stderr). PAT from env.
  • Streamable HTTP transport (md-log-mcp-http) — the remote mode: agents connect by URL with no local install; the PAT is taken per request from the Authorization header. See Remote (Streamable HTTP) mode.
  • TypeScript, bundled with tsup to ESM dist/server.js (stdio) + dist/http.js (HTTP). Runtime deps: the MCP SDK and zod (input schemas). Node's built-in fetch/http are the only network layers — no web framework.
  • PAT auth — a md-log Personal Access Token sent to the backend as Authorization: Bearer.

Requirements

  • Node 22+
  • A Personal Access Token (PAT) minted in the md-log web app (Settings → Tokens; shown once)

That's it — the md-log service itself is hosted at https://app.md-log.com; there is nothing to install or self-host.

Tools (17)

Every tool returns dual output — a human-readable content[].text and a machine-readable structuredContent — and validates the POSIX path (NFC-normalize; reject ../., control chars, empty/whitespace segments, backslashes, reserved names; enforce 255-byte name / 1024-byte path limits; require .md for files) before any backend call. All requests hit the base URL in MDLOG_API_BASE_URL (which already includes /api/v1).

ToolWhat it does
`save_markdown` ⭐The headline tool. Create or overwrite a .md by path (force last-writer-wins); missing folders auto-created. Optionally uploads embedded images first (each given as data_base64 or a local file_path) and rewrites each placeholder in the content to an asset:// link. Accepts commit_message — a recommended 1-2 line change summary shown in the version history.
upload_assetUpload one image (reserve → presigned PUT → complete) and return an asset:// reference to embed as . Provide the image as either data_base64 (inline base64) or file_path (a local file the server reads) — exactly one; with file_path, filename defaults to the basename and content_type is inferred from the extension (png/jpg/jpeg/gif/webp/avif).
append_to_markdownAppend to an existing file with optimistic concurrency (GET current → concat → conditional PUT with base_version_no). Auto-retries once on conflict, then surfaces CONFLICT. Accepts commit_message — a recommended 1-2 line change summary shown in the version history.
`edit_markdown`Change PART of a file by exact literal replacement (read → apply → conditional PUT with base_version_no; auto-retries once on conflict, re-applying every edit). Pass several changes at once as `edits: [{old_string, new_string, replace_all?}, …]` (max 50, applied in order) — they land as one write = one version = one notification; for a single change the old_string/new_string shorthand still works (never both). Each old_string must match exactly once, counting overlapping positions too ("\n\n" inside "\n\n\n" is ambiguous → detail.overlapping: true) — 0 matches or an ambiguous >1 rejects the whole call with VALIDATION (detail.reason = NO_MATCH / AMBIGUOUS_MATCH, detail.edit_index = the failing edit) and nothing is written; set replace_all:true to change every occurrence on purpose. Other detail.reasons: input shape — MIXED_INPUT, MISSING_EDIT, EMPTY_EDITS, TOO_MANY_EDITS, EMPTY_OLD_STRING, IDENTICAL_STRINGS (rejected before any read); result — NO_CHANGE (edits cancel out), DOCUMENT_TOO_LARGE (a step would pass the 25 MiB cap), TOO_MANY_REPLACEMENTS (more occurrences replaced in one call than the document cap allows), BATCH_TOO_SLOW (edits after the first stopped once the call has run 2 s — split them across calls). A match failure on the conflict retry carries detail.after_concurrent_write: true. Never creates a file (missing path → NOT_FOUND) and has no force mode — prefer it over update_markdown for any partial change.
update_markdownReplace a file's ENTIRE content. Pass expected_version for optimistic concurrency (mismatch → CONFLICT); omit it to force LWW. Passing expected_version for a path that does not exist now returns CONFLICT (detail.server_version_no = 0), not a silent create. For a partial change use edit_markdown instead. Accepts commit_message — a recommended 1-2 line change summary shown in the version history.
restore_versionRoll a file back to an earlier version_no (from list_versions): that version's content becomes a NEW current version — history is immutable, so the rollback is itself undoable. Restoring the version the file is already on is an accepted no-op. Accepts commit_message.
get_markdownRead a file's content by path (materializes inline content or a presigned content URL for large docs). Pass version (a version_no from list_versions) to read an old immutable version.
list_versionsList a file's immutable version history, newest first (version_no, commit_message, author, registered_at, size).
delete_markdownSoft-delete a file. Requires confirm:true (otherwise VALIDATION); resolves the path to a document key first.
create_foldermkdir -p — create every missing segment; already-existing folders count as success.
list_foldersReturn the full folder tree.
list_filesList the documents and immediate subfolders inside a folder path.
search_markdownSearch by TITLE (substring) + BODY full-text (current versions; whole-word match, ranked, body hits include a snippet).
move_markdownMove and/or rename a .md by path (from_path → to_path); destination folders auto-created; the document KEEPS its key, so version history and reviewers' annotations survive.
move_folderMove a folder (whole subtree) under a new parent (new_parent_path empty/omitted = root); parent auto-created; cyclic moves rejected server-side.
rename_folderRename a folder in place (descendant paths rewritten server-side).
delete_folderDelete a folder. Requires confirm:true; by default only an EMPTY folder is deleted — pass cascade:true to soft-delete the whole subtree (rm -r).
Error codes surfaced to the agent

Backend failures return { isError: true, content:[{type:"text", ...}] } with a mapped code in structuredContent.error.code:

NOT_FOUND · CONFLICT (carries the server head {server_version_no, server_checksum, …} in detail) · UNAUTHORIZED · RATE_LIMITED · QUOTA_EXCEEDED · BACKEND_UNAVAILABLE · VALIDATION · FOLDER_EXISTS (swallowed as success by create_folder) · ERROR.

Authentication

The MCP/PC lane authenticates with a Personal Access Token (mdlog_pat_…) — minted once in the web app's Settings and supplied via env. The client attaches it as Authorization: Bearer (plus X-API-Token for compatibility) on every request. The backend is the single source of truth for auth and quota.

VariableRequiredExampleNotes
MDLOG_API_BASE_URLyeshttps://app.md-log.com/api/v1The hosted service base, including /api/v1. No version suffix is appended; a trailing slash is stripped.
MDLOG_PATyesmdlog_pat_xxxxxxxxxxxxxxxxxxxxxxxxBearer PAT. Store it securely (OS keychain) — never commit it.
MDLOG_MAX_DOCUMENT_BYTESno26214400 (25 MiB)Client-side pre-flight for the backend's per-document body cap, in UTF-8 bytes (Korean is 3 bytes/char). An over-cap save fails immediately with a VALIDATION error naming the actual size, instead of an opaque backend 400. Applies to both transports. Change only against a self-hosted backend with a different cap.

The server fails fast at startup with a clear message if either var is missing or the base URL is malformed.

Build

npm install

npm run build # tsup → dist/server.js (ESM, Node 22) npm run typecheck # tsc --noEmit (optional)

Smoke test

scripts/smoke.mjs spawns the built server over stdio (MCP SDK Client + StdioClientTransport), then runs initialize → tools/list → save_markdown (a small report embedding a tiny data: PNG) → get_markdown (reads it back, checks the marker) → search_markdown — printing PASS/FAIL per step and exiting non-zero on any failure. Run it against a live backend with a real PAT:

npm run build

MDLOG_API_BASE_URL="http://localhost:8080/api/v1" \ MDLOG_PAT="mdlog_pat_xxxx" \ node scripts/smoke.mjs # or: npm run smoke

Connect a client

Mint the PAT in the web app's Settings → Tokens, store it securely, then add md-log to your MCP client. Never commit a PAT.

📄 연결 가이드 (HTML) — md-log.com/guides/customer-guide.html: 웹 앱에서 발급받은 MCP 키(PAT) 로 URL 연결(권장) 또는 npx 로컬 연결 (Claude Code · Desktop · Codex · Cursor).

Recommended — remote (URL), no install

Point your client at the hosted endpoint and pass the PAT as a Bearer header. Nothing to install — no Node.js, no `npx`. (You don't even need this package for the hosted connection.)

# Claude Code

claude mcp add --transport http md-log https://mcp.md-log.com/mcp \ --header "Authorization: Bearer mdlog_pat_xxxxxxxxxxxxxxxxxxxxxxxx"

// Cursor / Claude Desktop / any client that takes JSON — the `type` field MUST be "http"

{ "mcpServers": { "md-log": { "type

冒頭だけを表示しています。続きはリポジトリで読めます