Skip to main content
Glama
seigo-gace

Deterministic Japanese Parser MCP

by seigo-gace

Deterministic Japanese Parser MCP

1. 概要

Deterministic Japanese Parser MCP(DJPMCP)は、日本語入力を生成AIや人間が判断する前段で、検証可能・再利用可能な構造へ変換する非AI・決定論的Parser / MCP Runtimeです。

目的は単純な辞書検索、Intent分類、命令検出、安全判定のどれか一つではありません。日本語が何を意味し、誰が何を何に対して述べ、何を要求・禁止・維持し、どの条件・例外・範囲・順序・依存が何へ作用するかを、後段AI/Astera/Agentが再読解・推測しなくても利用できる形へ構造化することです。

中心出力は MeaningGraph です。入力を単純なIntentラベルへ潰さず、語彙候補、Entity、Clause、Proposition、述語・項、係り関係、否定・条件・数量・モダリティ、引用帰属、照応、談話関係、語義候補、未解決要素などを保持します。命令・依頼などの実行候補がある場合は、その同じ意味解釈から TaskGraph と外部操作可否を導出します。

DJPMCPは次をしません。

  • RuntimeでLLMに意味を推測させる

  • 根拠のない意味・主語・対象・因果を補う

  • Unknownを既知として扱う

  • 曖昧な入力を無理に一意化する

  • Recovery結果だけを理由に外部操作を許可する

  • 外部サービスそのものを操作する

曖昧なら曖昧、不足なら不足、未知なら未知として返し、判断材料を捏造しないことが設計の中心です。


Related MCP server: Project MCP

2. 最上位の製品条件

DJPMCPの最上位目的は、必要な完全読解結果を:

0.5秒以下で、LLM・生成AIによる推測に頼らず、決定論的に返すこと。

速度のために、以下を削ってはいけません。

  • 読解精度

  • MeaningGraph

  • 曖昧性保持

  • Reading Evidence

  • Fail Closed

  • External Action Safety

既存の target_latency_ms=10 や hard_deadline_ms=50 など、より厳しい値はHot-pathや局所Contractとして維持します。Recovery追加を理由に自動的に緩和しません。

Production Acceptanceでは、Hardware/CPU/RAM、warm/cold、入力長class、並列数、p50/p95/p99、MCP/HTTP境界、必要なPhase別Evidenceを明示します。p95だけを最上位0.5秒条件の代替にはしません。


3. 現在の実装と固定済みTarget Architectureを分けて読む

このRepositoryでは、現行実装と実装中の固定済みTarget Architectureを混同しません。

項目

状態

Package Version

0.4.0

MCP Tool

analyze_japanese

MCP Transport

stdio / Streamable HTTP

Parser REST API

POST /v1/analyze

Python API

ParserEngine().analyze(AnalyzeRequest(...))

Python

3.10以上

形態解析

SudachiPy + SudachiDict Core

Runtime LLM

使用しない

Runtime外部辞書API

使用しない

MeaningGraph

2.3.0 を既存Coreとして再利用

TaskGraph / GraphGuard

既存Coreとして再利用

Program License

MIT

固定済みTarget Architecture

Original Authority
  ↓
Safe Normalize
  ↓
Sudachi Baseline
  ↓
Japanese-function Projection
  ↓
multi-lane Front Router
  ↓
必要IndexだけProgressive Retrieval
  ↓
Hard Constraint
  ↓
Soft Ranking
  ↓
Syntax / Sense Resolution
  ↓
必要時だけRecovery Zone
  ↓
bounded Candidate Lattice
  ↓
whole-sentence Top-K / Beam / Viterbi系Decode
  ↓
Margin / Evidence Gate
  ↓
Router再評価
  ↓
既存 MeaningGraph 2.3.0
  ↓
TaskGraph
  ↓
GraphGuard

このTargetの詳細正本は docs/PARSER_ARCHITECTURE.md です。

重要: 設計をRepositoryへ記載したことは実装完了の証拠ではありません。Target Architectureの各層は、Source・Test・Full Build/Audit・性能・Runtime readbackを個別に閉じて初めてPASSになります。


4. Architectureの最重要原則

Original is Authority

原文をAuthorityとして保持します。正規化・表記揺れ処理・誤字Recoveryが行われても、原文を上書きしません。

Evidence only

根拠がないものを補強して「もっともらしい意味」にしません。Sourceが意味を持たない補助Evidenceなら、そのEvidenceから語義を生成しません。

Ambiguity retention

候補が競合し、Evidence/Score marginが不足する場合は AMBIGUOUS / UNRESOLVED / INSUFFICIENT を維持します。新語や未知表現を自動的に誤字扱いしません。

Fail closed

execution_mode="external_action" では、安全に確定できない重要意味が残ると外部操作を止めます。RecoveryによりAction Predicate/Target/Intentが新しく成立した、または変化した場合も自動許可しません。

Source / rights / provenance separation

Source全体を一括で「利用可」とみなしません。意味・読み・用法・例文・Translation・Relation・Metric・Alias・Ranking Evidence・Provenance等はField-levelで由来と権利を管理するTargetです。

Runtime without LLM

候補生成、Routing、Lattice、Ranking、Safety Gateまで、Runtimeは非AI・決定論的に閉じます。


5. Canonical Dataと日本語機能別Projection

最新設計で対象とするCanonical processed setは 9,852,513 records です。

これを一つの巨大検索対象として毎回総当たりするのではなく、同じCanonical Authorityから日本語機能別のProjectionを構築します。

Primary lane:

  1. Orthography/Reading

  2. Noun-Entity

  3. Predicate-Inflection

  4. Function Words

  5. Connective-Modifier

  6. Onomatopoeia

  7. Multiword

  8. Syntax-Case-Clause

  9. Sense-Semantic Relation

  10. Usage-Context-Pragmatics

  11. Document Structure

  12. Evidence-Provenance-Rights

Domain、translation、sentiment、temporal、frequency等はSecondary Facetです。Domain分類だけを主Routerにして意味解釈を決めません。

ProjectionはCanonical Recordの派生View/Indexであり、別の意味正本ではありません。

Buildでは少なくとも以下を固定・検証します。

  • Source Record identity

  • Canonical lineage

  • Projection assignment

  • Rejected / Unmapped accounting

  • Rights / Provenance

  • Deterministic Manifest / Hash

  • canonical_manifest_sha

  • schema_version

  • projection_policy_version

  • scoring_policy_version

互換しないBundle組合せは起動拒否し、Bundle切替はset単位でAtomic / Rollback可能にします。


6. Front multi-lane RouterとProgressive Retrieval

Front Routerは入力を見て、必要なLane・Facet・Indexを決定論的に選択します。

Routerの責務は意味を決めることではなく、何を検索すべきかを絞ることです。

単一Laneを早期に決め打ちせず、primary / secondary / fallback候補を保持します。

Router TraceのTarget:

  • detected input features

  • router_decision

  • candidate_lanes

  • selected_lanes

  • skipped laneと理由

  • Secondary Facet

  • fallback_reason

  • Retrieval limit

  • Recovery候補の必要性

  • Router / Projection Version

exact=0 / OOV / segmentation suspicious / grammar conflict / syntax conflict 等ではFallbackまたはRecoveryへ昇格し、Recovery後はRouterを再評価します。

Progressive Retrievalは機能を削る仕組みではありません。必要なEvidenceから段階的に読み、解決できた時点で不要な深い検索を避ける仕組みです。


7. Purpose Routingの位置付け

Purpose Routingは残しますが、意味の正本にはしません。

Purpose / Source Roleが担当するもの:

  • Retrieval Hint

  • Role Mask

  • Consumer allow/deny

  • Permission境界

  • Provenance / Ranking / Evidence補助

Purpose Routingが担当しないもの:

  • 最終意味の決定

  • Japanese-function Laneの代替

  • 補助Evidenceからの語義生成

  • Field-level Rights Gateの迂回

  • Unknown Roleの暗黙許可

つまり、Purposeは「どの材料を誰が使えるか」の補助線であり、「この文はこの意味だ」と決めるAuthorityではありません。


8. Hard ConstraintとSoft Ranking

Hard Constraintは「候補として参加してよいか」、Soft Rankingは「参加可能な候補をどの順に評価するか」を担当します。

Hard Constraint例:

  • Source / Field Rights

  • Reading / POS不整合

  • Consumer Role禁止

  • Protected Element競合

  • Impossible Span / Segmentation

  • Provenance必須なのに欠落

  • External Action Safety

Soft Ranking例:

  • Exact Surface / Reading

  • Morphology

  • Segmentation / Connection

  • Syntax / Case / Clause

  • Sense / Context

  • Domain Facet

  • Source Quality / Evidence Strength

  • Recovery / Edit Cost

高ScoreでもHard Constraintを越えてはいけません。


9. 誤字・崩れ文・Noisy Input Recovery

誤字専用巨大DBは作らない

誤字の全組み合わせを事前登録する方式ではありません。また全文を常時Fuzzy化しません。

Target Recovery Flow:

Original Input
  ↓
Safe Normalization
  ↓
Exact / Normal Analysis
  ↓
未解決・OOV・異常分割・Grammar/Syntax ConflictのみRecovery Zone
  ↓
隣接境界を含むSpan候補
  ↓
Surface / Reading / Alias / Morphology / Split-Merge候補
  ↓
Deterministic Recovery Cost
  ↓
Bounded Candidate Lattice
  ↓
Whole-sentence Top-K / Beam / Viterbi系Decode
  ↓
Reading / POS / Segmentation / Syntax / Sense / Context / Facet / Evidenceで再評価
  ↓
Margin + Evidence Gate
  ├─ 十分 → Recovery採用 → Router再評価
  └─ 不足 → AMBIGUOUS / UNRESOLVED

Recovery候補は、かな/カナ、濁点・半濁点、小書き、長音、送り仮名、縮約、文字挿入/削除/置換/転置、split/merge等の有限候補から生成し、Runtime Dataに実在するsurface/lemma/reading/aliasへ着地するものだけを昇格します。

beam width / max span / max candidates / max passes / recovery margin は推測値で永久固定せず、Golden / Noise / Latency Benchmarkで校正します。

Recoveryでは次を守ります。

  • 原文を残す

  • Original SpanへEvidenceを紐づける

  • 修正候補と採用理由を追跡できる

  • 未知語を誤字と断定しない

  • Protected Elementを勝手に変えない

  • 複数Meaningが成立しMargin不足なら曖昧を保持する

  • RecoveryでAction意味が新規成立・変化した場合はFail Closed


10. Existing MeaningGraph / TaskGraph / GraphGuard

Target Architectureは既存Coreを捨てません。

MeaningGraph 2.3.0

既存Coreは以下のような構造を保持します。

  • Entity

  • Clause

  • Proposition

  • Lexical Node

  • Scope Edge

  • Reading Analysis

  • Language Feature

  • Unresolved element

  • Decision state change

  • Evidence rule

  • Context version

  • Quality annotation

  • semantic_hash

Reading Analysis

主な構造:

  • predicate_frames

  • dependency_arcs

  • scope_operators

  • attribution_frames

  • discourse_relations

  • paragraph/document analysis

  • unresolved reading elements

TaskGraph

実行候補がある場合、意味解釈からTaskを構造化します。

  • Action

  • Target

  • Dependencies

  • Constraints

  • Completion criteria

  • Verification criteria

  • External-action flag

GraphGuard

External Action時の最終Semantic Safety境界です。

代表的Blocker:

  • 対象未解決

  • 重要Reference未解決

  • 意味上重要なAmbiguity

  • Protected Elementとの衝突

  • Contradiction

  • Actionに影響するUnsupported要素

  • Deadline / Processing failure

  • Recoveryにより新規・変更されたAction意味がEvidence Gateを満たさない

RecoveryでAction Predicate/Target/Intentが新しく成立または変化した場合、RECOVERY_CHANGED_ACTION_SEMANTICS 相当でFail ClosedするTargetです。

Parserの execution_allowed は意味安全性判定であり、実システムの認可・承認そのものではありません。Provider/OS等の実Actionは呼出側の別Authorization / Approval境界を必須とします。

DJPMCP自身は外部サービスを変更しません。


11. semantic_hash互換性

現行 MeaningGraph は semantic_hash 自身を除くGraph内容をHash対象にしています。

そのため、MeaningGraphへDefault Fieldを追加しただけでも、既存入力のHashが変化する可能性があります。

Recovery / Interpretation Evidence、Router Trace、Field-level Evidence参照をGraphへ接続する前に、semantic_hash compatibility Gateを先に実装します。

許されるのは次のどちらかです。

  1. 既存Hash契約を変えずExtensionを保持できることをTestで証明する

  2. Hash / Graph Version Migrationを明示的に設計・Test・Releaseする

意図しないHash driftは許可しません。


12. MCP Output Profile Target

MCPは同じSemantic Resultを用途別に運ぶため次のTransport Profileを持ちます。

McpAnalyzeRequest = AnalyzeRequest + transport-only output_profile
output_profile = compact | standard | full
Default = compact

これはCore AnalyzeRequest の意味入力ではなく、MCP Transport専用の設定です。

compact

Default。 Status、主要Reading / Proposition、重要Ambiguity / Missing、Action Safety、semantic_hash 等の軽量判断材料を返します。

内部MeaningGraphの完全性は削りません。

standard

Semantic Structure、Task、Reading Detail、Evidence関連情報を段階的に増やしつつ、最も重い転送DetailはSchema互換範囲で省きます。

full

既存の完全 AnalyzeResponse structured shapeを明示要求時に返します。

重要な互換条件

  • ProfileはParser意味解釈を変えない

  • Core AnalyzeRequest へ混ぜない

  • Cache Identityを変えない

  • semantic_hash を変えない

  • Text SummaryはBackward Compatible

  • CacheにはFull Semantic Resultを保持しProfileごとの別Semantic Cacheを作らない

  • Profile最大Byte / Node / Candidate露出上限は実Context/Latency Benchmarkで決める

  • 軽量化のために内部MeaningGraphを削らない

このREADME更新時点ではM0-1のTarget設計は固定済みですが、VPS Source/Runtimeへの実適用・targeted testは別Evidenceです。


13. 現行MCP / Python Interface

MCP Tool

analyze_japanese

現行Core入力は AnalyzeRequest です。

Field

Required

Default

内容

original_text

Yes

—

解析対象の日本語。空文字不可

conversation_context

No

[]

会話文脈

known_entities

No

[]

既知Entity

protected_elements

No

[]

変更禁止対象

social_context

No

empty

話者・相手・社会文脈

discourse_state

No

{}

呼出側が保持する談話状態

execution_mode

No

analysis

analysis / comparison / planning / external_action

analysis_depth

No

auto

auto / fast / deep

deadline_ms

No

50

1–60,000ms

M0-1ではMCP Transport側だけに output_profile を追加し、Core AnalyzeRequestへは渡しません。

Python API

from deterministic_japanese_parser_mcp import AnalyzeRequest, ParserEngine

response = ParserEngine().analyze(
    AnalyzeRequest(
        original_text="UIは維持する。APIだけ変更しろ。",
        protected_elements=["UI"],
        execution_mode="external_action",
        deadline_ms=50,
    )
)

print(response.meaning_graph)
print(response.task_graph)
print(response.execution_allowed)

Python Core APIはMCP Output Profileに依存しません。


14. Public OSS / Self-host Quick Start

Linux / macOS

git clone https://github.com/seigo-gace/Deterministic-Japanese-Parser-MCP.git
cd Deterministic-Japanese-Parser-MCP
python -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pip
pip install -e .
djpmcp-validate

Windows PowerShell

git clone https://github.com/seigo-gace/Deterministic-Japanese-Parser-MCP.git
cd Deterministic-Japanese-Parser-MCP
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -e .
djpmcp-validate

開発用依存関係:

pip install -e ".[dev]"

15. MCP stdio

Installed entrypoint:

djpmcp

MCP Client例:

{
  "mcpServers": {
    "deterministic-japanese-parser": {
      "command": "/absolute/path/Deterministic-Japanese-Parser-MCP/.venv/bin/djpmcp"
    }
  }
}

Windows例:

C:\path\Deterministic-Japanese-Parser-MCP\.venv\Scripts\djpmcp.exe

Serving loopへ入る前にprewarmし、Sudachi lazy initialization、Schema、Rule Index、代表経路などをRuntime deadline外で準備します。


16. Streamable HTTP / REST

HTTP entrypoint:

djpmcp-http

API Key:

export DJPMCP_HTTP_API_KEY='replace-with-a-long-random-secret'
djpmcp-http

既定:

Host: 127.0.0.1
Port: 8765
MCP endpoint: /mcp
Parser REST endpoint: /v1/analyze
Health: /healthz
Readiness: /readyz

認証例:

Authorization: Bearer <DJPMCP_HTTP_API_KEY>

または:

X-API-Key: <DJPMCP_HTTP_API_KEY>

/healthz と /readyz 以外は認証対象です。

REST例:

curl -X POST http://127.0.0.1:8765/v1/analyze \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "original_text": "UIは維持する。APIだけ変更しろ。",
    "protected_elements": ["UI"],
    "execution_mode": "external_action",
    "analysis_depth": "auto",
    "deadline_ms": 50
  }'

Production境界は docs/PRODUCTION_HTTP_DEPLOYMENT.md を参照してください。


17. Canonical Data / Supply Chain

DJPMCPは、Raw Source、Canonical Data、Public View、Runtime Projection、Compiled Indexを同一物として扱いません。

概念上の流れ:

Frozen / Verified Source
  ↓
Source Adapter
  ↓
Schema / Provenance / Rights validation
  ↓
Review / Decision Ledger
  ↓
Canonical processed records
  ↓
Japanese-function Projection Compiler
  ↓
Runtime Bundles / Indexes

Target Architectureで使用するCanonical processed setは最新設計時点で 9,852,513 records です。

ただし、新Projection ArchitectureによるFull Build / All-record Auditは実行済みとは扱いません。

詳細:


18. Logical Runtime Bundles

Targetの初期Logical Bundle:

  • router_core

  • grammar_core

  • lexical_semantic

  • context_evidence

  • recovery_index

これは責務分割です。5 Bundle = 5 DBという意味ではありません。

物理DB/File数は以下で決めます。

  • build size

  • memory footprint

  • cold/warm latency

  • disk I/O

  • deploy atomicity

  • rollback

  • benchmark結果


19. Validation / Completion Gate

最終Architectureは次をEvidence付きで閉じるまで「完成」としません。

Contract

  • MCP output profile

  • semantic_hash compatibility

  • Router Trace

  • Recovery Interpretation Evidence

  • Field-level Rights / Provenance

  • Projection Manifest / Version compatibility

Data

  • 9,852,513件 Full Build

  • All-record Audit

  • Input / Output / Rejected / Unresolved accounting

  • Rights / Provenance Audit

  • Deterministic rebuild / hash

Robustness

  • Clean Japanese

  • Noisy input

  • Typo

  • Broken / colloquial input

  • Segmentation ambiguity

  • Proper noun

  • Function word

  • Connective

  • Onomatopoeia

  • Multiword

  • Long text

  • Unknown / new expression

  • Router lane recall / false exclusion / OOV fallback

  • Recovery success

  • False-correction rate

  • Ambiguity retention

  • Recovery Action fail-closed

  • Field-rights integrity

  • MCP output size

  • Recovery latency

Clean GoldからSynthetic Noiseを決定論的に作り、Evidenceが十分ならClean/Noisyが同じMeaningへ収束し、解けない場合は正しく曖昧を保持することを確認します。Recovery成功率だけでPASSにせず、誤訂正率を必須指標にします。

Runtime

  • Targeted Tests

  • Existing MCP Boundary Tests

  • Existing Semantic Quality / Independent Holdout

  • Full Regression

  • Production-representative performance

  • Authorized deploy

  • Runtime readback

Process起動、HTTP 200、空配列、Build成功、Test runner終了、CI greenの一つだけではSemantic completionのPASSにしません。


20. 固定Implementation Order

M0-1 MCP compact / standard / full
↓
MCP targeted tests
↓
semantic_hash compatibility Gate
↓
Router Trace / Recovery Interpretation Evidence / Field-level Rights Contract
↓
Japanese-function Projection Compiler
↓
Front multi-lane Router
↓
Existing MeaningGraph接続
↓
Recovery Index / Lattice / Top-K
↓
Progressive Context / Evidence Retrieval
↓
9.85M Full Build / Audit
↓
Clean + Noisy + Typo + Broken Regression
↓
False-correction / Ambiguity-retention
↓
0.5秒以下の完全読解Performance Acceptance
↓
Full Regression
↓
Authorized Runtime readback

途中工程のPASSから後段を推測でPASSにしません。


21. Target Architectureの現在Status

このREADME更新時点の境界です。

Area

Status

MeaningGraph / TaskGraph / GraphGuard

既存実装を再利用

MCP typed base

既存実装を再利用

Semantic Quality / Holdout

既存実装を再利用

Direct Final Manifest/Hash

既存実装を再利用

Purpose Routing

PARTIAL

MCP compact/standard/full

DESIGN FIXED / SELF-TEST CANDIDATE PASS / VPS SOURCE+RUNTIME NOT YET VERIFIED

semantic_hash compatibility Gate

NOT IMPLEMENTED

Router Trace

NOT IMPLEMENTED

Recovery Evidence / Index / Lattice / Top-K

NOT IMPLEMENTED

Field-level Rights / Provenance Extension

NOT IMPLEMENTED

Japanese-function Projection Compiler

NOT IMPLEMENTED

Front multi-lane Router

NOT IMPLEMENTED

Progressive Context Retrieval

NOT IMPLEMENTED

9.85M Final Rebuild / Audit

NOT RUN

Final Robustness

NOT RUN

0.5秒以下 complete-reading Acceptance

NOT RUN

Final Full Regression

NOT RUN

Target Architecture Runtime Deploy

NOT DEPLOYED

SELF-TEST CANDIDATE PASS はAssistant側でM0-1候補のContract/Projection/Cache identityを模擬検証した状態であり、VPS実Source TestやRuntime PASSを意味しません。


22. Public OSSとOfficial Hosted Service

Public OSS / Self-hostとAstera Hosted Commercial Serviceは、Parser Coreの機能を意図的に削る関係ではありません。

Public OSS

利用者がRepositoryを取得し、自分のPC / Server / Container / Private Network等で実行できます。

利用者側責務:

  • Infrastructure

  • Authentication

  • Monitoring

  • Scaling

  • Backup

  • Availability

  • Upgrade / Rollback

Astera Hosted Commercial Service

Project OwnerがDJPMCPをManaged Runtimeとして運用し、その外側にPlatform Control Planeを置く構成です。

flowchart LR
    U[Customer / AsteraApp] --> G[Astera API Gateway]
    G --> C[Auth / Metering / Credit / Billing / Rate Policy]
    C --> P[DJPMCP Managed Runtime]
    P --> M[MeaningGraph / TaskGraph]
    M --> G
    G --> U

Commercial側の主責務:

  • Customer Account / Auth

  • API Credential Lifecycle

  • Authorization

  • Usage Metering

  • Credit / Quota

  • Billing / Plan

  • Rate limiting / Abuse protection

  • Tenant isolation

  • Monitoring

  • Version rollout / rollback

  • Support / Commercial Terms

Repositoryの POST /v1/analyze をそのままCustomer-facing有料APIとして固定しません。

詳細:


23. Documentation Map

最初に読むもの:

Parser / Data Contract:

Distribution / Operation:


24. License / Data / Brand Boundary

Program CodeのLicense、Third-party DataのSource License、Project Mark/Trademark、Hosted Service Termsは別の権利体系です。

Public Runtimeへ含められるDataかどうかは、Code Licenseだけでは決まりません。


25. Definition of Done

DJPMCPのTarget Architectureは、設計文書・Source・Test・Canonical Build/Audit・Robustness・Performance・Full Regression・許可されたRuntime readbackが一致したときだけ完成です。

それまでは各工程を PASS / FAIL / PARTIAL / BLOCKED / UNKNOWN / NOT_EXECUTED / NOT_VERIFIED と分けて管理し、未実施・未検証を完成扱いしません。

プロジェクトの管理方針と名称・ロゴの扱いはGOVERNANCE.mdとTRADEMARK.mdを参照してください。

Available Tools

1 tool
analyze_japaneseC

Deterministically read Japanese text and return lexical meaning, predicate-argument structure, negation/condition/modality scope, quotation attribution, discourse relations, a MeaningGraph, and downstream TaskGraph and external-action safety decisions.

NameRequiredDescriptionDefault
deadline_msNo
original_textYes
analysis_depthNoauto
execution_modeNoanalysis
known_entitiesNo
social_contextNo
discourse_stateNo
protected_elementsNo
conversation_contextNo

Output Schema

NameRequiredDescription
tasksNo
tokensNo
intentsNo
metricsNo
timeoutsNo
versionsNo
metaphorsNo
referencesNo
task_graphNo
ambiguitiesNo
analysis_pathYes
meaning_graphNo
original_textYes
contradictionsNo
overall_statusYes
blocked_reasonsNo
normalized_textYes
execution_allowedYes
missing_informationNo
unsupported_elementsNo

TDQS

C2.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It does disclose that analysis is 'deterministic' and that execution_mode can trigger 'downstream TaskGraph and external-action safety decisions' — a meaningful safety-relevant trait. However, it says nothing about auth needs, latency implications of deadline_ms, failure modes, or what actually happens in external_action mode, so significant gaps remain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no wasted words, but it degenerates into a long comma-separated list of outputs with no structure or prioritization. Adequate but not well-organized for a tool of this complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so explaining return values is unnecessary — yet the description spends every word on outputs and none on inputs. For a 9-parameter tool with nested objects and zero annotation coverage, the absence of any parameter or mode guidance leaves the agent under-equipped to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 9 parameters including nested SocialContext and DiscourseState objects, so the description must compensate — and it adds no input-side meaning whatsoever. All of its content describes return artifacts, not parameters; the only semantic hints come from self-describing enum values (auto/fast/deep, analysis/comparison/planning/external_action) in the schema itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('read Japanese text') and enumerates the analytical artifacts returned: lexical meaning, predicate-argument structure, negation/condition/modality scope, quotation attribution, discourse relations, MeaningGraph, TaskGraph. It is far from a tautology, though it reads as an output inventory rather than a crisp statement of the tool's purpose, and the dense linguistics jargon requires domain knowledge to parse.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to invoke this tool, when not to, or what to use instead. The existence of execution_mode values (analysis/comparison/planning/external_action) implies distinct usage contexts, but the description never routes the agent among them or states any prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev0.1.1
    • Changedanalyze_japanese42 fields changed
      • addedInput schema / $defs / SocialContext
        Added value: +{
        +  "properties": {
        +    "addressee": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/SocialParticipant"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    },
        +    "addressee_group": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Addressee Group"
        +    },
        +    "formality": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Formality"
        +    },
        +    "mentioned_people": {
        +      "items": {
        +        "$ref": "#/$defs/SocialParticipant"
        +      },
        +      "title": "Mentioned People",
        +      "type": "array"
        +    },
        +    "setting": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Setting"
        +    },
        +    "speaker": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/SocialParticipant"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    },
        +    "speaker_group": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Speaker Group"
        +    }
        +  },
        +  "title": "SocialContext",
        +  "type": "object"
        +}
      • addedInput schema / $defs / SocialParticipant
        Added value: +{
        +  "properties": {
        +    "entity_id": {
        +      "title": "Entity Id",
        +      "type": "string"
        +    },
        +    "groups": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Groups",
        +      "type": "array"
        +    },
        +    "relation_to_addressee": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Relation To Addressee"
        +    },
        +    "relation_to_speaker": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Relation To Speaker"
        +    },
        +    "role": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Role"
        +    }
        +  },
        +  "required": [
        +    "entity_id"
        +  ],
        +  "title": "SocialParticipant",
        +  "type": "object"
        +}
      • changedInput schema / properties / deadline_ms / default
        Previous value: -2000New value: +50
      • changedInput schema / properties / deadline_ms / minimum
        Previous value: -50New value: +1
      • addedInput schema / properties / discourse_state
        Added value: +{
        +  "additionalProperties": true,
        +  "title": "Discourse State",
        +  "type": "object"
        +}
      • addedInput schema / properties / social_context
        Added value: +{
        +  "$ref": "#/$defs/SocialContext"
        +}
      • addedOutput schema / $defs / Argument
        Added value: +{
        +  "properties": {
        +    "candidates": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Candidates",
        +      "type": "array"
        +    },
        +    "case_marker": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Case Marker"
        +    },
        +    "entity_id": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Entity Id"
        +    },
        +    "explicit": {
        +      "default": true,
        +      "title": "Explicit",
        +      "type": "boolean"
        +    },
        +    "role": {
        +      "title": "Role",
        +      "type": "string"
        +    },
        +    "sense_candidates": {
        +      "items": {
        +        "$ref": "#/$defs/SenseCandidate"
        +      },
        +      "title": "Sense Candidates",
        +      "type": "array"
        +    },
        +    "sense_confidence": {
        +      "default": 0,
        +      "maximum": 1,
        +      "minimum": 0,
        +      "title": "Sense Confidence",
        +      "type": "number"
        +    },
        +    "sense_id": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Sense Id"
        +    },
        +    "sense_label": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Sense Label"
        +    },
        +    "span": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/OriginalSpan"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    },
        +    "status": {
        +      "$ref": "#/$defs/ItemStatus",
        +      "default": "RESOLVED"
        +    },
        +    "value": {
        +      "title": "Value",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "role",
        +    "value"
        +  ],
        +  "title": "Argument",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / ArgumentComponent
        Added value: +{
        +  "properties": {
        +    "clause_id": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Clause Id"
        +    },
        +    "component_id": {
        +      "title": "Component Id",
        +      "type": "string"
        +    },
        +    "component_type": {
        +      "enum": [
        +        "claim",
        +        "reason",
        +        "evidence",
        +        "explicit_premise",
        +        "implicit_premise",
        +        "counterargument",
        +        "rebuttal",
        +        "limitation"
        +      ],
        +      "title": "Component Type",
        +      "type": "string"
        +    },
        +    "confidence": {
        +      "default": 1,
        +      "maximum": 1,
        +      "minimum": 0,
        +      "title": "Confidence",
        +      "type": "number"
        +    },
        +    "evidence_ids": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Evidence Ids",
        +      "type": "array"
        +    },
        +    "paragraph_id": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Paragraph Id"
        +    },
        +    "related_component_ids": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Related Component Ids",
        +      "type": "array"
        +    },
        +    "source_span": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/OriginalSpan"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    },
        +    "status": {
        +      "default": "DETERMINED",
        +      "enum": [
        +        "DETERMINED",
        +        "AMBIGUOUS"
        +      ],
        +      "title": "Status",
        +      "type": "string"
        +    },
        +    "text": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Text"
        +    }
        +  },
        +  "required": [
        +    "component_id",
        +    "component_type"
        +  ],
        +  "title": "ArgumentComponent",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / ArgumentEdge
        Added value: +{
        +  "properties": {
        +    "confidence": {
        +      "default": 1,
        +      "maximum": 1,
        +      "minimum": 0,
        +      "title": "Confidence",
        +      "type": "number"
        +    },
        +    "edge_id": {
        +      "title": "Edge Id",
        +      "type": "string"
        +    },
        +    "evidence_ids": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Evidence Ids",
        +      "type": "array"
        +    },
        +    "relation": {
        +      "enum": [
        +        "supports",
        +        "opposes",
        +        "limits",
        +        "conditions",
        +        "rephrases"
        +      ],
        +      "title": "Relation",
        +      "type": "string"
        +    },
        +    "source_component_id": {
        +      "title": "Source Component Id",
        +      "type": "string"
        +    },
        +    "status": {
        +      "default": "DETERMINED",
        +      "enum": [
        +        "DETERMINED",
        +        "AMBIGUOUS"
        +      ],
        +      "title": "Status",
        +      "type": "string"
        +    },
        +    "target_component_id": {
        +      "title": "Target Component Id",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "edge_id",
        +    "source_component_id",
        +    "target_component_id",
        +    "relation"
        +  ],
        +  "title": "ArgumentEdge",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / ArgumentationResult
        Added value: +{
        +  "properties": {
        +    "claims": {
        +      "items": {
        +        "$ref": "#/$defs/ArgumentComponent"
        +      },
        +      "title": "Claims",
        +      "type": "array"
        +    },
        +    "confidence": {
        +      "default": 0,
        +      "maximum": 1,
        +      "minimum": 0,
        +      "title": "Confidence",
        +      "type": "number"
        +    },
        +    "counterarguments": {
        +      "items": {
        +        "$ref": "#/$defs/ArgumentComponent"
        +      },
        +      "title": "Counterarguments",
        +      "type": "array"
        +    },
        +    "edges": {
        +      "items": {
        +        "$ref": "#/$defs/ArgumentEdge"
        +      },
        +      "title": "Edges",
        +      "type": "array"
        +    },
        +    "evidence": {
        +      "items": {
        +        "$ref": "#/$defs/ArgumentComponent"
        +      },
        +      "title": "Evidence",
        +      "type": "array"
        +    },
        +    "explicit_premises": {
        +      "items": {
        +        "$ref": "#/$defs/ArgumentComponent"
        +      },
        +      "title": "Explicit Premises",
        +      "type": "array"
        +    },
        +    "implicit_premise_candidates": {
        +      "items": {
        +        "$ref": "#/$defs/ArgumentComponent"
        +      },
        +      "title": "Implicit Premise Candidates",
        +      "type": "array"
        +    },
        +    "limitations": {
        +      "items": {
        +        "$ref": "#/$defs/ArgumentComponent"
        +      },
        +      "title": "Limitations",
        +      "type": "array"
        +    },
        +    "reasons": {
        +      "items": {
        +        "$ref": "#/$defs/ArgumentComponent"
        +      },
        +      "title": "Reasons",
        +      "type": "array"
        +    },
        +    "rebuttals": {
        +      "items": {
        +        "$ref": "#/$defs/ArgumentComponent"
        +      },
        +      "title": "Rebuttals",
        +      "type": "array"
        +    },
        +    "status": {
        +      "default": "AMBIGUOUS",
        +      "enum": [
        +        "DETERMINED",
        +        "AMBIGUOUS"
        +      ],
        +      "title": "Status",
        +      "type": "string"
        +    },
        +    "unresolved": {
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "title": "Unresolved",
        +      "type": "array"
        +    }
        +  },
        +  "title": "ArgumentationResult",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / AttributionFrame
        Added value: +{
        +  "properties": {
        +    "attribution_id": {
        +      "title": "Attribution Id",
        +      "type": "string"
        +    },
        +    "attribution_type": {
        +      "title": "Attribution Type",
        +      "type": "string"
        +    },
        +    "clause_id": {
        +      "title": "Clause Id",
        +      "type": "string"
        +    },
        +    "content_span": {
        +      "$ref": "#/$defs/OriginalSpan"
        +    },
        +    "related_frame_ids": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Related Frame Ids",
        +      "type": "array"
        +    },
        +    "reporting_predicate": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Reporting Predicate"
        +    },
        +    "source": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Source"
        +    },
        +    "source_span": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/OriginalSpan"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    },
        +    "status": {
        +      "$ref": "#/$defs/ItemStatus",
        +      "default": "RESOLVED"
        +    }
        +  },
        +  "required": [
        +    "attribution_id",
        +    "clause_id",
        +    "attribution_type",
        +    "content_span"
        +  ],
        +  "title": "AttributionFrame",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / Clause
        Added value: +{
        +  "properties": {
        +    "clause_id": {
        +      "title": "Clause Id",
        +      "type": "string"
        +    },
        +    "clause_type": {
        +      "default": "main",
        +      "title": "Clause Type",
        +      "type": "string"
        +    },
        +    "discourse_markers": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Discourse Markers",
        +      "type": "array"
        +    },
        +    "focus_entity_ids": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Focus Entity Ids",
        +      "type": "array"
        +    },
        +    "parent_clause_id": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Parent Clause Id"
        +    },
        +    "proposition_ids": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Proposition Ids",
        +      "type": "array"
        +    },
        +    "relation": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Relation"
        +    },
        +    "source_span": {
        +      "$ref": "#/$defs/OriginalSpan"
        +    },
        +    "status": {
        +      "$ref": "#/$defs/ItemStatus",
        +      "default": "RESOLVED"
        +    },
        +    "text": {
        +      "title": "Text",
        +      "type": "string"
        +    },
        +    "topic_entity_ids": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Topic Entity Ids",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "clause_id",
        +    "text",
        +    "source_span"
        +  ],
        +  "title": "Clause",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / DecisionStateChange
        Added value: +{
        +  "properties": {
        +    "change_type": {
        +      "title": "Change Type",
        +      "type": "string"
        +    },
        +    "new_state": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "New State"
        +    },
        +    "previous_state": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Previous State"
        +    },
        +    "proposition_id": {
        +      "title": "Proposition Id",
        +      "type": "string"
        +    },
        +    "target": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Target"
        +    }
        +  },
        +  "required": [
        +    "change_type",
        +    "proposition_id"
        +  ],
        +  "title": "DecisionStateChange",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / DependencyArc
        Added value: +{
        +  "properties": {
        +    "arc_id": {
        +      "title": "Arc Id",
        +      "type": "string"
        +    },
        +    "clause_id": {
        +      "title": "Clause Id",
        +      "type": "string"
        +    },
        +    "confidence": {
        +      "default": 1,
        +      "maximum": 1,
        +      "minimum": 0,
        +      "title": "Confidence",
        +      "type": "number"
        +    },
        +    "dependent_token_index": {
        +      "title": "Dependent Token Index",
        +      "type": "integer"
        +    },
        +    "head_token_index": {
        +      "title": "Head Token Index",
        +      "type": "integer"
        +    },
        +    "marker": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Marker"
        +    },
        +    "relation": {
        +      "title": "Relation",
        +      "type": "string"
        +    },
        +    "status": {
        +      "$ref": "#/$defs/ItemStatus",
        +      "default": "RESOLVED"
        +    }
        +  },
        +  "required": [
        +    "arc_id",
        +    "clause_id",
        +    "dependent_token_index",
        +    "head_token_index",
        +    "relation"
        +  ],
        +  "title": "DependencyArc",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / DiscourseRelation
        Added value: +{
        +  "properties": {
        +    "confidence": {
        +      "default": 1,
        +      "maximum": 1,
        +      "minimum": 0,
        +      "title": "Confidence",
        +      "type": "number"
        +    },
        +    "marker": {
        +      "title": "Marker",
        +      "type": "string"
        +    },
        +    "relation": {
        +      "title": "Relation",
        +      "type": "string"
        +    },
        +    "relation_id": {
        +      "title": "Relation Id",
        +      "type": "string"
        +    },
        +    "source_clause_id": {
        +      "title": "Source Clause Id",
        +      "type": "string"
        +    },
        +    "status": {
        +      "$ref": "#/$defs/ItemStatus",
        +      "default": "RESOLVED"
        +    },
        +    "target_clause_id": {
        +      "title": "Target Clause Id",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "relation_id",
        +    "source_clause_id",
        +    "target_clause_id",
        +    "relation",
        +    "marker"
        +  ],
        +  "title": "DiscourseRelation",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / Entity
        Added value: +{
        +  "properties": {
        +    "aliases": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Aliases",
        +      "type": "array"
        +    },
        +    "canonical": {
        +      "title": "Canonical",
        +      "type": "string"
        +    },
        +    "entity_id": {
        +      "title": "Entity Id",
        +      "type": "string"
        +    },
        +    "entity_type": {
        +      "default": "unknown",
        +      "title": "Entity Type",
        +      "type": "string"
        +    },
        +    "mentions": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Mentions",
        +      "type": "array"
        +    },
        +    "salience": {
        +      "default": 0,
        +      "title": "Salience",
        +      "type": "integer"
        +    },
        +    "source_spans": {
        +      "items": {
        +        "$ref": "#/$defs/OriginalSpan"
        +      },
        +      "title": "Source Spans",
        +      "type": "array"
        +    },
        +    "status": {
        +      "$ref": "#/$defs/ItemStatus",
        +      "default": "RESOLVED"
        +    }
        +  },
        +  "required": [
        +    "entity_id",
        +    "canonical"
        +  ],
        +  "title": "Entity",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / LanguageFeatureMatch
        Added value: +{
        +  "properties": {
        +    "candidate_ids": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Candidate Ids",
        +      "type": "array"
        +    },
        +    "entry_id": {
        +      "title": "Entry Id",
        +      "type": "string"
        +    },
        +    "evidence_ids": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Evidence Ids",
        +      "type": "array"
        +    },
        +    "feature_type": {
        +      "title": "Feature Type",
        +      "type": "string"
        +    },
        +    "interpretation": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Interpretation"
        +    },
        +    "interpretation_id": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Interpretation Id"
        +    },
        +    "parameters": {
        +      "additionalProperties": true,
        +      "title": "Parameters",
        +      "type": "object"
        +    },
        +    "register_profile": {
        +      "additionalProperties": true,
        +      "title": "Register Profile",
        +      "type": "object"
        +    },
        +    "risk_class": {
        +      "default": "semantic",
        +      "title": "Risk Class",
        +      "type": "string"
        +    },
        +    "source_span": {
        +      "$ref": "#/$defs/OriginalSpan"
        +    },
        +    "status": {
        +      "$ref": "#/$defs/ItemStatus",
        +      "default": "RESOLVED"
        +    },
        +    "surface": {
        +      "title": "Surface",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "entry_id",
        +    "feature_type",
        +    "surface",
        +    "source_span"
        +  ],
        +  "title": "LanguageFeatureMatch",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / LexicalCandidate
        Added value: +{
        +  "properties": {
        +    "domains": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Domains",
        +      "type": "array"
        +    },
        +    "lemma": {
        +      "title": "Lemma",
        +      "type": "string"
        +    },
        +    "match_type": {
        +      "enum": [
        +        "surface",
        +        "normalized",
        +        "reading"
        +      ],
        +      "title": "Match Type",
        +      "type": "string"
        +    },
        +    "matched_text": {
        +      "title": "Matched Text",
        +      "type": "string"
        +    },
        +    "no_kanji": {
        +      "default": false,
        +      "title": "No Kanji",
        +      "type": "boolean"
        +    },
        +    "part_of_speech": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Part Of Speech",
        +      "type": "array"
        +    },
        +    "readings": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Readings",
        +      "type": "array"
        +    },
        +    "record_id": {
        +      "title": "Record Id",
        +      "type": "string"
        +    },
        +    "restricted_to": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Restricted To",
        +      "type": "array"
        +    },
        +    "source_dataset": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Source Dataset"
        +    },
        +    "source_license": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Source License"
        +    },
        +    "source_version": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Source Version"
        +    },
        +    "usage_labels": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Usage Labels",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "record_id",
        +    "lemma",
        +    "matched_text",
        +    "match_type"
        +  ],
        +  "title": "LexicalCandidate",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / LexicalNode
        Added value: +{
        +  "properties": {
        +    "candidate_evidence": {
        +      "additionalProperties": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "title": "Candidate Evidence",
        +      "type": "object"
        +    },
        +    "candidate_scores": {
        +      "additionalProperties": {
        +        "type": "integer"
        +      },
        +      "title": "Candidate Scores",
        +      "type": "object"
        +    },
        +    "candidates": {
        +      "items": {
        +        "$ref": "#/$defs/LexicalCandidate"
        +      },
        +      "title": "Candidates",
        +      "type": "array"
        +    },
        +    "lexical_node_id": {
        +      "title": "Lexical Node Id",
        +      "type": "string"
        +    },
        +    "normalized": {
        +      "title": "Normalized",
        +      "type": "string"
        +    },
        +    "pos": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Pos",
        +      "type": "array"
        +    },
        +    "reading": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Reading"
        +    },
        +    "related_entity_ids": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Related Entity Ids",
        +      "type": "array"
        +    },
        +    "related_proposition_ids": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Related Proposition Ids",
        +      "type": "array"
        +    },
        +    "related_sense_ids": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Related Sense Ids",
        +      "type": "array"
        +    },
        +    "resolution_confidence": {
        +      "default": 0,
        +      "maximum": 1,
        +      "minimum": 0,
        +      "title": "Resolution Confidence",
        +      "type": "number"
        +    },
        +    "resolution_reason": {
        +      "default": "no_candidates",
        +      "title": "Resolution Reason",
        +      "type": "string"
        +    },
        +    "selected_record_id": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Selected Record Id"
        +    },
        +    "source_span": {
        +      "$ref": "#/$defs/OriginalSpan"
        +    },
        +    "status": {
        +      "$ref": "#/$defs/ItemStatus",
        +      "default": "AMBIGUOUS"
        +    },
        +    "surface": {
        +      "title": "Surface",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "lexical_node_id",
        +    "surface",
        +    "normalized",
        +    "source_span"
        +  ],
        +  "title": "LexicalNode",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / MeaningGraph
        Added value: +{
        +  "properties": {
        +    "clauses": {
        +      "items": {
        +        "$ref": "#/$defs/Clause"
        +      },
        +      "title": "Clauses",
        +      "type": "array"
        +    },
        +    "context_version": {
        +      "default": "",
        +      "title": "Context Version",
        +      "type": "string"
        +    },
        +    "decision_state_changes": {
        +      "items": {
        +        "$ref": "#/$defs/DecisionStateChange"
        +      },
        +      "title": "Decision State Changes",
        +      "type": "array"
        +    },
        +    "entities": {
        +      "items": {
        +        "$ref": "#/$defs/Entity"
        +      },
        +      "title": "Entities",
        +      "type": "array"
        +    },
        +    "evidence_rule_ids": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Evidence Rule Ids",
        +      "type": "array"
        +    },
        +    "graph_version": {
        +      "default": "2.3.0",
        +      "title": "Graph Version",
        +      "type": "string"
        +    },
        +    "language_features": {
        +      "items": {
        +        "$ref": "#/$defs/LanguageFeatureMatch"
        +      },
        +      "title": "Language Features",
        +      "type": "array"
        +    },
        +    "lexical_nodes": {
        +      "items": {
        +        "$ref": "#/$defs/LexicalNode"
        +      },
        +      "title": "Lexical Nodes",
        +      "type": "array"
        +    },
        +    "propositions": {
        +      "items": {
        +        "$ref": "#/$defs/Proposition"
        +      },
        +      "title": "Propositions",
        +      "type": "array"
        +    },
        +    "quality_annotations": {
        +      "additionalProperties": true,
        +      "title": "Quality Annotations",
        +      "type": "object"
        +    },
        +    "reading_analysis": {
        +      "$ref": "#/$defs/ReadingAnalysis"
        +    },
        +    "scope_edges": {
        +      "items": {
        +        "$ref": "#/$defs/ScopeEdge"
        +      },
        +      "title": "Scope Edges",
        +      "type": "array"
        +    },
        +    "semantic_hash": {
        +      "default": "",
        +      "title": "Semantic Hash",
        +      "type": "string"
        +    },
        +    "unresolved": {
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "title": "Unresolved",
        +      "type": "array"
        +    }
        +  },
        +  "title": "MeaningGraph",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / ParagraphFrame
        Added value: +{
        +  "properties": {
        +    "clause_ids": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Clause Ids",
        +      "type": "array"
        +    },
        +    "confidence": {
        +      "default": 1,
        +      "maximum": 1,
        +      "minimum": 0,
        +      "title": "Confidence",
        +      "type": "number"
        +    },
        +    "end_char": {
        +      "title": "End Char",
        +      "type": "integer"
        +    },
        +    "paragraph_id": {
        +      "title": "Paragraph Id",
        +      "type": "string"
        +    },
        +    "proposition_ids": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Proposition Ids",
        +      "type": "array"
        +    },
        +    "role": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Role"
        +    },
        +    "sentence_spans": {
        +      "items": {
        +        "$ref": "#/$defs/OriginalSpan"
        +      },
        +      "title": "Sentence Spans",
        +      "type": "array"
        +    },
        +    "source_span": {
        +      "$ref": "#/$defs/OriginalSpan"
        +    },
        +    "start_char": {
        +      "title": "Start Char",
        +      "type": "integer"
        +    },
        +    "status": {
        +      "$ref": "#/$defs/ItemStatus",
        +      "default": "RESOLVED"
        +    },
        +    "text": {
        +      "title": "Text",
        +      "type": "string"
        +    },
        +    "topic_sentence": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Topic Sentence"
        +    },
        +    "topic_sentence_end": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Topic Sentence End"
        +    },
        +    "topic_sentence_span": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/OriginalSpan"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    },
        +    "topic_sentence_start": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Topic Sentence Start"
        +    }
        +  },
        +  "required": [
        +    "paragraph_id",
        +    "text",
        +    "start_char",
        +    "end_char",
        +    "source_span"
        +  ],
        +  "title": "ParagraphFrame",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / ParagraphRelation
        Added value: +{
        +  "properties": {
        +    "confidence": {
        +      "default": 1,
        +      "maximum": 1,
        +      "minimum": 0,
        +      "title": "Confidence",
        +      "type": "number"
        +    },
        +    "marker": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Marker"
        +    },
        +    "relation": {
        +      "title": "Relation",
        +      "type": "string"
        +    },
        +    "relation_id": {
        +      "title": "Relation Id",
        +      "type": "string"
        +    },
        +    "source_paragraph_id": {
        +      "title": "Source Paragraph Id",
        +      "type": "string"
        +    },
        +    "status": {
        +      "$ref": "#/$defs/ItemStatus",
        +      "default": "RESOLVED"
        +    },
        +    "target_paragraph_id": {
        +      "title": "Target Paragraph Id",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "relation_id",
        +    "source_paragraph_id",
        +    "target_paragraph_id",
        +    "relation"
        +  ],
        +  "title": "ParagraphRelation",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / ParagraphStructure
        Added value: +{
        +  "properties": {
        +    "ambiguity_flag": {
        +      "default": false,
        +      "title": "Ambiguity Flag",
        +      "type": "boolean"
        +    },
        +    "boundary_method": {
        +      "default": "explicit_blank_line",
        +      "title": "Boundary Method",
        +      "type": "string"
        +    },
        +    "paragraphs": {
        +      "items": {
        +        "$ref": "#/$defs/ParagraphFrame"
        +      },
        +      "title": "Paragraphs",
        +      "type": "array"
        +    },
        +    "relations": {
        +      "items": {
        +        "$ref": "#/$defs/ParagraphRelation"
        +      },
        +      "title": "Relations",
        +      "type": "array"
        +    },
        +    "status": {
        +      "$ref": "#/$defs/ItemStatus",
        +      "default": "RESOLVED"
        +    },
        +    "unresolved": {
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "title": "Unresolved",
        +      "type": "array"
        +    }
        +  },
        +  "title": "ParagraphStructure",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / PredicateFrame
        Added value: +{
        +  "properties": {
        +    "arguments": {
        +      "items": {
        +        "$ref": "#/$defs/Argument"
        +      },
        +      "title": "Arguments",
        +      "type": "array"
        +    },
        +    "aspect": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Aspect",
        +      "type": "array"
        +    },
        +    "clause_id": {
        +      "title": "Clause Id",
        +      "type": "string"
        +    },
        +    "frame_id": {
        +      "title": "Frame Id",
        +      "type": "string"
        +    },
        +    "modality": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Modality",
        +      "type": "array"
        +    },
        +    "polarity": {
        +      "default": "positive",
        +      "enum": [
        +        "positive",
        +        "negative"
        +      ],
        +      "title": "Polarity",
        +      "type": "string"
        +    },
        +    "predicate": {
        +      "title": "Predicate",
        +      "type": "string"
        +    },
        +    "predicate_token_index": {
        +      "title": "Predicate Token Index",
        +      "type": "integer"
        +    },
        +    "related_proposition_ids": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Related Proposition Ids",
        +      "type": "array"
        +    },
        +    "source_span": {
        +      "$ref": "#/$defs/OriginalSpan"
        +    },
        +    "status": {
        +      "$ref": "#/$defs/ItemStatus",
        +      "default": "RESOLVED"
        +    },
        +    "surface_predicate": {
        +      "title": "Surface Predicate",
        +      "type": "string"
        +    },
        +    "tense": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Tense"
        +    },
        +    "voice": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Voice",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "frame_id",
        +    "clause_id",
        +    "predicate",
        +    "surface_predicate",
        +    "predicate_token_index",
        +    "source_span"
        +  ],
        +  "title": "PredicateFrame",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / Proposition
        Added value: +{
        +  "properties": {
        +    "arguments": {
        +      "items": {
        +        "$ref": "#/$defs/Argument"
        +      },
        +      "title": "Arguments",
        +      "type": "array"
        +    },
        +    "aspect": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Aspect",
        +      "type": "array"
        +    },
        +    "captures": {
        +      "additionalProperties": {
        +        "type": "string"
        +      },
        +      "title": "Captures",
        +      "type": "object"
        +    },
        +    "clause_id": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Clause Id"
        +    },
        +    "deontic_force": {
        +      "default": "none",
        +      "enum": [
        +        "none",
        +        "permission",
        +        "obligation",
        +        "prohibition"
        +      ],
        +      "title": "Deontic Force",
        +      "type": "string"
        +    },
        +    "directness": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Directness"
        +    },
        +    "epistemic_status": {
        +      "default": "asserted",
        +      "title": "Epistemic Status",
        +      "type": "string"
        +    },
        +    "evidence_ids": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Evidence Ids",
        +      "type": "array"
        +    },
        +    "executable_candidate": {
        +      "default": false,
        +      "title": "Executable Candidate",
        +      "type": "boolean"
        +    },
        +    "force_level": {
        +      "anyOf": [
        +        {
        +          "maximum": 5,
        +          "minimum": 1,
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Force Level"
        +    },
        +    "honorific_classes": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Honorific Classes",
        +      "type": "array"
        +    },
        +    "inference_sources": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Inference Sources",
        +      "type": "array"
        +    },
        +    "information_territory": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Information Territory"
        +    },
        +    "intent_type": {
        +      "title": "Intent Type",
        +      "type": "string"
        +    },
        +    "interaction_functions": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Interaction Functions",
        +      "type": "array"
        +    },
        +    "polarity": {
        +      "default": "positive",
        +      "enum": [
        +        "positive",
        +        "negative"
        +      ],
        +      "title": "Polarity",
        +      "type": "string"
        +    },
        +    "politeness_level": {
        +      "anyOf": [
        +        {
        +          "maximum": 5,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Politeness Level"
        +    },
        +    "pragmatic_markers": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Pragmatic Markers",
        +      "type": "array"
        +    },
        +    "predicate": {
        +      "title": "Predicate",
        +      "type": "string"
        +    },
        +    "proposition_id": {
        +      "title": "Proposition Id",
        +      "type": "string"
        +    },
        +    "quote_source": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Quote Source"
        +    },
        +    "quoted": {
        +      "default": false,
        +      "title": "Quoted",
        +      "type": "boolean"
        +    },
        +    "register_labels": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Register Labels",
        +      "type": "array"
        +    },
        +    "sense_candidates": {
        +      "items": {
        +        "$ref": "#/$defs/SenseCandidate"
        +      },
        +      "title": "Sense Candidates",
        +      "type": "array"
        +    },
        +    "sense_confidence": {
        +      "default": 0,
        +      "maximum": 1,
        +      "minimum": 0,
        +      "title": "Sense Confidence",
        +      "type": "number"
        +    },
        +    "sense_id": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Sense Id"
        +    },
        +    "sense_label": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Sense Label"
        +    },
        +    "sensory_features": {
        +      "additionalProperties": true,
        +      "title": "Sensory Features",
        +      "type": "object"
        +    },
        +    "sentence_mood": {
        +      "default": "declarative",
        +      "enum": [
        +        "declarative",
        +        "interrogative",
        +        "imperative"
        +      ],
        +      "title": "Sentence Mood",
        +      "type": "string"
        +    },
        +    "social_relation_status": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Social Relation Status"
        +    },
        +    "source_span": {
        +      "$ref": "#/$defs/OriginalSpan"
        +    },
        +    "speaker_entity_id": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Speaker Entity Id"
        +    },
        +    "speech_act": {
        +      "default": "assertion",
        +      "title": "Speech Act",
        +      "type": "string"
        +    },
        +    "status": {
        +      "$ref": "#/$defs/ItemStatus",
        +      "default": "RESOLVED"
        +    },
        +    "surface_predicate": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Surface Predicate"
        +    },
        +    "tense": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Tense"
        +    },
        +    "value": {
        +      "title": "Value",
        +      "type": "string"
        +    },
        +    "voice": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Voice",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "proposition_id",
        +    "predicate",
        +    "intent_type",
        +    "value",
        +    "source_span"
        +  ],
        +  "title": "Proposition",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / ReadingAnalysis
        Added value: +{
        +  "properties": {
        +    "analysis_version": {
        +      "default": "1.0.0",
        +      "title": "Analysis Version",
        +      "type": "string"
        +    },
        +    "argumentation": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/ArgumentationResult"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    },
        +    "attribution_frames": {
        +      "items": {
        +        "$ref": "#/$defs/AttributionFrame"
        +      },
        +      "title": "Attribution Frames",
        +      "type": "array"
        +    },
        +    "dependency_arcs": {
        +      "items": {
        +        "$ref": "#/$defs/DependencyArc"
        +      },
        +      "title": "Dependency Arcs",
        +      "type": "array"
        +    },
        +    "discourse_relations": {
        +      "items": {
        +        "$ref": "#/$defs/DiscourseRelation"
        +      },
        +      "title": "Discourse Relations",
        +      "type": "array"
        +    },
        +    "paragraph_structure": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/ParagraphStructure"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    },
        +    "predicate_frames": {
        +      "items": {
        +        "$ref": "#/$defs/PredicateFrame"
        +      },
        +      "title": "Predicate Frames",
        +      "type": "array"
        +    },
        +    "purpose": {
        +      "const": "japanese_reading_comprehension",
        +      "default": "japanese_reading_comprehension",
        +      "title": "Purpose",
        +      "type": "string"
        +    },
        +    "scope_operators": {
        +      "items": {
        +        "$ref": "#/$defs/ScopeOperator"
        +      },
        +      "title": "Scope Operators",
        +      "type": "array"
        +    },
        +    "status": {
        +      "$ref": "#/$defs/ItemStatus",
        +      "default": "RESOLVED"
        +    },
        +    "summary": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/SummaryResult"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    },
        +    "unresolved": {
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "title": "Unresolved",
        +      "type": "array"
        +    }
        +  },
        +  "title": "ReadingAnalysis",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / ReferenceResolution / properties / candidate_scores
        Added value: +{
        +  "additionalProperties": {
        +    "type": "integer"
        +  },
        +  "title": "Candidate Scores",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / ReferenceResolution / properties / resolution_reason
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Resolution Reason"
        +}
      • addedOutput schema / $defs / ScopeEdge
        Added value: +{
        +  "properties": {
        +    "confidence": {
        +      "default": 1,
        +      "maximum": 1,
        +      "minimum": 0,
        +      "title": "Confidence",
        +      "type": "number"
        +    },
        +    "edge_id": {
        +      "title": "Edge Id",
        +      "type": "string"
        +    },
        +    "evidence_ids": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Evidence Ids",
        +      "type": "array"
        +    },
        +    "marker": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Marker"
        +    },
        +    "relation": {
        +      "title": "Relation",
        +      "type": "string"
        +    },
        +    "source_id": {
        +      "title": "Source Id",
        +      "type": "string"
        +    },
        +    "status": {
        +      "$ref": "#/$defs/ItemStatus",
        +      "default": "RESOLVED"
        +    },
        +    "target_id": {
        +      "title": "Target Id",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "edge_id",
        +    "source_id",
        +    "target_id",
        +    "relation"
        +  ],
        +  "title": "ScopeEdge",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / ScopeOperator
        Added value: +{
        +  "properties": {
        +    "clause_id": {
        +      "title": "Clause Id",
        +      "type": "string"
        +    },
        +    "marker": {
        +      "title": "Marker",
        +      "type": "string"
        +    },
        +    "operand_spans": {
        +      "items": {
        +        "$ref": "#/$defs/OriginalSpan"
        +      },
        +      "title": "Operand Spans",
        +      "type": "array"
        +    },
        +    "operator_id": {
        +      "title": "Operator Id",
        +      "type": "string"
        +    },
        +    "operator_type": {
        +      "title": "Operator Type",
        +      "type": "string"
        +    },
        +    "semantic_value": {
        +      "title": "Semantic Value",
        +      "type": "string"
        +    },
        +    "source_span": {
        +      "$ref": "#/$defs/OriginalSpan"
        +    },
        +    "status": {
        +      "$ref": "#/$defs/ItemStatus",
        +      "default": "RESOLVED"
        +    },
        +    "target_frame_ids": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Target Frame Ids",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "operator_id",
        +    "clause_id",
        +    "operator_type",
        +    "semantic_value",
        +    "marker",
        +    "source_span"
        +  ],
        +  "title": "ScopeOperator",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / SenseCandidate
        Added value: +{
        +  "properties": {
        +    "evidence": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Evidence",
        +      "type": "array"
        +    },
        +    "label": {
        +      "title": "Label",
        +      "type": "string"
        +    },
        +    "score": {
        +      "title": "Score",
        +      "type": "integer"
        +    },
        +    "sense_id": {
        +      "title": "Sense Id",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "sense_id",
        +    "label",
        +    "score"
        +  ],
        +  "title": "SenseCandidate",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / SummaryResult
        Added value: +{
        +  "description": "文章全体の要旨抽出結果。",
        +  "properties": {
        +    "candidates": {
        +      "anyOf": [
        +        {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Candidates"
        +    },
        +    "confidence": {
        +      "default": 0,
        +      "maximum": 1,
        +      "minimum": 0,
        +      "title": "Confidence",
        +      "type": "number"
        +    },
        +    "method": {
        +      "default": "topic_sentence_aggregation",
        +      "title": "Method",
        +      "type": "string"
        +    },
        +    "source_paragraph_indices": {
        +      "items": {
        +        "type": "integer"
        +      },
        +      "title": "Source Paragraph Indices",
        +      "type": "array"
        +    },
        +    "status": {
        +      "default": "AMBIGUOUS",
        +      "enum": [
        +        "DETERMINED",
        +        "AMBIGUOUS"
        +      ],
        +      "title": "Status",
        +      "type": "string"
        +    },
        +    "summary_text": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Summary Text"
        +    }
        +  },
        +  "title": "SummaryResult",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / Task / properties / proposition_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Proposition Id"
        +}
      • addedOutput schema / $defs / Task / properties / structured_constraints
        Added value: +{
        +  "items": {
        +    "$ref": "#/$defs/TaskConstraint"
        +  },
        +  "title": "Structured Constraints",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / TaskConstraint
        Added value: +{
        +  "properties": {
        +    "constraint_type": {
        +      "title": "Constraint Type",
        +      "type": "string"
        +    },
        +    "source_proposition_id": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Source Proposition Id"
        +    },
        +    "source_span": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/OriginalSpan"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null
        +    },
        +    "status": {
        +      "$ref": "#/$defs/ItemStatus",
        +      "default": "RESOLVED"
        +    },
        +    "value": {
        +      "title": "Value",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "constraint_type",
        +    "value"
        +  ],
        +  "title": "TaskConstraint",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / TaskGraph
        Added value: +{
        +  "properties": {
        +    "constraints": {
        +      "items": {
        +        "$ref": "#/$defs/TaskConstraint"
        +      },
        +      "title": "Constraints",
        +      "type": "array"
        +    },
        +    "edges": {
        +      "items": {
        +        "additionalProperties": {
        +          "type": "string"
        +        },
        +        "type": "object"
        +      },
        +      "title": "Edges",
        +      "type": "array"
        +    },
        +    "graph_version": {
        +      "default": "2.0.0",
        +      "title": "Graph Version",
        +      "type": "string"
        +    },
        +    "status": {
        +      "$ref": "#/$defs/ItemStatus",
        +      "default": "RESOLVED"
        +    },
        +    "tasks": {
        +      "items": {
        +        "$ref": "#/$defs/Task"
        +      },
        +      "title": "Tasks",
        +      "type": "array"
        +    }
        +  },
        +  "title": "TaskGraph",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / Token / properties / lexical_candidate_total
        Added value: +{
        +  "default": 0,
        +  "title": "Lexical Candidate Total",
        +  "type": "integer"
        +}
      • addedOutput schema / $defs / Token / properties / lexical_candidates
        Added value: +{
        +  "items": {
        +    "$ref": "#/$defs/LexicalCandidate"
        +  },
        +  "title": "Lexical Candidates",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / Token / properties / lexical_status
        Added value: +{
        +  "default": "NO_MATCH",
        +  "enum": [
        +    "MATCHED",
        +    "AMBIGUOUS",
        +    "NO_MATCH"
        +  ],
        +  "title": "Lexical Status",
        +  "type": "string"
        +}
      • addedOutput schema / $defs / Token / properties / reading
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Reading"
        +}
      • addedOutput schema / properties / meaning_graph
        Added value: +{
        +  "$ref": "#/$defs/MeaningGraph"
        +}
      • addedOutput schema / properties / task_graph
        Added value: +{
        +  "$ref": "#/$defs/TaskGraph"
        +}
  2. 1 tool updatev0.1.0
    • First observedanalyze_japanese

TDQS

B3.2/5.0

Scored across 1 tool

Disambiguation5/5

Only one tool is exposed, so there is no overlapping purpose or selection ambiguity. Its purpose is clearly stated as deterministic Japanese text analysis.

Naming Consistency5/5

The single tool name analyze_japanese follows a clear verb_noun snake_case convention. With only one tool, there are no deviations or competing conventions to assess.

Tool Count3/5

One tool is borderline thin for a parser that claims to return lexical, syntactic, semantic, discourse, graph, and safety outputs. A single entry point can be reasonable, but the breadth suggests it could benefit from focused sub-tools.

Completeness4/5

The tool covers a broad parsing pipeline from lexical meaning through discourse relations and downstream task graphs. Minor gaps may exist for configuration, batch input, or custom dictionary handling, but the core parsing surface appears well covered.

Maintenance

ActivityMaintained
ResponsivenessWithin a week

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables intelligent task management with status tracking, dependency resolution, and automatic next task discovery based on preconditions and priorities. Supports hierarchical task structures with subtasks and flexible JSON-based configuration.
    2
    ISC
  • A
    license
    A
    quality
    B
    maintenance
    Intent-based project documentation server that automatically maps natural language queries to the right sources (plans, todos, roadmap, docs) and provides comprehensive task management with dependency tracking, backlog promotion, and archival workflows.
    42
    33 npm
    9
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agents to break high-level business objectives into dependency-ordered sub-task graphs and then directly generate the finished deliverables, such as financial spreadsheets, executive presentations, and analytical reports. It runs as a zero-dependency Python MCP server over JSON-RPC stdio, adding deterministic authorization, role-boundary validation, and telemetry.
    7
    MIT