Skip to main content
Glama
masoudroot
by masoudroot

persian-writing-mcp

tests License: MIT

این چیست؟

مغز دوم یک ویراستار حرفه‌ای فارسی.

۱۵۷۷ نکتهٔ ویراستاری در خودش دارد؛ از رسم‌الخط و نشانه‌گذاری و دستور زبان تا جمله‌بندی، واژه‌گزینی، لحن، ساختار متن و قالب‌های آماده. چیزهایی که یک ویراستار حرفه‌ای در سال‌ها کار یاد می‌گیرد، این‌جا یک‌جا جمع شده است. این دانش به هر برنامهٔ هوش مصنوعی وصل می‌شود؛ مثل Claude Desktop، Cursor و n8n.

کافی است متن را بدهی. اول خودش متن را می‌خواند و ایرادهایش را پیدا می‌کند؛ بعد از میان این نکته‌ها، برای همان ایرادها یک چک‌لیست مخصوص می‌سازد. هوش مصنوعی با همان چک‌لیست متن را ویراستاری می‌کند، یک بازبینِ دیگر آن را کنترل می‌کند، و در آخر، خودش یک بررسی نهایی هم می‌کند. در آخر یک متن تمیز تحویل می‌گیری؛ همراه با گزارشی که نشان می‌دهد چه چیزهایی درست شد.

Related MCP server: TrueVoice MCP

این ۱۵۷۷ نکته چه چیزهایی را پوشش می‌دهد؟

حوزهٔ دانش

تعداد نکته

تمرین‌ها و نمونه‌های تحلیلی

۲۱۸

نویسندگی خلاق و ادبی

۱۸۴

بلاغت و آرایه‌های ادبی

۱۵۲

نثر کاربردی معاصر

۱۳۰

آموزشگاه ویراستار

۱۲۱

تولید محتوای دیجیتال

۱۱۵

رسم‌الخط و نشانه‌گذاری

۹۳

دستور زبان فارسی

۹۳

فرایند حرفه‌ای نوشتن

۷۶

واژه‌گزینی و درست‌نویسی

۷۲

ویرایش و بازنویسی

۷۰

جمله و پاراگراف

۵۷

سبک و نثر فارسی

۵۳

چک‌لیست‌ها و برگه‌های تقلب

۴۸

قالب‌ها و الگوهای آماده

۴۵

واژه‌نامه و نمایه

۲۳

منابع و کتاب‌شناسی

۱۴

راهنمای استفاده و نقشهٔ راه

۱۳

چه چیزهایی را درست می‌کند؟

در چهار لایه، از سطح خط تا سطح فکر:

  • خط و نشانه: حروف عربیِ قاطی‌شده (ي، ك)، نشانه‌گذاری لاتین، نیم‌فاصله‌های جاافتاده («می شود» به‌جای «می‌شود»).

  • جمله: جمله‌های بلند و خسته‌کننده، حشو اداری («می‌باشد»، «لذا»، «گردید»)، مجهول‌های بی‌جا، شروع‌های تکراری که ریتم متن را یکنواخت می‌کند.

  • واژه و لحن: واژهٔ نامناسب، لحن ناهماهنگ با مخاطب، کلیشه‌های فرسوده («در دنیای امروز»، «شایان ذکر است»).

  • کل متن: بندهای شلوغ و بی‌سروته، پرش از موضوعی به موضوع دیگر، شروع و پایان ضعیف، ساختاری که به نوع متن نمی‌خورد.

نکتهٔ مهم: بازبینی عمیق (انسجام، ریتم، وحدت بند، ساختار) برای هر متن انجام می‌شود؛ حتی اگر غلط سطحی نداشته باشد. ویراستار حرفه‌ای فقط دنبال غلط املایی نیست.

یک نمونه. این جمله:

این گزارش می‌باشد که توسط تیم ما تهیه گردیده است و لذا جهت استحضار مدیریت ارسال می شود.

این‌طور تمیز می‌شود.

تیم ما این گزارش را تهیه کرده و برای مدیریت فرستاده است.

چطور کار می‌کند؟

۱. تمیزکاری اولیه: ایرادهای ساده و مشخص (مثل حروف عربی) خودکار درست می‌شوند. ۲. معاینه: ایرادهای متن پیدا می‌شود؛ بعد همهٔ حوزه‌های دانش (از رسم‌الخط تا ساختار) یکی‌یکی متن را می‌سنجند و برای هر حوزه نکته‌های مخصوص همان متن آورده می‌شود. ۳. ویراستاری: هوش مصنوعی با چک‌لیست، متن را ویراستاری می‌کند. ۴. بازبینی: یک بازبینِ دیگر، تک‌تک بندهای چک‌لیست را روی متن کنترل می‌کند؛ اگر چیزی جا مانده باشد، برمی‌گردد برای اصلاح (تا ۴ بار). ۵. کنترل نهایی: آخرش هم خودش بررسی می‌کند که چیزی جا نمانده باشد؛ اگر موردی نیاز به نظر انسان داشته باشد، در گزارش اعلام می‌شود.

شروع سریع

به پایتون ۳.۱۰ یا بالاتر نیاز دارید.

اگر داکر نداری، با pip نصبش کن.

pip install git+https://github.com/masoudroot/persian-writing-mcp.git
obper-mcp

یا با داکر؛ از ریشهٔ ریپو بیلد بگیر.

docker build -t persian-writing-mcp .
docker run -p 8060:8060 -e OP_MCP_API_KEY=<redacted>

وصل شدن به برنامه‌ها

  • Claude Desktop و Cursor: همین دستور obper-mcp را به‌عنوان ابزار اضافه کنید؛ بعد در هر گفت‌وگو می‌توانید بخواهید متنتان را ویراستاری کند.

  • n8n: دو ورک‌فلوی آمادهٔ ایمپورت در پوشهٔ examples هست (یکی ساده برای کار روزمره، یکی کامل با همهٔ مرحله‌های بالا)؛ راهنمایش در docs/n8n.md است.

  • کد خودتان: راهنمای کامل الگو با نمونه‌کد در docs/deep-edit.md است.

اگر برنامه‌تان روی شبکه است، این دستور سرور را راه می‌اندازد.

obper-mcp --transport streamable-http --port 8060 --api-key SECRET

برای توسعه‌دهندگان

۱۱ ابزار دارد؛ مهم‌ترین‌ها این‌هایند.

ابزار

چه می‌کند

smart_rules

متن را می‌خواند و برای ایرادهایش چک‌لیست مخصوص می‌سازد

mechanical_pass

تمیزکاری خودکارِ بدونِ حدس + کنترل نهایی

verify_regression

چک می‌کند ایرادهای پیدا شده واقعاً حل شده‌اند یا نه

diff_report

فهرست دقیق همهٔ تغییرها، برای حسابرسی

rule_pack

چک‌لیست کوتاه برای یک نوع متن (مثلاً گزارش رسمی)

search / ruling / read_note

جست‌وجو و خواندن نکته‌ها

مشارکت

ایده و پول‌ریکوئست (درخواست ادغام) خوش می‌آید. پیش از پوش، تست‌ها را با این دو دستور اجرا کنید.

python tests/test_smoke.py
python tests/test_golden.py

لایسنس

لایسنس MIT است؛ فایل LICENSE را ببینید.

Available Tools

11 tools
deep_rulesDeep RulesA

Build the full multi-dimensional checklist for deep Persian editing.

General-purpose (not n8n-specific): any agent calls this once, then runs the deep-edit loop itself —

  1. edit the text against checklist (all rules),

  2. review the edited text rule-by-rule, list remaining issues as JSON,

  3. fix only those issues; repeat 2-3 until clean (max ~4 passes),

  4. final read-through for rhythm, typos, native ear. Combines the task-type rule_pack with the five fixed editorial dimensions (نیم‌فاصله، نشانه‌گذاری، جمله، واژه، لحن); dedupes by note id. Returns checklist as a ready-to-paste string plus structured rules.

ParametersJSON Schema
NameRequiredDescriptionDefault
per_dimNo
task_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses that the tool is called once, that the agent then runs an editing loop itself, that rules are deduped by note id, and that it returns both a ready-to-paste 'checklist' string and structured 'rules'. It does not mention side effects, permissions, or idempotency, so it is not fully exhaustive.

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

Conciseness5/5

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

The description is front-loaded with the tool's purpose, then uses a clean numbered list for the workflow loop. Each sentence adds useful information, and there is no filler or redundant restatement.

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

Completeness3/5

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

An output schema exists, so return values need not be explained in depth, and the description covers the workflow well. However, input semantics are largely missing: task_type values and per_dim meaning are not documented despite 0% schema coverage. Sibling routing is also not addressed, leaving meaningful gaps for correct invocation.

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% for two parameters, so the description must compensate. It only indirectly implies that 'task_type' selects a task-type rule_pack; 'per_dim' (default 8) is never explained. This leaves both parameters substantially under-specified.

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 states a specific verb and resource: 'Build the full multi-dimensional checklist for deep Persian editing.' It also notes the tool combines a task-type rule_pack with five editorial dimensions, which helps distinguish it from the sibling rule_pack. However, it does not explicitly name when to choose it over rule_pack or smart_rules, so it falls short of a full 5.

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

Usage Guidelines4/5

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

Usage is clearly described: 'any agent calls this once, then runs the deep-edit loop itself' followed by a four-step editing loop with a max pass count. This gives strong context for how to use the tool. It still lacks explicit exclusions or a direct comparison to alternatives like rule_pack and smart_rules.

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

diff_reportDiff ReportB

Deterministic change ledger: every span the pipeline changed.

Word-level diff with context. Lets any human audit exactly what the system did to the text, without trusting the model's own account.

ParametersJSON Schema
NameRequiredDescriptionDefault
after_textYes
before_textYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/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 burden, and it does disclose real behavioral traits: determinism ('Deterministic change ledger') and trust-independence ('without trusting the model's own account'). However, it says nothing about whether this is read-only, whether it recomputes or reads stored state, or any cost/limits.

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

Conciseness4/5

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

Two short, front-loaded sentences that waste little space. Some phrasing is conceptual ('change ledger', 'trusting the model's own account') rather than operational, but it is not verbose.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and the tool itself is simple. The remaining gap is the absence of any parameter or behavioral grounding for a tool with zero annotation and zero schema-description coverage, leaving the definition adequate but not fully self-sufficient.

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%, so the schema documents nothing about before_text or after_text, and the description does not compensate by explaining what these inputs are or how they should be supplied. Names are self-evident, but the description adds no meaning beyond them.

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 makes clear this produces a word-level diff between two texts ('Word-level diff with context', 'every span the pipeline changed'). The verb 'produce a diff' is implied rather than stated outright, and it never explicitly ties itself to the before_text/after_text inputs, but combined with the name and title the function is unambiguous.

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?

It hints at a use case ('Lets any human audit exactly what the system did to the text') but gives no explicit when-to-use condition and does not distinguish itself from related siblings like verify_regression or mechanical_pass. An agent must infer when to reach for this tool.

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

map_vaultMap VaultB

The vault's section tree (numbered sections) with note counts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations present, the description carries the full burden. It partially compensates by implying a read-only, informational operation (a 'map' of the vault) and describing the returned structure, but it never explicitly states read-only safety, side effects, or cost, leaving the agent to guess.

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

Conciseness4/5

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

A single front-loaded sentence with no wasted words, appropriately sized for a no-argument tool. It reads as a noun phrase rather than a full statement, but nothing needs to be trimmed.

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

Completeness3/5

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

Complexity is low, there are no parameters, and an output schema exists so return values need not be explained. What is missing is usage context (when to call it) and any read-only reassurance, which are the only remaining gaps.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. Schema coverage is also 100%.

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 resource (the vault's section tree) and its payload (numbered sections with note counts), which is more informative than the bare title. It lacks an explicit verb, and it never contrasts itself with siblings like search or read_note, so an agent gets the 'what' but not the differentiation.

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 reach for this tool versus search, read_note, or reindex, and no prerequisites or exclusions are stated. The agent must infer that it is an orienting/overview call purely from the word 'map'.

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

mechanical_passMechanical PassA

Deterministic mechanical fix + verification gate for Persian text.

Fixes what needs no judgment (Arabic ي/ك, Latin , ; ? %, straight quotes, ZWNJ on می/نمی, spacing) and proves the result: remaining lists any mechanical issue left, clean is true only when none remain. Use it as the first step (so the LLM works on a clean base) and as the final gate (so nothing ships with mechanical errors). Ambiguous cases (em/en dashes) are flagged in remaining, never guessed.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

No annotations exist, so the description carries the full burden, and it does most of the work: deterministic non-judgmental behavior, ambiguity flagged rather than guessed, and the meaning of the output fields `remaining` and `clean`. It does not state whether the corrected text is returned (vs. mutated in place), idempotency, or failure behavior on empty/non-Persian input, which keeps it short of a 5.

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

Conciseness5/5

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

Front-loads the purpose in one line, then the verification contract, then usage. The parenthetical list of fix categories is dense but each item is concrete and earns its space; no filler sentences.

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

Completeness4/5

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

An output schema exists, so return values need not be spelled out, yet the description still explains the semantics of `remaining` and `clean`, which is the right kind of added value. The only mild gap is not saying explicitly that the corrected text is part of the result, but the output schema covers that.

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

Parameters3/5

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

One parameter (`text`) with 0% schema description coverage, so the description must compensate. Reading the prose makes it obvious the input is the Persian text to normalize, but no format, length, or encoding expectations are stated. Baseline 3 for a minimal single-param tool.

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

Purpose5/5

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

States a precise verb+resource: a deterministic mechanical fix plus verification gate for Persian text. It also draws its own boundary ('fixes what needs no judgment', 'never guessed'), which lets an agent distinguish it from judgment-based siblings such as ruling or rule_pack without opening a schema.

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

Usage Guidelines5/5

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

Explicitly prescribes placement: 'Use it as the first step (so the LLM works on a clean base) and as the final gate (so nothing ships with mechanical errors).' That is both when-to-use and the workflow position, with the rationale for each.

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

read_noteRead NoteA

Read a full note from the vault by its id (as returned by search).

ParametersJSON Schema
NameRequiredDescriptionDefault
note_idYes
max_charsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. 'Full note' usefully signals that complete content (not a snippet) is returned, but it omits what happens when the note is missing, how max_chars truncates output, and any permission requirements. An output schema exists, which lightens the return-value burden.

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

Conciseness5/5

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

A single sentence with no filler, front-loading the verb and resource while embedding the id-provenance hint in a parenthetical. Every element earns its place.

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

Completeness4/5

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

For a simple two-parameter read tool with an output schema, the description covers the core contract. The remaining gap is max_chars truncation semantics and error/not-found behavior, which are minor for this tool class.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It explains note_id's provenance ('as returned by search'), which adds genuine value, but says nothing about max_chars (default 6000) or its truncation behavior — half the parameters remain undocumented.

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?

States a specific verb ('Read') and resource ('a full note from the vault'), and the phrase 'full note' implicitly distinguishes it from the sibling search tool that returns summaries. It stops short of explicitly naming search as the alternative, so it isn't quite a 5.

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

Usage Guidelines3/5

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

The clause 'by its id (as returned by search)' implies the workflow — ids come from search — which is useful context for when to reach for this tool. However, there is no explicit when-to-use vs when-not guidance or routing to alternatives.

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

reindexReindexA

Rebuild the search index (run after notes are added/edited).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/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 and does establish this as a maintenance write. However, it does not disclose cost or duration of a rebuild, whether it is safe to run concurrently with edits, or whether it must be called manually versus happening automatically.

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

Conciseness5/5

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

One short sentence with the action front-loaded and the trigger condition parenthetically attached. Every word earns its place with no filler.

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

Completeness4/5

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

For a no-argument tool with an output schema, the description covers what it does and when to run it, so return values need not be explained. The only real gap is operational context such as runtime or concurrency behavior.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; no parameter semantics are missing.

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?

States a specific verb and resource ('Rebuild the search index'), so the action is unambiguous. It does not compare itself against sibling tools like search or map_vault, but its purpose is distinct enough to stand alone.

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

Usage Guidelines4/5

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

Gives a clear trigger condition: run after notes are added or edited. It stops short of naming alternatives or stating when not to run it, but the when-to-use cue is explicit.

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

rule_packRule PackA

Build the compact «بستهٔ قاعده» checklist for a Persian writing task.

task_type is one of: گزارش رسمی، ایمیل اداری، لندینگ، مقاله، کپشن، نامهٔ اداری، پروپوزال، خبر، مصاحبه، متن وب، پست شبکهٔ اجتماعی، جواب چت. (Any other value is used as a free-form search query.) Runs seed queries through the vault, keeps only status=verified notes, and returns up to max_rules items as «عنوان: حکم کوتاه». This is step 2-3 of the «حالت کامل» pipeline in the Persian OS.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_rulesNo
task_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does so reasonably: it discloses the internal process (runs seed queries through the vault), a filtering rule (keeps only status=verified notes), and the output shape («عنوان: حکم کوتاه»). It omits any explicit read-only statement, rate limits, or behavior when no verified notes match, but for a read-lookup tool this is solid disclosure.

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

Conciseness4/5

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

Purpose is front-loaded in the first line, then mechanics and pipeline placement follow in distinct blocks; the long enum list is necessary because the schema lacks it. No filler sentences, though the pipeline reference adds little for an agent that has no pipeline context.

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

Completeness4/5

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

For a two-param tool with an output schema and no annotations, the definition covers purpose, input values, filtering logic, and result format adequately. The main gap is the absence of any routing guidance toward the several closely-named rule siblings, which the agent would otherwise have to guess between.

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

Parameters4/5

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

Schema description coverage is 0% and the schema declares no enum, so the description's enumerated task_type list is essential and fully compensates; it also explains the fallback for unrecognized values (free-form search query). max_rules is clarified via 'returns up to max_rules items', though its integer/default nature is left to the schema.

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?

States a specific verb+resource ('Build the compact checklist for a Persian writing task') and pins its place in a pipeline, so the agent knows it produces a checklist rather than a search result. It does not explicitly distinguish itself from rule-flavored siblings like deep_rules or smart_rules; 'compact' hints at the distinction but never names the alternatives.

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

Usage Guidelines3/5

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

It gives real context ('step 2-3 of the «حالت کامل» pipeline') and enumerates valid task_type values, which implies when to reach for it. However it never states when NOT to use it, nor points to deep_rules/smart_rules/ruling as alternatives for a different depth or purpose.

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

rulingRulingB

Get the vault's short editorial ruling for a question/doubt.

Searches the vault, takes the best note, and returns its short ruling (پاسخ کوتاه / نکتهٔ ویرایشی / قاعده یا سازوکار) with the note id. Use this as the virtual editor's verdict before finalizing Persian text.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/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 usefully discloses that this is a composite read operation (search the vault, select the 'best note', return its ruling and note id), but 'best note' is an undisclosed selection heuristic, and there is no mention of permissions, failure behavior when nothing matches, or rate limits.

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

Conciseness4/5

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

Three short sentences, purpose front-loaded, with no filler. The only minor redundancy is restating 'short ruling' twice and the parenthetical Persian glosses, which are useful but lengthen the middle sentence.

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

Completeness3/5

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

An output schema exists, so return-value detail is not required, and the description's mention of the note id is a bonus. However, for a tool sitting among nine similar retrieval/rule siblings with zero annotation coverage and an undocumented parameter, the absence of disambiguation and edge-case behavior leaves meaningful gaps.

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

Parameters3/5

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

Schema description coverage is 0% for the single 'query' parameter, so the description must compensate. 'For a question/doubt' does convey that the input is a natural-language editorial question rather than a keyword, which adds some meaning, but no format, length, or example guidance is given.

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?

States a specific verb and resource ('Get the vault's short editorial ruling for a question/doubt') and even sketches the internal mechanism (search the vault, take the best note, return the ruling plus note id). It is clear what the tool produces, though it does not distinguish itself from adjacent rule-oriented siblings such as deep_rules, smart_rules, or rule_pack.

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

Usage Guidelines3/5

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

Gives one concrete usage context: 'Use this as the virtual editor's verdict before finalizing Persian text.' That is a real when-to-use cue, but there are no exclusions and no named alternatives among the ten siblings (search, deep_rules, smart_rules, rule_pack), so the agent must infer the boundaries itself.

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

smart_rulesSmart RulesA

Diagnose Persian text, then build a tailored deep-edit checklist.

Smarter than deep_rules: instead of a fixed checklist, the text is first scanned for editorial risk signals (long sentences, bureaucratic fossils, Arabic chars, Latin punctuation, ZWNJ issues, quotes, numbers, cliches, repetition, ...). Rules are then pulled for the issues actually present, ordered by signal weight; every rule carries why (the evidence that selected it). Layer 1 is always the task-type rule_pack. General-purpose: any agent runs the edit -> review loop itself.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
max_rulesNo
task_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it does well: it discloses the scan signals (long sentences, Arabic chars, ZWNJ, Latin punctuation, etc.), that rules are ordered by signal weight, that each rule carries a `why` field, and that Layer 1 is always the task-type rule_pack. It omits any note on cost/latency, determinism, or whether re-running yields identical output, so it falls just short of a 5.

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

Conciseness4/5

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

It is front-loaded with a one-line summary before the detail, and the sentence count is proportionate. The parenthetical signal list ('bureaucratic fossils', 'cliches, repetition, ...') is slightly decorative but does carry real information about what gets scanned.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, and the description adequately covers the tool's adaptive behavior, ordering, and the `why` evidence field for a moderate-complexity tool. The gap is the required `task_type` parameter, whose accepted values remain undefined anywhere, which matters because it determines Layer 1.

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% and the description never explains the three parameters. `task_type` is required and evidently drives the Layer 1 rule_pack, but no valid values or semantics are given; `max_rules` (default 60) is never mentioned at all. Only `text` is loosely implied to be the Persian text that gets diagnosed.

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

Purpose5/5

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

The description states a concrete two-stage action (diagnose Persian text, then build a tailored deep-edit checklist) and explicitly positions itself against the sibling `deep_rules` ('Smarter than deep_rules: instead of a fixed checklist...'). An agent can tell what this produces and how it differs from the fixed-checklist alternative without opening any schema.

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

Usage Guidelines4/5

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

It makes the selection condition against `deep_rules` fairly clear: use this when you want rules pulled for the risk signals actually present rather than a fixed checklist. It also states the intended workflow ('any agent runs the edit -> review loop itself'). However it never states explicit when-not conditions or names other siblings (e.g. `rule_pack`, `mechanical_pass`) as alternatives, so routing is implied rather than spelled out.

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

verify_regressionVerify RegressionA

Objective regression gate: every problem signal diagnosed in the input text must be gone in the output text.

Pure diagnose() comparison, no LLM. Returns resolved/remaining lists and a boolean pass. This is the pipeline's proof of work — "everything we detected, we fixed."

ParametersJSON Schema
NameRequiredDescriptionDefault
after_textYes
before_textYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/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 burden. It usefully discloses that the check is deterministic ('Pure diagnose() comparison, no LLM') and what it emits (resolved/remaining lists plus a boolean pass), which implies a read-only, side-effect-free operation. However, it never explicitly states there are no writes, what permissions are needed, or cost/latency characteristics.

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

Conciseness4/5

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

Front-loaded with the core rule, then method, then return shape. Three short blocks with minimal waste; the closing metaphor is slightly rhetorical but does communicate the all-or-nothing gate semantics.

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

Completeness4/5

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

An output schema exists, so return values need not be spelled out, and the description still summarizes them. For a 2-parameter tool with no nesting or enums, the remaining gap is positional guidance relative to siblings, which is minor.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. The sentence 'every problem signal diagnosed in the input text must be gone in the output text' does convey the before/after relationship of the two required parameters, but it does not name them or specify accepted formats, length, or empty-input behavior.

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?

States a specific verb+resource ('verify_regression') and defines the operation precisely as a diagnose() comparison between before_text and after_text problem signals. It is clear what the tool does, but it never distinguishes itself from siblings that sound similar (diff_report, mechanical_pass), so it falls short of a 5.

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

Usage Guidelines3/5

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

Framing it as 'the pipeline's proof of work' and an 'objective regression gate' implies it belongs at the end of a fix pipeline, but there is no explicit when-to-use, when-not-to-use, or named alternative among the 11 siblings. Usage must be inferred.

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. 11 tool updatesv1.6.0
    • First observeddeep_rules
    • First observeddiff_report
    • First observedmap_vault
    • First observedmechanical_pass
    • First observedread_note
    • First observedreindex
    • First observedrule_pack
    • First observedruling
    • First observedsearch
    • First observedsmart_rules
    • First observedverify_regression

TDQS

A3.5/5.0

Scored across 11 tools

Disambiguation3/5

The three rule-building tools (rule_pack, deep_rules, smart_rules) overlap heavily — all produce editing checklists for Persian text, and the distinctions (compact vs full vs diagnostic-driven) are subtle enough that an agent could easily misselect. Similarly, search, ruling, and rule_pack all query the same vault, with boundaries explained only in prose. The mechanical_pass/verify_regression/diff_report trio is more clearly separated by their distinct gate/ledger roles.

Naming Consistency4/5

All names are lowercase snake_case with no camelCase mixing, which is a solid baseline. However, the pattern shifts between verb_noun (read_note, map_vault, verify_regression, diff_report) and bare noun/verb forms (search, reindex, ruling), so the convention is mostly but not fully predictable.

Tool Count4/5

Eleven tools is a reasonable scope for a Persian editing pipeline plus vault access. It is slightly heavy given that three of them (rule_pack, deep_rules, smart_rules) occupy nearly the same slot, suggesting some consolidation is possible, but nothing is wildly out of range.

Completeness4/5

The editing pipeline is well-covered end to end: diagnose (smart_rules), fix (mechanical_pass), verify (verify_regression), and audit (diff_report), plus vault access via search/read_note/map_vault/reindex. The vault side is read-only with no note creation or update, but that may be intentional if notes are authored elsewhere, so the gap is minor.

Maintenance

ActivityNo data
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables detection and elimination of AI slop in text, providing tools to analyze writing for overused phrases, structural issues, and verbosity, and offers human writing rules tailored to context.
    3
    2
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Sub-15ms edge intelligence tools for Claude Desktop, Cursor, and LLM agent loops. Provides sub-millisecond LLM JSON repair, web-to-markdown token compression (cuts context tokens up to 90%), PII redaction, and RFC 5322 B2B email deliverability verification at zero marginal token cost.
    6
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Exposes 43 writing tools to any MCP-capable agent host, enabling clarifying questions, outline generation, drafting, revision, anti-AI audit, reader profiling, and export as one guided workflow. It learns the user's voice from their tracked edits and can distill a project directory into reports, READMEs, or blog posts based on the user's style.
    MIT