FlashCardMCP

FlashCardMCP

Converts JSON/CSV Markdown content into interactive flashcard pages with multiple templates, PDF export, and voice support for language learning.

Category
访问服务器

README

FlashCardMCP / 闪卡生成MCP服务

Version: 10.1


项目介绍

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

  • 专注内容:使用Markdown格式,符合LLM的输出,让用户专注于内容的输出,而不是格式等其他无关紧要的内容;
  • 稳定输出:采用函数稳定生成闪卡,支持CSS格式Style输入,满足个性化需求;
  • 场景化模板: 预制模板用于预设的不同场景,后续会进一步拓展;
  • PDF输出:闪卡可打印成PDF(8连卡),进一步满足不同场景下,以及现实多种场景下的使用和记忆。

功能特性

  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
    • URIresource://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 协议。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选