Flashcards by Fulin Labs

Learn vocabulary from daily life with flashcards, examples, pronunciation and shareable study links.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
100%
Qualität der Benennung
93%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~2,142Tokens (Tool-Definitionen)
~7.8 KBTypische Antwortgröße
Mittlere Auswirkung auf die Aufmerksamkeit (1.67% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "flashcards": {
      "url": "https://flashcard.fulinlabs.com/api/mcp"
    }
  }
}

Remote-Endpunkte

https://flashcard.fulinlabs.com/api/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (3)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢create_flashcard_deck(title, language, backLanguage, cards)

Use this when the user asks to learn, study, memorize, review, practice, or create flashcards about any topic. Generate the complete deck in this call and open it in the interactive flashcard UI. Act immediately using the existing conversation and source material; infer language and backLanguage yourself. Never ask the user for language codes, tool arguments, or confirmation of an already requested deck. For a request for 50 cards, submit all 50 completed cards in one call. Keep the response brief and let the study UI show the deck. Examples include 'I want to learn about X', 'teach me X with flashcards', and 'Create an HSK3 vocabulary deck about restaurants'. Do not call a separate add-card tool. Do NOT use when the user asks for a direct explanation without study intent, asks to delete or modify an existing deck, or requests an in-conversation quiz without creating a deck.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120,
      "description": "A concise, descriptive title for the generated deck."
    },
    "language": {
      "type": "string",
      "enum": [
        "zh",
        "de",
        "es",
        "it",
        "fr",
        "en",
        "ko",
        "ja",
        "vi"
      ],
      "description": "ISO 639-1 code for the language spoken on the front side (e.g. 'zh' Chinese, 'ja' Japanese, 'vi' Vietnamese). Used for the correct audio voice and saved-deck language. Always infer and set it from the user's target language, never from their current app preference."
    },
    "backLanguage": {
      "type": "string",
      "enum": [
        "zh",
        "de",
        "es",
        "it",
        "fr",
        "en",
        "ko",
        "ja",
        "vi"
      ],
      "description": "Language of the translations on the back. Set from the user’s known language; never assume English. Always set for language-learning decks. Used for reverse-card audio."
    },
    "cards": {
      "type": "array",
      "minItems": 1,
      "maxItems": 100,
      "items": {
        "type": "object",
        "properties": {
          "front": {
            "type": "string",
            "minLength": 1,
            "description": "Prompt, question, term, word, or phrase. For language learning, always use the target language (the language being learned). For example: Chinese characters, Italian phrases, or Japanese words."
          },
          "back": {
            "type": "string",
            "minLength": 1,
            "description": "Answer, definition, translation, or explanation. For language learning, always use the user's known language (e.g. English). This is the revealed answer when the card is flipped."
          },
          "pronunciation": {
            "type": "string",
            "description": "Pinyin, romaji, IPA, or another reading guide for the front text. Required for language decks with non-Latin script (Chinese, Japanese, Korean, etc.) and when the user requests pronunciation."
          },
          "example": {
            "type": "string",
            "description": "A concise example sentence or usage phrase in the target or subject language. Include when the user requests examples or when teaching a language."
          },
          "examplePronunciation": {
            "type": "string",
            "description": "Pronunciation or romanization of the example sentence."
          },
          "exampleTranslation": {
            "type": "string",
            "description": "Translation or plain-language explanation of the example."
          },
          "exampleParts": {
            "type": "array",
            "minItems": 1,
            "maxItems": 12,
            "items": {
              "type": "array",
              "minItems": 3,
              "maxItems": 3,
              "items": {
                "type": "string",
                "minLength": 1
              },
              "description": "Exactly three strings in this order: [Chinese word or short semantic phrase, tone-marked pinyin for that segment, direct translation of that segment]. Attach adjacent punctuation to the Chinese text."
            },
            "description": "For Chinese examples only: every part of the example in order, split into useful words or short semantic phrases. Encode each part compactly as [Chinese text, tone-marked pinyin, direct translation]. Cover the complete example exactly once in no more than 12 parts; attach punctuation to the preceding part."
          }
        },
        "required": [
          "front",
          "back"
        ],
        "additionalProperties": false
      },
      "description": "The complete generated deck. Include exactly the number of cards the user requested, with every required language-learning field completed; never submit a partial array or placeholders."
    }
  },
  "required": [
    "title",
    "cards"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string"
    },
    "language": {
      "type": "string",
      "enum": [
        "zh",
        "de",
        "es",
        "it",
        "fr",
        "en",
        "ko",
        "ja",
        "vi"
      ]
    },
    "backLanguage": {
      "type": "string",
      "enum": [
        "zh",
        "de",
        "es",
        "it",
        "fr",
        "en",
        "ko",
        "ja",
        "vi"
      ]
    },
    "cardCount": {
      "type": "integer"
    },
    "cards": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "front": {
            "type": "string",
            "minLength": 1,
            "description": "Prompt, question, term, word, or phrase. For language learning, always use the target language (the language being learned). For example: Chinese characters, Italian phrases, or Japanese words."
          },
          "back": {
            "type": "string",
            "minLength": 1,
            "description": "Answer, definition, translation, or explanation. For language learning, always use the user's known language (e.g. English). This is the revealed answer when the card is flipped."
          },
          "pronunciation": {
            "type": "string",
            "description": "Pinyin, romaji, IPA, or another reading guide for the front text. Required for language decks with non-Latin script (Chinese, Japanese, Korean, etc.) and when the user requests pronunciation."
          },
          "example": {
            "type": "string",
            "description": "A concise example sentence or usage phrase in the target or subject language. Include when the user requests examples or when teaching a language."
          },
          "examplePronunciation": {
            "type": "string",
            "description": "Pronunciation or romanization of the example sentence."
          },
          "exampleTranslation": {
            "type": "string",
            "description": "Translation or plain-language explanation of the example."
          },
          "exampleParts": {
            "type": "array",
            "minItems": 1,
            "maxItems": 12,
            "items": {
              "type": "object",
              "properties": {
                "text": {
                  "type": "string"
                },
                "pronunciation": {
                  "type": "string"
                },
                "translation": {
                  "type": "string"
                }
              },
              "required": [
                "text",
                "pronunciation",
                "translation"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "front",
          "back"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "title",
    "cardCount",
    "cards"
  ],
  "additionalProperties": false
}
🟢speak_text(text, language)

Use this when the flashcard widget requests speech audio for the current card.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "minLength": 1,
      "maxLength": 5000,
      "description": "Text to speak."
    },
    "language": {
      "type": "string",
      "enum": [
        "zh",
        "de",
        "es",
        "it",
        "fr",
        "en",
        "ko",
        "ja",
        "vi"
      ],
      "description": "Language of the text being spoken. Always specify the current side’s language; never default to the other side or app preferences."
    }
  },
  "required": [
    "text",
    "language"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "contentType": {
      "type": "string"
    }
  },
  "required": [
    "contentType"
  ],
  "additionalProperties": false
}
🟡create_website_deck(title, language, cards)

Use this when the user explicitly asks to save or share a deck on the website, or chooses Learn on website in the study widget. It sends the supplied deck to Fulin Labs and creates a persistent shareable deck link. Anyone with the link can read the deck. Do not call merely to preview or study a deck. Repeating the call may create another deck.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120,
      "description": "The title of the deck the user chose to save."
    },
    "language": {
      "type": "string",
      "enum": [
        "zh",
        "de",
        "es",
        "it",
        "fr",
        "en",
        "ko",
        "ja",
        "vi"
      ],
      "description": "Optional language code for the deck's front side."
    },
    "cards": {
      "type": "array",
      "minItems": 1,
      "maxItems": 100,
      "items": {
        "type": "object",
        "properties": {
          "front": {
            "type": "string",
            "minLength": 1,
            "description": "Prompt, question, term, word, or phrase. For language learning, always use the target language (the language being learned). For example: Chinese characters, Italian phrases, or Japanese words."
          },
          "back": {
            "type": "string",
            "minLength": 1,
            "description": "Answer, definition, translation, or explanation. For language learning, always use the user's known language (e.g. English). This is the revealed answer when the card is flipped."
          },
          "pronunciation": {
            "type": "string",
            "description": "Pinyin, romaji, IPA, or another reading guide for the front text. Required for language decks with non-Latin script (Chinese, Japanese, Korean, etc.) and when the user requests pronunciation."
          },
          "example": {
            "type": "string",
            "description": "A concise example sentence or usage phrase in the target or subject language. Include when the user requests examples or when teaching a language."
          },
          "examplePronunciation": {
            "type": "string",
            "description": "Pronunciation or romanization of the example sentence."
          },
          "exampleTranslation": {
            "type": "string",
            "description": "Translation or plain-language explanation of the example."
          },
          "exampleParts": {
            "type": "array",
            "minItems": 1,
            "maxItems": 12,
            "items": {
              "type": "array",
              "minItems": 3,
              "maxItems": 3,
              "items": {
                "type": "string",
                "minLength": 1
              },
              "description": "Exactly three strings in this order: [Chinese word or short semantic phrase, tone-marked pinyin for that segment, direct translation of that segment]. Attach adjacent punctuation to the Chinese text."
            },
            "description": "For Chinese examples only: every part of the example in order, split into useful words or short semantic phrases. Encode each part compactly as [Chinese text, tone-marked pinyin, direct translation]. Cover the complete example exactly once in no more than 12 parts; attach punctuation to the preceding part."
          }
        },
        "required": [
          "front",
          "back"
        ],
        "additionalProperties": false
      },
      "description": "The cards the user explicitly chose to save on Fulin Labs."
    }
  },
  "required": [
    "title",
    "cards"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet3 Tools