che-cn2tw-mcp
Swift原生MCP服务器,用于将中国大陆术语转换为台湾普通话等效词。
通过g0v(教育部数据)和维基百科的词典,检测并用台湾标准短语替换大陆汉语词汇。
构建
需要Swift 5.9+和macOS 13+。
git clone https://github.com/kiki830621/che-cn2tw-mcp.git
cd che-cn2tw-mcp
swift build -c release二进制位置: .build/release/CheCn2TwMCP
安装
选项A:Claude代码命令行界面
claude mcp add che-cn2tw-mcp -s user -- /path/to/.build/release/CheCn2TwMCP验证:
claude mcp get che-cn2tw-mcp
# Should show: Status: ✓ Connected选项B:直接编辑配置
增添 ~/.claude.json:
{
"mcpServers": {
"che-cn2tw-mcp": {
"type": "stdio",
"command": "/path/to/.build/release/CheCn2TwMCP"
}
}
}选项C:克劳德桌面
增添 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"che-cn2tw-mcp": {
"command": "/path/to/.build/release/CheCn2TwMCP"
}
}
}首次运行
连接后,运行 update_dictionary 下载学期数据:
update_dictionary # Download from all sources
update_dictionary source=g0v # g0v only
update_dictionary source=wikipedia # Wikipedia only字典文件存储在 ~/.che-cn2tw-mcp/.
工具(8)
文本转换
| 工具 | 说明 |
|---|---|
convert_text | 检测并替换文本中的大陆术语,返回转换后的文本+更改列表 |
lookup_term | 查找单个术语(支持两个CN→TW和TW→CN) |
search_terms | 模糊搜索词典 |
字典管理
| 工具 | 说明 |
|---|---|
update_dictionary | 从在线资源(g0v,维基百科)下载/刷新词典 |
add_term | 添加自定义CN→TW映射(保存到 ~/.che-cn2tw-mcp/custom.json) |
remove_term | 删除自定义映射 |
信息
| 工具 | 说明 |
|---|---|
list_categories | 列出所有有计数的术语类别 |
get_stats | 显示词典统计信息(条目计数、来源、上次更新) |
数据源
| 来源 | 格式 | 比例 |
|---|---|---|
g0v/moedict数据csld(=同實異名.json) | JSON | ~750对 |
| g0v/moedict数据csld(csv) | csv | ~1000对 |
| Wikipedia(两岸四地用语差异,海峡两岸术语差异) | Wikitext | Community-maintained |
用户自定义(~/.che-cn2tw-mcp/custom.json) | JSON | 无限制 |
使用示例
一旦连接,问克劳德这样的问题:
- "幫我把這段文字轉成台灣用語:这个视频的质量很高"
- “查一下「软件」的台湾说法”
- “搜寻跟「网络」有关的对照词汇”
- “新增自定义对照:信息→信息”
- “更新词库”
- “显示词库统计”
建筑
Sources/
├── CheCn2TwMCP/
│ └── main.swift # Entry point
└── CheCn2TwMCPCore/
├── Server.swift # MCP Server (8 tools + dispatch)
├── TermDictionary.swift # Dictionary load/save/search/convert
└── DictionaryUpdater.swift # Online fetcher (g0v + Wikipedia)- 无第三方依赖关系 超越MCP Swift SDK
- 用途
URLSession对于所有HTTP请求 - 最长匹配优先算法防止子字符串误报
- 自定义术语覆盖内置词典条目
运作原理
这 convert_text 工具使用 最长比赛第一 算法:
- 按长度(降序)对所有CN术语进行排序
- 扫描输入文本,先匹配最长的单词
- 跟踪更换位置,避免重复更换
- 返回转换后的文本+包含位置的更改列表
Input: "這個視頻的質量很高"
Output: "這個影片的品質很高"
Changes: [
{ "視頻" → "影片", position: 3 },
{ "質量" → "品質", position: 6 }
]许可证
麻省理工学院
