mcpField
Y
yontu

yontu

本地服务
github.com/senrecep生产力14 天前更新

关于 yontu

yontu 是面向土耳其语写作者和 AI Agent 的文本校对与润色工具,提供基于 TDK 的拼写检查、AI 文本模式识别和按文体制定的风格建议,并通过对比检查改写是否保留原意。

主要功能

  1. 01检查 TDK 拼写与标点规则
  2. 02识别 AI 与翻译痕迹
  3. 03覆盖 28 种文体的风格配置
  4. 04比较改写前后的信息保真度
  5. 05提供离线命令行、技能和 MCP 服务

适用场景

  1. 01按 TDK 规则检查土耳其语文本
  2. 02根据文体或语域调整措辞
  3. 03检查改写是否改变事实
  4. 04查看可读性与冗长表达

MCP 相关

MCP 服务提供文本检查与比较、风格指南和配置查询、安全修正、文本统计及规则说明工具。另有用于土耳其语改写和精简文本的提示词。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"senrecep-yontu": {
"command": "uvx",
"args": [
"yontu"
]
}
}
}
启动命令uvx yontu

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiyontu0.2.0

工具

3

收录的工具列表 · 更新于 3 天前

参数类型必填说明
turstring否Tür (genre profile) id, for example blog, haber, commit. See list_profiles.
textstring是土耳其语文本(允许 Markdown;跳过代码、URL 和引文)。
detailboolean否返回每个发现字段(偏移量、来源)。
enablearray否按 ID 或标签启用默认关闭的规则。
layersarray否仅限这些层。
filenamestring否仅用于检测 register 的文件名,例如 README.md。
registerstring否Register slug,例如 akademik、blog、teknik、hukuk。省略时自动检测。
min_levelenum否丢弃低于此级别的发现结果。info | warning | error

详细介绍

yontu

yontu

面向 AI Agent 的土耳其语文本润色工具、TDK 检查器和风格指南。它打磨土耳其语文本:塑造形式,精炼表达。

yontu 是一款土耳其语文本润色工具(Türkçe humanizer)和 TDK 拼写与标点检查器,以 Agent 技能、离线命令行工具和 MCP 服务的形式提供。它能标记土耳其语文本中的 AI 和翻译痕迹,依据土耳其语言协会(TDK)规则检查拼写和标点,并根据文本所属体裁调整措辞。它适用于 Claude Code、Codex、Cursor、Gemini CLI 和任何 MCP 客户端。英文文本润色工具对土耳其语作用甚微,因此这里的每条规则都是为土耳其语编写的。

土耳其语 README · 网站

为什么需要

大多数文本润色工具针对英语。它们的规则来自维基百科的“AI 写作迹象”等列表,建立在 “delve” 和 “tapestry” 这类英语词汇之上。把它们用于土耳其语时,几乎检测不出任何问题。有些模式(如 em dash)也适用,但前提是背后有一条土耳其语规则(TDK 只允许在对话中使用破折号)。土耳其语 AI 文本的大多数问题另有表现:

  • 每句话结尾都用 -mAktAdIr,以及长串 -ArAk 结构
  • önemli bir rol oynamaktadır 和 bu bağlamda 这样的仿译表达
  • 替代格后缀的套话:“konusunda”“hususunda”“bir şekilde”
  • 聊天机器人遗留表达:Umarım bu e-posta sizi iyi bulur、Umarım yardımcı olur
  • 细心的土耳其语写作者不会犯的拼写和标点错误:herşey、“ve”前加逗号、Türkçe'de

土耳其语的表达方式也会随语境变化。学术摘要、广告、博客文章、README、提交消息和法院请愿书,各有不同的句长、正式程度、人称代词和连接词。同一条规则修正一处,却可能破坏另一处:摘要中使用 -mAktAdIr 很正常,在博客文章中却是明显痕迹。选词同样重要:hızlı bir şekilde 通常只需写成“hızla”。

yontu 将这些内容整理为带来源的规则、按体裁划分的配置和词表,并为 Agent 提供一套保留原意的工作流。

包含内容

部分内容
技能skills/yontu/:SKILL.md、九个参考文件,以及 references/turler/ 中每种体裁对应的一份指南。无需 Python 即可使用
检查器Python 3.9+,仅使用标准库,无需联网。包含 tdk、ai-iz、stil、yogunluk 几层
配置17 种语域下的 28 种体裁(tür):句长、密度、正式程度、人称代词、语气和时态、连接词、词汇、标点、结构
保真度门禁yontu compare OLD NEW:改写新增数字、日期、名称、URL 或代码片段时失败;删去上述内容或更改否定或情态时发出警告
MCP 服务yontu mcp,stdio,手写 JSON-RPC,无 SDK
钩子根据 Agent 的不同,使用编辑后或停止钩子:Claude Code、Codex、Cursor、Gemini CLI、Copilot、Antigravity。详情见 integrations/

前后对比

来自 skills/yontu/references/ornekler.md(README 体裁):

yontu:面向土耳其语文本的现代而强大的检查器

yontu 是一款现代、强大且易于使用的工具,可分析您的土耳其语文本,检测拼写错误、标点问题和 AI 痕迹。该项目的主要目标是提升您的写作质量!

用法:要执行分析,只需轻松运行以下命令:yontu lint metin.md

yontu: Türkçe metinler için linter

yontu, Türkçe metindeki yazım hatalarını, noktalama sorunlarını ve yapay zekâ izlerini bulan
bir linterdir.

Kullanım: `yontu lint metin.md`

保留了名称、它能发现的三类问题和命令。删除了:形容词三连、感叹号和“kolayca”。标题改为句式大小写。没有添加任何内容。

快速开始

Claude Code(技能、MCP 服务、钩子)
/plugin marketplace add senrecep/yontu
/plugin install yontu@yontu

这是唯一同时会安装钩子的安装方式。命令:/yontu:turkcelestir、/yontu:yontu-lint。

任何能够读取技能文件夹的 Agent
npx skills add senrecep/yontu

这里只会复制技能:不包含 MCP 服务,也不包含钩子。

CLI
pipx install yontu          # puts yontu on PATH
uvx yontu lint metin.md     # no install

在检出目录中,无需安装:python3 skills/yontu/scripts/yontu lint metin.md。

MCP 服务
claude mcp add yontu -- uvx yontu mcp

其他客户端:

{
  "mcpServers": {
    "yontu": { "command": "uvx", "args": ["yontu", "mcp"] }
  }
}
各 Agent 的配置
Agent技能MCP钩子
Claude Code插件插件插件
Codex CLI~/.agents/skillscodex mcp add yontu -- yontu mcphooks.json
Gemini CLI扩展扩展设置文件
Cursor~/.cursor/skillsmcp.jsonhooks.json
claude.ai(网页、移动端)上传 zip 文件,参见文件夹计划在 v0.2 中支持无
OpenCode、Hermes、Windsurf、Copilot、Cline、Zed、Claude Desktop、Antigravity参见文件夹参见文件夹部分支持

配置文件、确切路径,以及各版本的测试情况:integrations/。

安装配置
配置加载内容Claude Code其他 Agent
lite技能;通过 shell 运行检查器/plugin install yontu-lite@yontuscripts/install.sh --<agent> --profile lite --apply
standardlite 加上钩子使用 full--profile standard 还会输出供合并的钩子配置
fullstandard 加上 MCP 服务/plugin install yontu@yontu--profile full 会输出钩子和 MCP 配置

不带 --apply 时,install.sh 只会试运行,且只写入技能文件夹。在 Claude Code 中,只安装两个插件中的一个,不要同时安装。

上下文开销:完整插件在 MCP 工具之外始终约占 150 个 token,lite 约占 130 个 token;重写整篇博客约需 3,900 个 token。数据、方法以及各阶段的加载内容:docs/CONTEXT.md。

工具

MCP 工具功能
lint_text返回包含层、规则 ID、级别、范围和建议的检查结果(detail: true 会返回所有字段)
compare_texts检查两个版本之间的保真度
get_style_guide按 tür ID 获取某种文体的指南,或获取参考文件:先返回章节列表,再返回其中一个章节
fix_text仅应用安全的 tdk 修正
text_stats句子长度、可读性、密度
explain_rule返回规则 ID 对应的说明、来源和示例
list_profiles所有语域和文体
get_profile获取某种文体或语域的阈值

默认情况下,服务会列出前三个工具。在其环境变量中设置 YONTU_MCP_TOOLS=full,即可列出全部八个工具。无论是否设置,它都会响应其余五个工具,但大多数客户端只会向模型显示已列出的工具。

提示词:turkcelestir(翻译或改写为土耳其语)、yogunlastir(精简文本)。

CLI

yontu lint FILE [--register SLUG] [--tur ID] [--layer tdk,ai-iz] [--min-level warning] [--format json]
yontu lint FILE --fix [--write]     # safe tdk fixes only; --write saves the file
yontu compare OLD NEW               # fidelity gate
yontu stats FILE                    # sentence length, Ateşman readability, density
yontu rules [--layer tdk]           # list rules
yontu explain AI-E6                 # one rule with source and examples
yontu profiles [ID]                 # genres and registers

FILE 可以设为 -,表示标准输入。lint 和 compare 在报告 error 时以 1 退出,遇到用法错误时以 2 退出。

如果没有指定 --register 或 --tur,yontu 会根据内容猜测语域,并在无法判断时回退到 notr,此时所有风格规则的级别都是 info。

项目设置写入 .yontu.json(键为 register、tur、enable、rules)。使用 静默某条规则,或使用 和 `` 静默某个范围。

配置

--register 用于选择语域,--tur 用于选择文体。指定文体后,会自动确定对应的语域。

语域文体(--tur)
akademikakademik-ozet、akademik-giris、akademik-tartisma、tez
resmidilekce、resmi-yazi
hukukhukuk(合同、裁决、法规、隐私声明)
haberhaber
denemekose
blogblog、linkedin
teknikteknik-dok、readme、changelog
commitcommit
uiui-buton、ui-hata、ui-bos
pazarlamareklam、e-ticaret
sosyalx、instagram
kurumsalresmi-eposta、basin-bulteni
is-epostais-eposta
sozlusunum
edebiedebi
sohbetsohbet
notr无:所有风格规则的级别均为 info

hukuk 和 edebi 仅启用 tdk 层和保真度检查。除非用户提出要求,否则该技能不会改写它们。

规则层

层检查内容级别
tdkTDK Yazım Kılavuzu 和 Güncel Türkçe Sözlük 中的拼写与标点error、warning、info。唯一支持自动修复的层
ai-izAI 和翻译模式warning 或 info,不会修复
stil是否符合文体配置主要为 info
yogunluk冗长措辞、轻动词、包装表达始终为 info

每条 tdk 规则都会注明其来源,即 TDK Yazım Kılavuzu 中的章节或 Güncel Türkçe Sözlük 中的词条。相关链接位于 skills/yontu/references/kaynaklar.md。自动修复仅针对确定性高且误报率接近于零的规则(herşey → “her şey”、Türkçe'de → “Türkçede”)。词典中的重定向绝不会自动修复。

每条 ai-iz 规则都带有证据标签:veri(基于语料测量)、hakem(经审阅者达成一致)或 hipotez(观察所得,未经测量)。hipotez 规则的级别不会高于 info,hakem 规则的级别不会高于 warning。v0.1 规则集目前还没有 veri 规则;请参阅 ROADMAP.md。

运行 yontu rules 查看完整列表,运行 yontu explain ID 查看任意规则的说明。

局限性

  • 不是 AI 检测器。yontu 报告的是模式。发现一项模式并不意味着文本由机器撰写,而报告中没有发现也不意味着文本不是机器撰写的。通过检测器不是目标。
  • 启发式规则。ai-iz、stil 和 yogunluk 规则使用正则表达式,并基于表层形式进行计数,不进行形态分析。可能会出现误报,主要为 info 级别。
  • 阈值尚未校准。句子区间和密度阈值来自文献和审阅,而非人类基线语料。在完成校准之前,级别保持为 info 或 warning。
  • 没有词典。检查器能捕获已知的拼写错误,但无法捕获所有拼写错误。

贡献

请参阅 CONTRIBUTING.md。新增规则需要提供来源、证据标签和测试样例。各种文体中由人类撰写的优质土耳其语示例最有帮助:校准工作正需要这些示例。

致谢

  • Türk Dil Kurumu:Yazım Kuralları 和 Güncel Türkçe Sözlük。
  • Oguzhan Durmaz 开发的 turkish-humanify(MIT)以及 bushrabeg 开发的 turkce-humanizer(MIT);其理念经过改写,并依据 TDK 进行了核查。
  • Wikipedia 的“Signs of AI writing”,用于模式目录的结构设计。
  • 完整来源列表:skills/yontu/references/kaynaklar.md。

许可证

MIT。请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。