mcpField
D
Datanotes

Datanotes

ローカル
datanotes.devデータベース03 日前に更新

Datanotes について

Datanotesは、Markdownノートで構造化データを管理する人やエージェント向けのオープンソースデータベースエンジンです。各行を編集可能なファイルとして保ちながら型付きテーブルを検証し、変更を記録して取り消せます。

主な機能

  1. 01Markdownノートを型付きテーブルとして扱う
  2. 02型・リンク・一意性・制約の検証
  3. 03各行を編集可能な通常ファイルで保持
  4. 04書き込みの記録と変更の取り消し
  5. 05Gitリポジトリから固定した拡張機能を導入

活用シーン

  1. 01構造化されたMarkdownノートの検索や更新
  2. 02エージェントが書き込むデータの検証
  3. 03記録済みの変更の取り消し
  4. 04拡張機能によるテーブルやMCPツールの追加

MCP 対応

`datanotes mcp`サーバーにより、MCPクライアントはノートフォルダー上で稼働するエンジンを通じてデータを検索・書き込みできます。エンジンの起動にも対応し、HTTPアクセスも利用できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"davidefornelli-datanotes": {
"command": "npx",
"args": [
"-y",
"datanotes"
]
}
}
}
起動コマンドnpx -y datanotes

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

パッケージ
npmdatanotes3.0.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Datanotes

Datanotes は Markdown 向けのオープンソースデータベースエンジンです。ノートのフォルダーを、プログラムや AI エージェントが MCP または HTTP 経由でクエリ、書き込み、取り消しを行える、型付けされ検証済みのテーブルとして扱います。また、各行は常に、所有者であるあなたが管理するプレーンなファイルのままです。

npm version CI License: Apache-2.0

ドキュメント:datanotes.dev

Datanotes を選ぶ理由

  • エージェントは不正なデータを書き込めません。 書き込みのたびに、型、リンク、一意の値、CHECK 制約についてテーブルに照らして検証します。書き込みが拒否されても、何も変更されません。どの値がどのルールに違反したか、どう修正すればよいかを回答で示します。
  • すべての変更を取り消せます。 エンジンは実行したすべての書き込みを記録します。変更を行った主体(エージェント、そのセッション、トークン)も記録します。undo_migration であらゆる変更を元に戻せます。
  • 中身はあくまで Markdown です。 行はノート、またはパックノートのセクションで、そのフロントマターのキーが列になります。読み取り、編集、grep、Git へのコミットができます。エンジンは手動での編集も読み取り、同様に検証します。
  • 拡張機能。 Git リポジトリからテーブルと MCP ツールを、ピン留めして確認したうえでインストールできます(datanotes extension install)。
  • ローカル優先。 Datanotes は Apache-2.0 で、あなたのマシン上で動作します。機能を有効にしないかぎり、データが外部に送信されることはありません。

向いていない用途

Datanotes は各行をファイルとして保持するため、SQLite や Postgres の代わりにはなりません。次の用途には、従来型のデータベースを選んでください。

  • 大規模な分析データセット
  • 高い書き込みスループット
  • 1 つのフォルダーに対する多数の同時書き込み

Datanotes は 10,000 件のノートまで快適に扱えます。50,000 件では、初回起動に約 15 秒、再起動に 2~3 秒かかります。

クイックスタート

Node.js 22 以降が必要です。Windows では、Node.js 24.16 以降、または 26.1 以降を使用してください。

フォルダー上でエンジンを起動します。そのフォルダーがデータベースになります。空のフォルダーでも、すでにノートが入っているフォルダーでも構いません。

npx -y datanotes serve --database your_database_folder

ノートで Datanotes を実行するでは、最初のテーブルを作成する手順を説明しています。

エージェントを接続する

エージェントは Model Context Protocol(MCP)サーバー datanotes mcp 経由でエンジンに接続します。フォルダー上で動作しているエンジンを使用するか、エンジンを起動します。どのクライアントでも同じコマンドを実行します。

npx -y datanotes mcp --database your_database_folder
Claude Code
claude mcp add datanotes -- \
  npx -y datanotes mcp --database your_database_folder
Claude Desktop

サーバーを claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "datanotes": {
      "command": "npx",
      "args": [
        "-y", "datanotes", "mcp", "--database", "your_database_folder"
      ]
    }
  }
}
Cursor

サーバーをプロジェクト内の .cursor/mcp.json、または ~/.cursor/mcp.json に追加します。

{
  "mcpServers": {
    "datanotes": {
      "command": "npx",
      "args": [
        "-y", "datanotes", "mcp", "--database", "your_database_folder"
      ]
    }
  }
}
VS Code

サーバーをワークスペース内の .vscode/mcp.json に追加します。

{
  "servers": {
    "datanotes": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y", "datanotes", "mcp", "--database", "your_database_folder"
      ]
    }
  }
}
Codex

サーバーを ~/.codex/config.toml に追加します。

[mcp_servers.datanotes]
command = "npx"
args = ["-y", "datanotes", "mcp", "--database", "your_database_folder"]
Windows

Windows では、クライアントは cmd /c 経由で npx を起動します。Windows Subsystem for Linux(WSL)以外で Claude Code を使用する場合:

claude mcp add datanotes -- cmd /c npx -y datanotes mcp --database C:\Notes

JSON ファイルでは、コマンドは cmd で、バックスラッシュはエスケープします。

{
  "mcpServers": {
    "datanotes": {
      "command": "cmd",
      "args": [
        "/c", "npx", "-y", "datanotes", "mcp", "--database", "C:\\Notes"
      ]
    }
  }
}

エージェントの接続では、HTTP トランスポートと名前付きトークンについて説明しています。

TypeScript から使用する

npm install datanotes でパッケージをインストールします。このスクリプトはフォルダー上のエンジンを見つけ、テーブルを作成してクエリを実行します。

import { DatanotesClient } from "datanotes/client";
import { localEngine } from "datanotes/local";

const engine = localEngine("your_database_folder");
if (!engine) throw new Error("Start the engine on the folder first");
const db = new DatanotesClient({ url: engine.url, token: engine.token });

const created = await db.call("create_table", {
  name: "film",
  description: "Classic films I watched or want to watch",
  filename: "{title}",
  columns: [
    {
      name: "title",
      type: "string",
      required: true,
      unique: true,
      description: "The film's title, as on its poster",
    },
    {
      name: "minutes",
      type: "integer",
      min: 1,
      description: "Running time in minutes",
    },
  ],
});
if (!created.ok) throw new Error(String(created.value));

await db.call("insert_row", {
  table: "film",
  values: { title: "Nosferatu", minutes: 94 },
});

// Refused: nothing is written, and the answer explains why
const bad = await db.call("insert_row", {
  table: "film",
  values: { title: "Metropolis", minutes: 0 },
});
if (!bad.ok) console.log(bad.value);

const films = await db.call("select_rows", {
  table: "film",
  where: { minutes: { gt: 90 } },
});
console.log(films.value);

各映画は、フロントマターに値を格納したノート main/public/film/Nosferatu.md になりました。JavaScript クライアントのページでは、クライアントのその他の使い方を説明しています。

詳細はこちら

ライセンス

Apache License 2.0: LICENSE と NOTICE を参照してください。Copyright 2026 Davide Fornelli。

コメント

MCP は初めてですか?

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

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