flashcard-mcp


Nameflashcard-mcp JSON
Version 10.1.0 PyPI version JSON
download
home_pageNone
SummaryFlashCardMCP Server - Interactive PDF Flashcard Generator with FastMCP
upload_time2025-10-28 05:33:31
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords education fastmcp flashcard game learning mcp pdf
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # FlashCardMCP / 闪卡生成MCP服务

**Version: 10.1**

- [English](README_en.md)
- [中文](README_zh.md)

---

## 项目介绍

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**
   - **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 安装项目依赖:

```bash
uv sync
```

或者使用标准的 pip 命令:

```bash
pip install -e .
```

#### 运行 MCP 服务

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

```bash
python server.py
```

## 版本记录

### Version 10.1 (当前版本)
- 更新了所有README文件中的版本信息
- 修正了MCP工具和资源的描述,确保与实际功能一致
- 更新了MCP客户端配置,使用正确的`uv run`命令
- 完善了文档结构和内容

### 未来版本计划
- 增加更多闪卡模板
- 优化语音功能
- 添加在线Demo页面
- 支持更多导出格式

## 许可证

本项目采用 GPL 协议。
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "flashcard-mcp",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "education, fastmcp, flashcard, game, learning, mcp, pdf",
    "author": null,
    "author_email": "Moonzhang <wuyuezhang1984@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/78/06/7fb257c32345c52e3aac3029ea63884bfd136eb7fd427ce3d64a327b6c0a/flashcard_mcp-10.1.0.tar.gz",
    "platform": null,
    "description": "# FlashCardMCP / \u95ea\u5361\u751f\u6210MCP\u670d\u52a1\n\n**Version: 10.1**\n\n- [English](README_en.md)\n- [\u4e2d\u6587](README_zh.md)\n\n---\n\n## \u9879\u76ee\u4ecb\u7ecd\n\nFlashCardMCP \u662f\u4e00\u4e2a\u57fa\u4e8e FastMCP \u7684 MCP \u670d\u52a1\uff0c\u7528\u4e8e\u5c06 JSON/CSV \u683c\u5f0f\u7684 Markdown \u5185\u5bb9\u8f6c\u6362\u4e3a\u4ea4\u4e92\u5f0f\u95ea\u5361\u9875\u9762\u3002\u8fd9\u4e2a\u670d\u52a1\u9002\u7528\u4e8e\u5b66\u4e60\u3001\u6559\u5b66\u548c\u77e5\u8bc6\u7ba1\u7406\u4ee5\u53ca\u4efb\u4f55\u4f60\u60f3\u8981\u7684\u573a\u666f\uff0c\u53ef\u4ee5\u5e2e\u52a9\u7528\u6237\u521b\u5efa\u81ea\u5df1\u7684\u6570\u5b57\u95ea\u5361\u96c6\u3002\n- **\u4e13\u6ce8\u5185\u5bb9**\uff1a\u4f7f\u7528Markdown\u683c\u5f0f\uff0c\u7b26\u5408LLM\u7684\u8f93\u51fa\uff0c\u8ba9\u7528\u6237\u4e13\u6ce8\u4e8e\u5185\u5bb9\u7684\u8f93\u51fa\uff0c\u800c\u4e0d\u662f\u683c\u5f0f\u7b49\u5176\u4ed6\u65e0\u5173\u7d27\u8981\u7684\u5185\u5bb9\uff1b\n- **\u7a33\u5b9a\u8f93\u51fa**\uff1a\u91c7\u7528\u51fd\u6570\u7a33\u5b9a\u751f\u6210\u95ea\u5361\uff0c\u652f\u6301CSS\u683c\u5f0fStyle\u8f93\u5165\uff0c\u6ee1\u8db3\u4e2a\u6027\u5316\u9700\u6c42\uff1b\n- **\u573a\u666f\u5316\u6a21\u677f**\uff1a \u9884\u5236\u6a21\u677f\u7528\u4e8e\u9884\u8bbe\u7684\u4e0d\u540c\u573a\u666f\uff0c\u540e\u7eed\u4f1a\u8fdb\u4e00\u6b65\u62d3\u5c55\uff1b\n- **PDF\u8f93\u51fa**\uff1a\u95ea\u5361\u53ef\u6253\u5370\u6210PDF\uff088\u8fde\u5361\uff09\uff0c\u8fdb\u4e00\u6b65\u6ee1\u8db3\u4e0d\u540c\u573a\u666f\u4e0b\uff0c\u4ee5\u53ca\u73b0\u5b9e\u591a\u79cd\u573a\u666f\u4e0b\u7684\u4f7f\u7528\u548c\u8bb0\u5fc6\u3002\n\n## \u529f\u80fd\u7279\u6027\n\n1. **Markdown \u652f\u6301**: \u95ea\u5361\u5185\u5bb9\u652f\u6301\u5b8c\u6574\u7684 Markdown \u8bed\u6cd5\uff0c\u5305\u62ec\u6807\u9898\u3001\u5217\u8868\u3001\u4ee3\u7801\u5757\u3001\u8868\u683c\u7b49\n2. **\u4ea4\u4e92\u5f0f\u95ea\u5361**: \u70b9\u51fb\u5361\u7247\u53ef\u4ee5\u7ffb\u8f6c\u67e5\u770b\u80cc\u9762\u5185\u5bb9\n3. **\u591a\u79cd\u6a21\u677f**: \u63d0\u4f9b Default\u3001Minimal\u3001Listen \u4e09\u79cd\u4e0d\u540c\u7684\u95ea\u5361\u6a21\u677f\n4. **\u8bed\u97f3\u529f\u80fd**: Listen \u6a21\u677f\u652f\u6301\u8bed\u97f3\u64ad\u653e\u548c\u542c\u5199\u6a21\u5f0f\uff08\u8003\u8651\u5230\u517c\u5bb9\u6027\uff0c\u76ee\u524d\u4ec5\u662fWeb Speech API\uff0c\u6548\u679c\u4e00\u822c\uff09\n5. **\u54cd\u5e94\u5f0f\u8bbe\u8ba1**: \u9002\u914d\u4e0d\u540c\u5c4f\u5e55\u5c3a\u5bf8\n6. **\u6253\u5370\u652f\u6301**: \u652f\u6301\u5bfc\u51fa PDF \u548c\u6253\u5370\u529f\u80fd\n7. **\u6570\u636e\u9a8c\u8bc1**: \u5185\u7f6e\u6570\u636e\u683c\u5f0f\u9a8c\u8bc1\u529f\u80fd\n8. **CSV \u8f6c\u6362**: \u652f\u6301\u4ece CSV \u6570\u636e\u5feb\u901f\u521b\u5efa\u95ea\u5361\n\n## FastMCP \u914d\u7f6e\n\n\u672c\u9879\u76ee\u4f7f\u7528 FastMCP \u6846\u67b6\u6784\u5efa MCP \u670d\u52a1\uff0c\u63d0\u4f9b\u4ee5\u4e0b\u529f\u80fd\uff1a\n\n- **Resources\uff08\u8d44\u6e90\uff09**: \u901a\u8fc7 GET \u7aef\u70b9\u66b4\u9732\u53ea\u8bfb\u6570\u636e\n- **Tools\uff08\u5de5\u5177\uff09**: \u901a\u8fc7 POST \u7aef\u70b9\u63d0\u4f9b\u53ef\u6267\u884c\u529f\u80fd\n- **\u591a\u79cd\u8fd4\u56de\u7c7b\u578b**: \u652f\u6301\u6587\u672c\u3001JSON\u3001\u56fe\u50cf\u3001\u97f3\u9891\u7b49\u683c\u5f0f\n\n### \u53ef\u7528\u7684MCP\u5de5\u5177\u548c\u8d44\u6e90\n\n\u670d\u52a1\u5668\u901a\u8fc7MCP\u534f\u8bae\u66b4\u9732\u4ee5\u4e0b\u5de5\u5177\u548c\u8d44\u6e90\uff1a\n\n#### \u8d44\u6e90\n\n1. **flashcard-templates**\n   - **URI**\uff1a`resource://flashcard-templates`\n   - **\u63cf\u8ff0**\uff1a\u83b7\u53d6\u6240\u6709\u53ef\u7528\u95ea\u5361\u6a21\u677f\u7684\u4fe1\u606f\u548c\u914d\u7f6e\n   - **\u8fd4\u56de\u683c\u5f0f**\uff1aJSON\u683c\u5f0f\u7684\u6a21\u677f\u914d\u7f6e\u4fe1\u606f\n\n#### \u5de5\u5177\n\n1. **create_flashcards_from_json**\n   - **\u63cf\u8ff0**\uff1a\u4eceJSON\u6570\u636e\u521b\u5efa\u4ea4\u4e92\u5f0fHTML\u95ea\u5361\n   - **\u53c2\u6570**\uff1a\n     - `cards`\uff1a\u95ea\u5361\u6570\u636e\u5217\u8868\uff0c\u5305\u542b'front'\u3001'back'\u548c\u53ef\u9009\u7684'tags'\n     - `title`\uff1a\u95ea\u5361\u96c6\u6807\u9898\n     - `description`\uff1a\u95ea\u5361\u96c6\u63cf\u8ff0\n     - `template`\uff1a\u6a21\u677f\u7c7b\u578b\uff08'minimal'\u3001'default'\u3001'listen'\uff09\n     - `theme`\uff1a\u4e3b\u9898\uff08'light'\u3001'dark'\u3001'basic'\u3001'advance'\u3001'detail'\uff09\n   - **\u8fd4\u56de**\uff1a\u751f\u6210\u7684HTML\u5185\u5bb9\u5b57\u7b26\u4e32\n\n2. **generate_flashcards_pdf**\n   - **\u63cf\u8ff0**\uff1a\u4eceJSON\u6570\u636e\u751f\u6210PDF\u683c\u5f0f\u95ea\u5361\n   - **\u53c2\u6570**\uff1a\n     - `cards`\uff1a\u95ea\u5361\u6570\u636e\u5217\u8868\uff0c\u5305\u542b'front'\u3001'back'\u548c\u53ef\u9009\u7684'tags'\n     - `title`\uff1a\u95ea\u5361\u96c6\u6807\u9898\n     - `description`\uff1a\u95ea\u5361\u96c6\u63cf\u8ff0\n     - `layout`\uff1a\u5e03\u5c40\u7c7b\u578b\uff08'single'\u6216'a4_8'\uff09\n     - `output_path`\uff1a\u4fdd\u5b58PDF\u6587\u4ef6\u7684\u76ee\u5f55\u8def\u5f84\n   - **\u8fd4\u56de**\uff1a\u6210\u529f\u6d88\u606f\uff0c\u5305\u542b\u6587\u4ef6\u8def\u5f84\u548c\u5927\u5c0f\u4fe1\u606f\n\n3. **convert_csv_to_json**\n   - **\u63cf\u8ff0**\uff1a\u5c06CSV\u5185\u5bb9\u8f6c\u6362\u4e3a\u95ea\u5361JSON\u683c\u5f0f\n   - **\u53c2\u6570**\uff1a\n     - `csv_content`\uff1a\u539f\u59cbCSV\u5185\u5bb9\u5b57\u7b26\u4e32\n     - `front_columns`\uff1a\u5361\u7247\u6b63\u9762\u7684\u5217\u7d22\u5f15\uff08\u5982\"0,1\"\uff09\n     - `back_columns`\uff1a\u5361\u7247\u80cc\u9762\u7684\u5217\u7d22\u5f15\uff08\u5982\"2,3\"\uff09\n     - `tags_column`\uff1a\u6807\u7b7e\u5217\u7d22\u5f15\uff08\u53ef\u9009\uff09\n     - `has_header`\uff1aCSV\u662f\u5426\u6709\u6807\u9898\u884c\n     - `title`\uff1a\u95ea\u5361\u96c6\u6807\u9898\n     - `description`\uff1a\u95ea\u5361\u96c6\u63cf\u8ff0\n     - `column_separator`\uff1a\u591a\u5217\u5185\u5bb9\u5206\u9694\u7b26\n     - `template`\uff1a\u6837\u5f0f\u6a21\u677f\u7c7b\u578b\n     - `theme`\uff1a\u6837\u5f0f\u4e3b\u9898\n   - **\u8fd4\u56de**\uff1a\u5b8c\u6574\u95ea\u5361\u6570\u636e\u7684JSON\u5b57\u7b26\u4e32\n\n4. **validate_flashcard_data**\n   - **\u63cf\u8ff0**\uff1a\u9a8c\u8bc1\u95ea\u5361JSON\u6570\u636e\u7ed3\u6784\n   - **\u53c2\u6570**\uff1a\n     - `flashcard_json`\uff1aJSON\u683c\u5f0f\u7684\u95ea\u5361\u6570\u636e\n   - **\u8fd4\u56de**\uff1a\u9a8c\u8bc1\u7ed3\u679c\u6d88\u606f\n\n## \u95ea\u5361\u6a21\u677f\n\n### 1. Default \u6a21\u677f\n- \u6d41\u5f0f\u7f51\u683c\u5e03\u5c40\uff0c\u6bcf\u884c\u663e\u793a2\u5f20\u5361\u7247\n- \u9002\u5408\u684c\u9762\u6d4f\u89c8\u548c\u6279\u91cf\u67e5\u770b\u95ea\u5361\n\n### 2. Minimal \u6a21\u677f\n- \u5355\u5361\u7247\u5c45\u4e2d\u663e\u793a\n- \u9002\u5408\u4e13\u6ce8\u5b66\u4e60\u548c\u9010\u5f20\u590d\u4e60\n\n### 3. Listen \u6a21\u677f\n- \u5355\u5361\u7247 + \u5e95\u90e8\u63a7\u5236\u9762\u677f\n- \u652f\u6301\u8bed\u97f3\u64ad\u653e\u548c\u542c\u5199\u6a21\u5f0f\n- \u9002\u5408\u8bed\u8a00\u5b66\u4e60\u548c\u8bed\u97f3\u590d\u4e60\n\n## \u8f93\u51fa\u6548\u679c\u5c55\u793a\n\n\u9879\u76ee\u5728 `sample/` \u76ee\u5f55\u4e2d\u63d0\u4f9b\u4e86\u591a\u79cd\u8f93\u51fa\u6548\u679c\u7684\u793a\u4f8b\uff1a\n\n### HTML \u95ea\u5361\u793a\u4f8b\n- **card_template_sample.html**: Default \u6a21\u677f\u7684\u5b8c\u6574\u793a\u4f8b\uff0c\u5c55\u793a\u6d41\u5f0f\u7f51\u683c\u5e03\u5c40\u548c\u7ffb\u8f6c\u52a8\u753b\u6548\u679c\n- **minimal_template_sample.html**: Minimal \u6a21\u677f\u793a\u4f8b\uff0c\u5355\u5361\u7247\u5c45\u4e2d\u663e\u793a\uff0c\u9002\u5408\u4e13\u6ce8\u5b66\u4e60\n- **listen_template_sample.html**: Listen \u6a21\u677f\u793a\u4f8b\uff0c\u652f\u6301\u8bed\u97f3\u64ad\u653e\u548c\u542c\u5199\u6a21\u5f0f\n\n### PDF \u8f93\u51fa\u793a\u4f8b\n`sample/pdf_generate/` \u76ee\u5f55\u5305\u542b\u591a\u79cd\u573a\u666f\u7684PDF\u95ea\u5361\u793a\u4f8b\uff1a\n- **\u5eb7\u5948\u5c14\u7b14\u8bb0\u6cd5\u95ea\u5361_8\u5361\u7247\u5e03\u5c40.pdf**: \u5b66\u4e60\u65b9\u6cd5\u7c7b\u95ea\u5361\n- **\u57fa\u7840\u6d4b\u8bd5_8\u5361\u7247\u5e03\u5c40.pdf**: \u57fa\u7840\u77e5\u8bc6\u6d4b\u8bd5\u95ea\u5361\n- **Markdown\u6d4b\u8bd5_8\u5361\u7247\u5e03\u5c40.pdf**: Markdown\u8bed\u6cd5\u652f\u6301\u6f14\u793a\n- **\u8bcd\u8bed\u8868\u95ea\u5361\u7ec3\u4e60_8\u5361\u7247\u5e03\u5c40.pdf**: \u8bcd\u6c47\u5b66\u4e60\u95ea\u5361\n- **\u65e5\u6587\u6ce8\u97f3\u6d4b\u8bd5_8\u5361\u7247\u5e03\u5c40.pdf**: \u591a\u8bed\u8a00\u652f\u6301\u793a\u4f8b\n\n\u6240\u6709PDF\u91c7\u7528A4\u7eb88\u5361\u7247\u5e03\u5c40\uff0c\u9002\u5408\u6253\u5370\u548c\u5b9e\u4f53\u4f7f\u7528\u3002\n\n## Demo \u9875\u9762\n\n> **\u6ce8\u610f**: Demo \u9875\u9762\u529f\u80fd\u6b63\u5728\u5f00\u53d1\u4e2d\uff0c\u5c06\u5728\u540e\u7eed\u7248\u672c\u4e2d\u63d0\u4f9b\u5728\u7ebf\u6f14\u793a\u3002\n\n## \u5feb\u901f\u5f00\u59cb\n\n#### \u5b89\u88c5\u4f9d\u8d56\n\n\u4f7f\u7528 UV \u5b89\u88c5\u9879\u76ee\u4f9d\u8d56\uff1a\n\n```bash\nuv sync\n```\n\n\u6216\u8005\u4f7f\u7528\u6807\u51c6\u7684 pip \u547d\u4ee4\uff1a\n\n```bash\npip install -e .\n```\n\n#### \u8fd0\u884c MCP \u670d\u52a1\n\nMCP \u670d\u52a1\u5668\u9ed8\u8ba4\u4f7f\u7528 STDIO \u4f20\u8f93\u534f\u8bae\uff0c\u4e0e Claude Desktop \u7b49 MCP \u5ba2\u6237\u7aef\u517c\u5bb9\uff1a\n\n```bash\npython server.py\n```\n\n## \u7248\u672c\u8bb0\u5f55\n\n### Version 10.1 (\u5f53\u524d\u7248\u672c)\n- \u66f4\u65b0\u4e86\u6240\u6709README\u6587\u4ef6\u4e2d\u7684\u7248\u672c\u4fe1\u606f\n- \u4fee\u6b63\u4e86MCP\u5de5\u5177\u548c\u8d44\u6e90\u7684\u63cf\u8ff0\uff0c\u786e\u4fdd\u4e0e\u5b9e\u9645\u529f\u80fd\u4e00\u81f4\n- \u66f4\u65b0\u4e86MCP\u5ba2\u6237\u7aef\u914d\u7f6e\uff0c\u4f7f\u7528\u6b63\u786e\u7684`uv run`\u547d\u4ee4\n- \u5b8c\u5584\u4e86\u6587\u6863\u7ed3\u6784\u548c\u5185\u5bb9\n\n### \u672a\u6765\u7248\u672c\u8ba1\u5212\n- \u589e\u52a0\u66f4\u591a\u95ea\u5361\u6a21\u677f\n- \u4f18\u5316\u8bed\u97f3\u529f\u80fd\n- \u6dfb\u52a0\u5728\u7ebfDemo\u9875\u9762\n- \u652f\u6301\u66f4\u591a\u5bfc\u51fa\u683c\u5f0f\n\n## \u8bb8\u53ef\u8bc1\n\n\u672c\u9879\u76ee\u91c7\u7528 GPL \u534f\u8bae\u3002",
    "bugtrack_url": null,
    "license": null,
    "summary": "FlashCardMCP Server - Interactive PDF Flashcard Generator with FastMCP",
    "version": "10.1.0",
    "project_urls": {
        "Documentation": "https://github.com/Moonzhang/FlashcardMCP#readme",
        "Homepage": "https://github.com/Moonzhang/FlashcardMCP",
        "Issues": "https://github.com/Moonzhang/FlashcardMCP/issues",
        "Repository": "https://github.com/Moonzhang/FlashcardMCP"
    },
    "split_keywords": [
        "education",
        " fastmcp",
        " flashcard",
        " game",
        " learning",
        " mcp",
        " pdf"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d21a0a9c529472f80e8c1a313a5903940fea9f80f83cbb1a330c4578f9ddec6a",
                "md5": "b92b08f775807c3ad05f95788afa4330",
                "sha256": "7a25e71997ece0fe28664fa59c9d40915fdc311cf160e8644285d1e5a7828333"
            },
            "downloads": -1,
            "filename": "flashcard_mcp-10.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b92b08f775807c3ad05f95788afa4330",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 48821,
            "upload_time": "2025-10-28T05:33:29",
            "upload_time_iso_8601": "2025-10-28T05:33:29.543617Z",
            "url": "https://files.pythonhosted.org/packages/d2/1a/0a9c529472f80e8c1a313a5903940fea9f80f83cbb1a330c4578f9ddec6a/flashcard_mcp-10.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "78067fb257c32345c52e3aac3029ea63884bfd136eb7fd427ce3d64a327b6c0a",
                "md5": "a1cb2ddf3c6799ebb598f1b78b77b0e2",
                "sha256": "bf2f8fac850cde50092156683fcba812ec494ab0cea4d69aed8af0781229dd3b"
            },
            "downloads": -1,
            "filename": "flashcard_mcp-10.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "a1cb2ddf3c6799ebb598f1b78b77b0e2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 40165,
            "upload_time": "2025-10-28T05:33:31",
            "upload_time_iso_8601": "2025-10-28T05:33:31.597083Z",
            "url": "https://files.pythonhosted.org/packages/78/06/7fb257c32345c52e3aac3029ea63884bfd136eb7fd427ce3d64a327b6c0a/flashcard_mcp-10.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-28 05:33:31",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Moonzhang",
    "github_project": "FlashcardMCP#readme",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "flashcard-mcp"
}
        
Elapsed time: 1.81487s