Journal Mcp Rmcp
БесплатноНе проверенrmcp (MCP) interface layer for journal-mcp: ServerHandler, tool_router, and stdio transport wiring over journal-mcp-core
Описание
rmcp (MCP) interface layer for journal-mcp: ServerHandler, tool_router, and stdio transport wiring over journal-mcp-core
README
Project canonical history primitive — chapter state machine + multi-schema EventLog + append-only projections, served as an MCP server.
Project の 正史 (= 判断 + 検証の流れ、 「再開・中断・路線変更判断のための単一参照点」) を AI / Human 共通で読める形で物理化する MCP server。
Position
mini-app-mcp (table-scoped CRUD) / outline-mcp (tree-scoped knowledge) / persona-journal-mcp (persona-scoped diary) と直交する project-scoped time-series narrative layer。 詳細比較は docs/design.md §1.5 参照。
Core Principles
- Chapter = compound State Machine entity — open → appending → closed の transition + section 集合の close 条件 (
sections_present/sections_non_empty) 駆動 - Schema-driven section policy —
append-only-chain/append-only-log/append-once/replace-forbiddenの 4 種を section ごとに宣言 - Multi-Schema 並走 —
journal-mcp-canonical-v1/madr-v1/minimal-v1等を同一 project 内に混在可能、 chapter ごとにchapter_meta.schema_idで固定 - EventLog SoT + 多 Projection — SQLite EventLog が canonical SoT、 FileProjection (
workspace/journal.md) / OutlineProjection / MiniAppProjection / GhProjection が読み側 dump - 二層 immutability guard — Rust sealed trait + SQLite
BEFORE UPDATE/DELETE RAISE(ABORT)trigger
Status
WIP — implementation in progress (ST7 complete). ST1 (EventLog SQLite primitive), ST2 (ChapterSchema parser + SchemaRegistry + built-in schema embed), ST3 (JournalCore schema-driven state transition engine + ChapterHandle typestate), ST4 (sealed JournalProjection trait + FileProjection dirty-tracking skeleton + JournalCore projection dispatch wiring), ST5 (FileProjection full implementation — content-hash dirty-skip + atomic rename + debounce + SchemaRegistry accessor helpers), ST6 (JournalMcpServer + all 15 journal_* MCP tools via #[tool_router] + stdio transport + JournalCore API extensions), and ST7 (FileProjection explicit-only render redesign + hash-check auto-backup guard + journal_import 16th tool + EventLog fifth event type import + test isolation via new_with_config) are implemented and tested.
The MCP server binary (crates/journal-mcp) is now functional. Set JOURNAL_PROJECT_ROOT to your project directory and run the binary; it serves all 16 tools over stdio transport as specified in docs/design.md §6 and §10 Step 5.
Key behaviour changes introduced in ST7:
- Explicit-only render —
close_chapterno longer auto-renders toworkspace/journal.md. Calljournal_projection_rebuildexplicitly to update the file projection. - Hash-check auto-backup — when
journal_projection_rebuildwrites to an existingworkspace/journal.mdwhose content differs from the last write (indicating external edits), the original is saved asworkspace/journal.md.bak.<epoch_ms>before overwriting. journal_importmigration tool — imports an existingjournal-mcp-canonical-v1markdown file atomically (one SQLite transaction, all chapters land inclosedstate).
See docs/design.md for the full design specification. See CHANGELOG.md for what has been implemented.
Layout
journal-mcp/
├── Cargo.toml # workspace (rmcp, schemars, serde_json, tracing-subscriber added ST6)
├── crates/
│ ├── journal-mcp-core/ # core library
│ │ ├── embed/
│ │ │ ├── journal_mcp_canonical_v1.yaml # ST2: built-in canonical journal schema (compile-time embed)
│ │ │ ├── madr_v1.yaml # ST2: built-in ADR schema (compile-time embed)
│ │ │ └── minimal_v1.yaml # ST2: built-in minimal schema (compile-time embed)
│ │ ├── src/
│ │ │ ├── lib.rs # public re-exports (updated ST4/ST6/ST7)
│ │ │ ├── event_log.rs # ST1: EventLog SQLite primitive (append-only SoT);
│ │ │ │ # ST6: all_chapter_metas() added;
│ │ │ │ # ST7: append_import(payload, tx) + import event replay
│ │ │ ├── schema.rs # ST2: ChapterSchema YAML parser + SchemaError;
│ │ │ │ # ST3: runtime helpers (transition/section/run_hooks) + HookSpec/HookAction/HookWarning;
│ │ │ │ # ST5: section_names() / initial_state() accessor helpers
│ │ │ ├── registry.rs # ST2: SchemaRegistry two-layer resolver (L1 built-in / L2 project-local);
│ │ │ │ # ST6: load_from_yaml_str() runtime mutation
│ │ │ ├── core.rs # ST3: JournalCore schema-driven state transition engine;
│ │ │ │ # ST4: projection dispatch wiring;
│ │ │ │ # ST6: append_progress / tail_chapters / chapter_ids /
│ │ │ │ # open_chapter_ids / progress_of / grep_chapters /
│ │ │ │ # list_projection_names / rebuild_projection /
│ │ │ │ # load_schema_yaml added;
│ │ │ │ # ST7: import_chapter(path) added;
│ │ │ │ # close_chapter rebuild dispatch removed (explicit-only)
│ │ │ ├── error.rs # ST7: JournalError::ImportCollision { chapter_id, existing_epoch_ms } added
│ │ │ ├── handle.rs # ST3: ChapterHandle<S: ChapterState> compile-time typestate guard (BP-6.2)
│ │ │ ├── projection.rs # ST4: sealed JournalProjection trait + ProjectionError;
│ │ │ │ # ST6: name() required method added to trait
│ │ │ └── projection/
│ │ │ └── file.rs # ST4: FileProjection skeleton;
│ │ │ # ST5: full implementation (content-hash dirty-skip +
│ │ │ # atomic rename + debounce);
│ │ │ # ST6: name() -> "file" impl;
│ │ │ # ST7: last_written_hash field + hash-check auto-backup guard
│ │ └── tests/
│ │ ├── event_log_test.rs # ST1: 3 integration tests
│ │ ├── schema_registry_test.rs # ST2: 3 integration tests
│ │ ├── journal_core_test.rs # ST3: 4 integration tests (T1 happy path / T2 AppendOnce / T3 close requires / T4 hook keyword_detect)
│ │ └── projection_test.rs # ST4: 2 integration tests (dispatch wiring / FileProjection direct);
│ │ # ST5: content-hash dirty-skip + atomic rename tests;
│ │ # ST6: journal_tool_router_count (15 tools assert);
│ │ # ST7: explicit-only render + hash-check backup tests
│ └── journal-mcp/ # stdio MCP server binary
│ ├── Cargo.toml # ST6: rmcp, schemars, serde_json, anyhow, tokio, tracing-subscriber
│ └── src/
│ └── main.rs # ST6: JournalMcpServer + #[tool_router] 15 tools + stdio main;
│ # ST7: journal_import 16th tool + new_with_config test-only API +
│ # JOURNAL_DISABLE_FILE_PROJECTION env-var path removed
├── docs/
│ └── design.md # design specification (this is the SoT);
│ # ST7: §8.1 import event type added; §13 migration tool 昇格 + Dogfood Reset SOP
└── LICENSE-MIT / LICENSE-APACHE
MCP Tools
All 16 tools are registered in a single #[tool_router] impl JournalMcpServer block and served over stdio transport.
| Tool | Category | Description |
|---|---|---|
journal_open_chapter |
lifecycle | Open a new chapter with a given name and schema ID |
journal_append_section |
lifecycle | Append a section body to an open chapter |
journal_append_progress |
lifecycle | Append a progress line to the Progress section |
journal_close_chapter |
lifecycle | Close a chapter (validates close requirements) |
journal_tail |
read | Return the last N chapters |
journal_grep |
read | Substring search across all section bodies |
journal_chapter_list |
read | List all chapters in Decision Log table format |
journal_open_chapters |
read | List IDs of all currently open chapters |
journal_progress_of |
read | Return Progress-section events for a chapter |
journal_schema_load |
schema | Load a YAML schema into the runtime L2 registry |
journal_schema_list |
schema | List all registered schema IDs |
journal_schema_show |
schema | Return the full YAML for a registered schema |
journal_projection_attach |
projection | Attach a named projection to the server |
journal_projection_detach |
projection | Detach a named projection |
journal_projection_rebuild |
projection | Replay all chapters through a named projection (explicit-only render trigger) |
journal_import |
migration | Import a journal-mcp-canonical-v1 markdown file atomically (all chapters land in closed state; chapter-ID collisions abort the entire import) |
License
MIT OR Apache-2.0
Установка Journal Mcp Rmcp
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/ynishi/journal-mcpFAQ
Journal Mcp Rmcp MCP бесплатный?
Да, Journal Mcp Rmcp MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Journal Mcp Rmcp?
Нет, Journal Mcp Rmcp работает без API-ключей и переменных окружения.
Journal Mcp Rmcp — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Journal Mcp Rmcp в Claude Desktop, Claude Code или Cursor?
Открой Journal Mcp Rmcp на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Journal Mcp Rmcp with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
