Skip to main content
Glama

FlashCardMCP / 闪卡生成MCP服务

Version: 10.1


项目介绍

FlashCardMCP 是一个基于 FastMCP 的 MCP 服务,用于将 JSON/CSV 格式的 Markdown 内容转换为交互式闪卡页面。这个服务适用于学习、教学和知识管理以及任何你想要的场景,可以帮助用户创建自己的数字闪卡集。

  • 专注内容:使用Markdown格式,符合LLM的输出,让用户专注于内容的输出,而不是格式等其他无关紧要的内容;

  • 稳定输出:采用函数稳定生成闪卡,支持CSS格式Style输入,满足个性化需求;

  • 场景化模板: 预制模板用于预设的不同场景,后续会进一步拓展;

  • PDF输出:闪卡可打印成PDF(8连卡),进一步满足不同场景下,以及现实多种场景下的使用和记忆。

Related MCP server: Little Red Book Card MCP

功能特性

  1. Markdown 支持: 闪卡内容支持完整的 Markdown 语法,包括标题、列表、代码块、表格等

  2. 交互式闪卡: 点击卡片可以翻转查看背面内容

  3. 多种模板: 提供 Default、Minimal、Listen 三种不同的闪卡模板

  4. 语音功能: Listen 模板支持语音播放和听写模式(考虑到兼容性,目前仅是Web Speech API,效果一般)

  5. 响应式设计: 适配不同屏幕尺寸

  6. 打印支持: 支持导出 PDF 和打印功能

  7. 数据验证: 内置数据格式验证功能

  8. CSV 转换: 支持从 CSV 数据快速创建闪卡

FastMCP 配置

本项目使用 FastMCP 框架构建 MCP 服务,提供以下功能:

  • Resources(资源): 通过 GET 端点暴露只读数据

  • Tools(工具): 通过 POST 端点提供可执行功能

  • 多种返回类型: 支持文本、JSON、图像、音频等格式

可用的MCP工具和资源

服务器通过MCP协议暴露以下工具和资源:

资源

  1. flashcard-templates

    • URI:resource://flashcard-templates

    • 描述:获取所有可用闪卡模板的信息和配置

    • 返回格式:JSON格式的模板配置信息

工具

  1. create_flashcards_from_json

    • 描述:从JSON数据创建交互式HTML闪卡

    • 参数:

      • cards:闪卡数据列表,包含'front'、'back'和可选的'tags'

      • title:闪卡集标题

      • description:闪卡集描述

      • template:模板类型('minimal'、'default'、'listen')

      • theme:主题('light'、'dark'、'basic'、'advance'、'detail')

    • 返回:生成的HTML内容字符串

  2. generate_flashcards_pdf

    • 描述:从JSON数据生成PDF格式闪卡

    • 参数:

      • cards:闪卡数据列表,包含'front'、'back'和可选的'tags'

      • title:闪卡集标题

      • description:闪卡集描述

      • layout:布局类型('single'或'a4_8')

      • output_path:保存PDF文件的目录路径

    • 返回:成功消息,包含文件路径和大小信息

  3. convert_csv_to_json

    • 描述:将CSV内容转换为闪卡JSON格式

    • 参数:

      • csv_content:原始CSV内容字符串

      • front_columns:卡片正面的列索引(如"0,1")

      • back_columns:卡片背面的列索引(如"2,3")

      • tags_column:标签列索引(可选)

      • has_header:CSV是否有标题行

      • title:闪卡集标题

      • description:闪卡集描述

      • column_separator:多列内容分隔符

      • template:样式模板类型

      • theme:样式主题

    • 返回:完整闪卡数据的JSON字符串

  4. validate_flashcard_data

    • 描述:验证闪卡JSON数据结构

    • 参数:

      • flashcard_json:JSON格式的闪卡数据

    • 返回:验证结果消息

闪卡模板

1. Default 模板

  • 流式网格布局,每行显示2张卡片

  • 适合桌面浏览和批量查看闪卡

2. Minimal 模板

  • 单卡片居中显示

  • 适合专注学习和逐张复习

3. Listen 模板

  • 单卡片 + 底部控制面板

  • 支持语音播放和听写模式

  • 适合语言学习和语音复习

输出效果展示

项目在 sample/ 目录中提供了多种输出效果的示例:

HTML 闪卡示例

  • card_template_sample.html: Default 模板的完整示例,展示流式网格布局和翻转动画效果

  • minimal_template_sample.html: Minimal 模板示例,单卡片居中显示,适合专注学习

  • listen_template_sample.html: Listen 模板示例,支持语音播放和听写模式

PDF 输出示例

sample/pdf_generate/ 目录包含多种场景的PDF闪卡示例:

  • 康奈尔笔记法闪卡_8卡片布局.pdf: 学习方法类闪卡

  • 基础测试_8卡片布局.pdf: 基础知识测试闪卡

  • Markdown测试_8卡片布局.pdf: Markdown语法支持演示

  • 词语表闪卡练习_8卡片布局.pdf: 词汇学习闪卡

  • 日文注音测试_8卡片布局.pdf: 多语言支持示例

所有PDF采用A4纸8卡片布局,适合打印和实体使用。

Demo 页面

注意: Demo 页面功能正在开发中,将在后续版本中提供在线演示。

快速开始

安装依赖

使用 UV 安装项目依赖:

uv sync

或者使用标准的 pip 命令:

pip install -e .

运行 MCP 服务

MCP 服务器默认使用 STDIO 传输协议,与 Claude Desktop 等 MCP 客户端兼容:

python server.py

版本记录

Version 10.1 (当前版本)

  • 更新了所有README文件中的版本信息

  • 修正了MCP工具和资源的描述,确保与实际功能一致

  • 更新了MCP客户端配置,使用正确的uv run命令

  • 完善了文档结构和内容

未来版本计划

  • 增加更多闪卡模板

  • 优化语音功能

  • 添加在线Demo页面

  • 支持更多导出格式

许可证

本项目采用 GPL 协议。

Available Tools

4 tools
convert_csv_to_jsonA

Convert CSV content to flashcard JSON format.

Args: csv_content: Raw CSV content as string front_columns: Comma-separated column indices for card front (e.g., "0,1") back_columns: Comma-separated column indices for card back (e.g., "2,3") tags_column: Column index for tags (optional) has_header: Whether CSV has header row title: Title for the flashcard set description: Description of the flashcard set column_separator: Separator for multi-column content template: Template type for styling theme: Theme for styling

Returns: JSON string of complete flashcard data

Inputs: csv_content (required), theme, title, template, +6 more. Returns: result

create_flashcards_from_jsonA

Create interactive HTML flashcards from JSON card data.

Args: cards: List of flashcard data with 'front', 'back', and optional 'tags' title: Title for the flashcard set description: Description of the flashcard set template: Template type ('minimal', 'default', 'elegant') theme: Theme ('light' or 'dark')

Returns: HTML content as string

Inputs: cards (required), theme, title, template, +1 more. Returns: result

generate_flashcards_pdfA

Generate PDF flashcards from JSON card data.

Args: cards: List of flashcard data with 'front', 'back', and optional 'tags' title: Title for the flashcard set description: Description of the flashcard set layout: Layout type ('single' or 'a4_8') output_path: Directory path to save the PDF file show_deck_name: Whether to show the title on the PDF show_card_index: Whether to show the card index on the PDF

Returns: Success message with file path and size information

Inputs: cards (required), title, layout, description, +3 more. Returns: result

validate_flashcard_dataC

Validate flashcard JSON data structure.

Args: flashcard_json: Flashcard data in JSON format

Returns: Validation result message

Inputs: flashcard_json (required). Returns: result

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: creating HTML flashcards, generating PDFs, converting CSV to JSON, and validating data. No two tools overlap in function.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case (create_flashcards_from_json, generate_flashcards_pdf, convert_csv_to_json, validate_flashcard_data). The verbs vary but are all descriptive and the pattern is uniform.

    Tool Count5/5

    Four tools form a well-scoped set for a flashcard generation server. Each tool serves a necessary step in the workflow without redundancy.

    Completeness5/5

    The toolset covers the full pipeline: importing data (convert_csv_to_json), validating it (validate_flashcard_data), and producing outputs (HTML and PDF). No obvious gaps such as missing export options or data handling steps.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers