agent-notes-mcp
by mitszo
README.md
# agent-notes-mcp
`agent-notes-mcp` は、Codex などの MCP クライアントから個人用 Markdown ノートを安全に検索・編集するための、ローカル stdio MCP サーバーです。
ファイル名、YAML frontmatter、Markdown 本文の通常の全文検索を使います。ベクトル DB や埋め込みモデルは必要ありません。
## 主な機能
- 設定した root 内の Markdown ノートの検索・一覧・読込み
- 書込み可能な root 内でのノート作成、追記、置換、移動
- 置換・移動時の SHA-256 による競合検出
- 明示的にマークした Markdown ブロックの安全な一括更新
- 任意の一括更新、更新日時の記録、activity log
- 削除操作およびネットワーク待受けは提供しない
アクセス境界と更新時の保証は [安全性モデル](docs/security-model.md) を参照してください。
## 必要条件
- Python 3.14 以上
- [uv](https://docs.astral.sh/uv/)
## インストール
ローカルの checkout から導入する場合:
```shell
uv tool install .
```
GitHub の main ブランチから導入する場合:
```shell
uv tool install git+https://github.com/mitszo/agent-notes-mcp.git
```
特定のコミットやタグを使う場合は、URL の末尾へ `@<ref>` を追加します。
## 設定
設定例をコピーし、各パスを自分が管理するディレクトリに置き換えます。
```shell
mkdir -p ~/.config/agent-notes-mcp
cp config.example.toml ~/.config/agent-notes-mcp/config.toml
```
`read_roots` は検索・読込みを許可します。`write_roots` は検索・読込み・編集を許可し、読込み可能な root の内側に置く必要があります。最初は inbox や memos のような狭い書込み root から始めてください。
## Codex への登録
導入済みのコマンドを stdio MCP サーバーとして登録します。
```toml
[mcp_servers.agent_notes]
command = "agent_notes"
```
ソース checkout を使う場合は、設定ファイルを明示します。
```toml
[mcp_servers.agent_notes]
command = "uv"
args = ["run", "agent_notes", "--config", "/absolute/path/to/config.toml"]
```
## 最初の 5 分
Codex で新しいスレッドを開き、まず次のように依頼してください。
```text
agent_notes で設定済みの root を確認し、ノートを検索できるか試してください。
```
Codex は `list_roots`、`search_notes`、`read_note` などの MCP ツールを使えます。書込みを試すときは、設定で許可した狭い `write_roots` 内に新規のテスト用 Markdown ファイルを作るよう依頼してください。
複数の開発リポジトリでノートを引継ぎに使う場合は、[Codex のプロジェクトコンテキスト例](docs/recipes/project-context-for-codex.md) と、コピーして調整できる[スキル例](examples/project-notes-context/)を参照してください。この運用は任意であり、ノートの配置や形式をサーバーが強制することはありません。
## 安全な更新
既存ノートを置換・移動する前に読込み、返された `sha256` を `expected_sha256` として指定します。その間に内容が変わった場合、サーバーは上書きせず更新を拒否します。
ノート内で更新を許可する範囲を限定するには、管理ブロックで囲みます。
```md
<!-- agent-notes:managed next-actions -->
## 次の行動
- 下書きを確認する
<!-- /agent-notes:managed next-actions -->
```
`update_managed_blocks` は、構造が検証できた管理ブロックだけを更新します。`batch_update_notes` は、対象すべての更新を検証してから書込みを開始します。
## 開発
```shell
uv sync --all-groups
uv run pytest
```
## ライセンス
[MIT](LICENSE)
## 開発について
このプロジェクトは Codex を開発支援に利用しています。公開前の内容確認と判断はメンテナーが行っています。
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues