Skip to main content

MCP Server

9 requirements · 23 scenarios

Persisted Intrinsic Node IDs

JR-mcp-server-001
The MCP server SHALL use persisted intrinsic paragraph/node identifiers (jr_para_*) as canonical anchor identity.

The identifier strategy SHALL NOT use absolute sequential indexes as anchor identity.
4 test scenarios
  • Re-opening unchanged document yields same IDs JR-mcp-server-001.1
  • Inserting new paragraph does not renumber unrelated IDs JR-mcp-server-001.2
  • Two identical signature-block paragraphs remain uniquely addressable JR-mcp-server-001.3
  • Missing intrinsic IDs are backfilled once JR-mcp-server-001.4

Session-Based Re-Download Without Re-Editing

JR-mcp-server-003
The MCP server SHALL allow users to re-download previously generated artifacts by session_id without replaying edit operations.
2 test scenarios
  • Repeat download reuses cached artifacts JR-mcp-server-003.1
  • New edit invalidates previous revision cache JR-mcp-server-003.2

Tool Feature Parity

JR-mcp-server-011
The Safe-Docx MCP server SHALL match the formatting fidelity of the reference editing pipeline for core editing operations, not merely structural validity.
3 test scenarios
  • read_file returns TOON schema with structure columns JR-mcp-server-011.1
  • smart_edit preserves mixed-run formatting JR-mcp-server-011.2
  • smart_insert preserves header/definition semantics JR-mcp-server-011.3

Semantic Tags and Role Model Rendering

JR-mcp-server-014
The server SHALL support semantic tags in inserted/replacement text and render them into concrete OOXML formatting using role models discovered in the document.
1 test scenario
  • defined term bolding via <definition> role model JR-mcp-server-014.1

Explicit Definition Auto-Tagging

JR-mcp-server-015
The server SHALL automatically detect explicit definition patterns in inserted/replacement text and apply definition styling via role models without requiring the caller to include <definition> tags.
2 test scenarios
  • auto-tagged explicit definition gets role model styling JR-mcp-server-015.1
  • header semantics accepted via tags for backward compatibility JR-mcp-server-015.2

Automatic Document Normalization

JR-mcp-server-019
The Safe-Docx MCP server SHALL automatically normalize documents on open by running merge_runs and simplify_redlines preprocessing, improving text matching accuracy and read_file context efficiency.
4 test scenarios
  • document is normalized on open by default JR-mcp-server-019.1
  • skip_normalization bypasses preprocessing JR-mcp-server-019.2
  • normalization stats in session metadata JR-mcp-server-019.3
  • jr_para_* IDs stable across normalization JR-mcp-server-019.4

Formatting-Preserving Replacement with Run Normalization

JR-mcp-server-024
The Safe-Docx MCP server SHALL support formatting-preserving text replacement via smart_edit, with an optional normalize_first flag to merge fragmented runs before searching.
2 test scenarios
  • replace_text performs formatting-preserving replacement JR-mcp-server-024.1
  • replace_text can normalize fragmented runs before search JR-mcp-server-024.2

Document Validation and Auto-Repair (Internal Primitives)

JR-mcp-server-027
The Safe-Docx MCP server SHALL apply document validation as an internal primitive during download, and auto-repair as an internal primitive during normalize-on-open.
3 test scenarios
  • validate packed or unpacked DOCX inputs JR-mcp-server-027.1
  • redline validation runs when original baseline is provided JR-mcp-server-027.2
  • auto-repair fixes known safe issues JR-mcp-server-027.3

Runtime Dependency Boundary for Safe-Docx

JR-mcp-server-030
Safe-Docx runtime distribution SHALL be self-contained and SHALL NOT require external language runtimes or commercial library dependencies for layout formatting.

> _Implementation note:_ The current implementation is Node/TypeScript-only. No Python or Aspose runtime is required.
2 test scenarios
  • Runtime remains self-contained JR-mcp-server-030.1
  • Build-time tooling may be external but optional JR-mcp-server-030.2