Skip to main content

chengyu-coach-mcp

成语学习 MCP 服务器(Python,mcp SDK v2 的 MCPServer,stdio 传输)。内置 3303 条常用成语,学习进度存在本地 SQLite,让任意 MCP 客户端(Qoder / Claude Desktop / Cursor 等)帮你每天抽几个成语学,并根据聊天表现自动记录掌握程度。

  • 抽词:优先抽没抽过的;一轮抽完后按"抽得最少 + 最久没抽"轮转;默认跳过最近 20 条和已掌握的
  • 查询:每个成语抽中了几次、当前状态、备注
  • 记录:掌握状态 + 每词自由备注,由 AI 根据对话自行判断写入
  • 不内置测验卷:考不考、怎么考由客户端 AI 决定,服务端只负责抽词和记录

掌握状态:learning(还不熟)→ reviewing(基本会但不稳)→ mastered(能熟练解释和造句)。

安装

pip install chengyu-coach-mcp        # 发布到 PyPI 后
# 或使用 uv
uvx chengyu-coach-mcp

从源码安装:

git clone <repo-url> chengyu-coach-mcp
cd chengyu-coach-mcp
python -m venv .venv
.venv/Scripts/pip install -e .        # Windows;macOS/Linux 用 .venv/bin/pip

接入 MCP 客户端

已安装到环境后,在客户端配置里加:

{
  "mcpServers": {
    "chengyu-coach": {
      "command": "uvx",
      "args": ["chengyu-coach-mcp"]
    }
  }
}

从源码运行时(pip install -e . 之后),用解释器直接启动模块:

{
  "mcpServers": {
    "chengyu-coach": {
      "command": "<项目路径>/.venv/Scripts/python.exe",
      "args": ["-m", "chengyu_coach_mcp.server"]
    }
  }
}

调试可用官方 MCP Inspector:

npx @modelcontextprotocol/inspector uvx chengyu-coach-mcp

提供的能力

类型 名称 说明
Tool draw_idiom 随机抽成语(未抽过优先,可配数量/是否含已掌握)
Tool idiom_detail 查词:释义、出处、古例 + 学习进度 + 备注
Tool search_idiom 按关键词/拼音/拼音缩写搜词库
Tool update_status AI 根据对话表现更新掌握状态(learning/reviewing/mastered)
Tool add_note 写/清备注
Tool progress 总进度:各状态数量、有备注数、最近抽取
Tool reset_word 清空某词学习记录(destructive)
Resource chengyu://{word} 读取词库词条(JSON)
Resource chengyu://stats 学习进度统计(JSON)
Prompt learn_idiom 教学提示词(讲解 + 双场景造句)
Prompt quiz_me 口头考问流程提示词(抽词→作答→讲评→记录状态)

造句和出题都不需要服务端:抽题/查词结果已带释义、出处、古文例句,客户端大模型据此讲解、造句、提问,并把判断结果写回 update_status / add_note。

数据与隐私

  • 学习记录默认写入 ~/.chengyu-coach/idiom_progress.db,可用环境变量 CHENGYU_COACH_DB 指定其他路径
  • 数据只存在本机,不联网、不上传
  • 词库随包分发,只读;替换 src/chengyu_coach_mcp/data/chengyu_common.json 即可换词库(数组,每条需含 word/pinyin/explanation/derivation/example/id)

user_word 表结构:

字段 说明
word 成语原文(主键)
draw_count 抽中次数
status learning / reviewing / mastered(由 AI 判断写入)
note 自由备注
first_drawn / last_drawn 首次/最近抽取时间

开发

python -m venv .venv
.venv/Scripts/pip install -e .
.venv/Scripts/python tests/smoke_test.py    # 端到端冒烟测试(自动使用临时数据库)

项目结构:

chengyu-coach-mcp/
├── src/chengyu_coach_mcp/
│   ├── __init__.py          # 版本号
│   ├── server.py            # 词库加载 + SQLite + 全部工具/资源/提示词
│   └── data/chengyu_common.json   # 常用成语词库(3303 条)
├── tests/smoke_test.py      # stdio 端到端测试
├── .github/workflows/ci.yml # Linux/Windows × Python 3.10/3.12
├── .github/workflows/release.yml  # 推 v* 标签自动发布到 PyPI(OIDC)
├── server.json              # 官方 MCP Registry 元数据
├── pyproject.toml
├── LICENSE                  # MIT(代码)
├── THIRD_PARTY_NOTICES.md   # 词库来源与许可
└── CHANGELOG.md

发布新版本时同步改三处:pyproject.toml 的 version、src/chengyu_coach_mcp/__init__.py 的 __version__、CHANGELOG.md;server.json 里的 version 与 packages[0].version 也要跟上。改完打标签并推送,release.yml 会校验四处版本号一致后自动构建上传:

git tag -a v1.0.1 -m "chengyu-coach-mcp v1.0.1"
git push origin main --tags

README 顶部那行 <!-- mcp-name: io.github.FlowerOfFire/chengyu-coach-mcp --> 是给官方 MCP Registry 验证包所有权用的,发布到 PyPI 的版本里必须带着它,删掉会导致 mcp-publisher publish 失败。

数据来源与许可

详见 THIRD_PARTY_NOTICES.md。

Metadata

Release files for chengyu-coach-mcp 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for chengyu-coach-mcp 1.0.0
File Size Uploaded Provenance
chengyu_coach_mcp-1.0.0.tar.gz 578.9 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for chengyu-coach-mcp 1.0.0
File Interpreter ABI Platform
chengyu_coach_mcp-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.2 MB

Release files / chengyu_coach_mcp-1.0.0.tar.gz

Download URL chengyu_coach_mcp-1.0.0.tar.gz
Size 578.9 kB
Tags Source
SHA-256 checksum
How to use checksums
663854c2df087752bc82425d3defea5fbc0872a26b23773ff88b55c3718dbbf5
BLAKE2b-256 checksum
How to use checksums
d847f14e8649b4b767c95cb012a6e799dd5caa93104abe2d4251c689dbc0fa7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

Release files / chengyu_coach_mcp-1.0.0-py3-none-any.whl

Download URL chengyu_coach_mcp-1.0.0-py3-none-any.whl
Size 583.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7d0aacd8dee809fb8debb42196b997e4ea0c232b93526e20496151580becdf19
BLAKE2b-256 checksum
How to use checksums
6e69f2afaf33fa0d6c5e4b7d628aef84cf23da916cd3c544542506e95aa22faf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

Security for chengyu-coach-mcp 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for chengyu_coach_mcp-1.0.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page