Ordkort について
Ordkortは、60言語の学習者向け無料語彙学習サイトです。既成の単語帳、間隔反復、辞書、文法、翻訳解説を備え、学習データはブラウザー内に保存され、オフラインでも使えます。MCPクライアントから単語帳やカードデザインも作成できます。
主な機能
- 01テーマ・レベル別の単語カードと間隔反復
- 02辞書、文法書、解説付き翻訳
- 03貼り付けた文章を読み単語をカードに追加
- 04Anki単語帳のインポートとエクスポート
- 05オフライン学習とブラウザー間の暗号化同期
- 06MCP経由で単語帳とカードデザインを作成
活用シーン
- 01テーマ別に新しい言語の語彙を学ぶ
- 02活用形、例文、文法を調べる
- 03読書中の未知語を復習に追加する
- 04AIに画像付き単語帳を作成させる
MCP 対応
Ordkortはhttps://ordkort.com/mcpで、アカウントやキー不要のMCPサーバーを提供します。クライアントは言語・テーマ・単語・画像の情報を取得し、単語帳やカードデザインを作成できます。結果はリンクで提示され、ユーザーが承認してから追加されます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://ordkort.com/mcpclaude mcp add --transport http com-ordkort-ordkort https://ordkort.com/mcp{"mcpServers":{"com-ordkort-ordkort":{"type":"http","url":"https://ordkort.com/mcp"}}}Cursor で開く{"servers":{"com-ordkort-ordkort":{"type":"http","url":"https://ordkort.com/mcp"}}}VS Code で開く{"mcpServers":{"com-ordkort-ordkort":{"type":"http","url":"https://ordkort.com/mcp"}}}{"mcpServers":{"com-ordkort-ordkort":{"serverUrl":"https://ordkort.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
7このツールにパラメーターはありません。
詳細
Ordkort
60 言語のフラッシュカード、本格的な辞書、文法。
無料 · 登録不要 · 広告なし · トラッキングなし · オフラインで利用可能
ordkort.com を開く → · 概要 · コントリビューション · 問題を報告
選ばれる理由
Ankiは高機能ですが、最初は何もなく、デッキはすべて自分で作成する必要があります。他の多くのアプリは、アカウントやサブスクリプションを求めたり、データを収集したりします。Ordkortには、29のトピックとA1〜C1レベルに対応したすぐに使える単語リストがあり、Ankiと同じFSRSスケジューラーに加えて、辞書、文法書、すべての単語を解説する翻訳機能も備えています。カードはAIが作成し、実際の辞書と照合して確認します。ノルウェー語は公式辞書のordbokene.no、その他の言語はWiktionaryを使用します。すべてのデータはブラウザー内に保存されます。デバイス間での同期はアカウント不要で、エンドツーエンド暗号化されています。

機能
Ordkortは、ほぼあらゆる言語を、ほぼあらゆる別の言語から学べる軽量なサイトです:
- トピック別のフラッシュカードと間隔反復(FSRS-4.5) — 新しい単語には「知っている/知らない」、復習には「覚えている/忘れた」で答えます。タップして裏返し、スワイプ、キーボードショートカット、音声読み上げに対応しています。さらに5つの学習モードがあります。選択問題、入力問題(画面上に特殊文字の行を表示します。タイプミスが1つある場合や、ラテン文字以外の文字体系でピンイン/ローマ字を入力した場合も正解として扱います。同じ単語の別の形で答えた場合は半分正解となり、間違いにはなりませんが、そのカードは再び表示されます)、リスニング、例文の穴埋め、またはミックスです。ピンイン、ローマ字などのローマ字表記はカードの表面には表示されず(タップすると表示されます)、文字そのものを読む練習ができます。言語ごとに1日の新出単語数の上限があり、言語切り替えメニューでは各言語の復習待ちの数を確認できます。
- トピック:6グループ(初歩、人々、日常生活、身の回りの世界、仕事と社会、文法セット)に分かれた29個の組み込みトピック、自由に作成できるカスタムトピック、または自分の単語を登録するための空のデッキがあります。AIがA1~C1レベルに適した、実際によく使われる単語を選びます。「+20 words」で重複なくデッキを拡張できます。
- ordbokene.no やLexinを参考にした辞書:翻訳、活用表、例文付きの語義、定型表現、複合語を掲載しています。ノルウェー語では、公式のブークモール語/ニーノシュク語辞書データも併せて表示し、AIの項目の正解データとして使用します。また、AIが作成した名詞と動詞のカードはすべて一度照合され、冠詞や語形が間違っていれば修正されます(全員が使う共有単語バンクと、ブラウザーでのバックグラウンド照合により、以前に保存したカードも修正されます)。その他の言語では、同じ方法でWiktionaryを使って名詞と動詞を照合します。冠詞は名詞の性に一致していなければならず(「die Hund」→「der Hund」)、単語から性がわからない場合は性を確認し(「книга」)、Wiktionaryにない語形は除外します。これらの言語の辞書ページでは、AIの項目と並べてWiktionaryの項目(性、主な語形、発音、短い例文付きの語義、語源。説明は英語)を表示し、その情報をAIの項目の正解データとして使用します。また、各言語の主な辞書(RAE、Duden、Larousse、Treccani、Jisho…)へのリンクも掲載しています。翻訳は引き続きAIのみが生成します。
- 文法書:品詞別(名詞、形容詞、動詞、語順など)の15章で、表、例文、よくある間違い、練習問題に加え、自由形式の文法質問にも対応します。
- 解説付き翻訳ツール:各単語を品詞ごとに色分けし、その語形と、その場所で使われる理由を説明する規則を表示します。
- 読解:任意のテキストを貼り付けると、単語が「新しい/学習中/習得済み」に色分けされます。タップすると、その文脈での意味を確認してカードに追加できます。
- 統計と毎日の目標:連続学習日数、過去30日間の復習数、14日間の予測、習熟段階別の単語数、最も忘れやすい単語を確認できます。
- Ankiとの双方向連携:どのAnkiからでも
.apkgをインポートできます(現在の形式にも対応)。画像、録音データ(スピーカーボタンを押すと、そのカード独自の音声を再生します)、必要に応じて学習状況も取り込めます。デッキは、学習状況(FSRSの記憶状態を含む)、画像、録音データとともに、Ankiで開ける.apkgとしてエクスポートできます。CSVのインポート/エクスポートにも対応しています。また、リンクやQRコードでデッキを共有できます。共有されるのは単語のみで、学習状況は含まれません。 - すべてのカードに音声を:専用の録音データがないカードでは、Wiktionary(Lingua LibreやWikimedia Commonsのほかの提供元)にあるネイティブスピーカーの録音、またはWorkers AIの合成音声(サイト独自のCloudflareアカウントで動作するMeloTTS。英語、スペイン語、フランス語、中国語、日本語、韓国語に対応)を、1日の文字数上限の範囲内で再生します。録音データは一度取得すれば全員が利用できます。デバイスの音声も引き続き設定で選択できます。
- 自分の記憶に合わせて調整:設定 → 自分の記憶に合わせるを選ぶと、デバイス上で自分の解答をもとにFSRSの重みを算出します(以前の解答を使って学習し、後の解答の予測精度がデフォルト値を上回る場合にのみ適用されます)。
- デッキライブラリ:同じ言語ペアを学ぶ人たちに向けてデッキを公開できます(デッキ → ⋯ → ライブラリに公開)。ほかの人のデッキをタイトルで検索し、評価順または新着順に並べ替え、投票して追加できます。デッキが掲載される前に、ライブラリのポリシーを伝えられたモデルが単語を確認し、画像を認識できるモデルが表紙をチェックします。安全でないデッキは拒否され、チェックを実行できない間は何も公開されません。3人から報告があると、サイトの管理者が確認するまでデッキは非表示になります。公開者はデッキを取り下げることができます。
- 穴埋め付きカードと独自フィールド:Ankiと同じ形式で穴を指定できます(
Jeg {{bor}} i Oslo、{{c1::bor::verb}})。カードは穴埋め問題として学習できます。カードには最大8つの名前付きフィールドを追加できます。Ankiの穴埋め問題ノートと、ノートのほかのフィールドも、この形式で取り込んだりAnkiに戻したりできます。 - 場面別フレーズ:薬局、カフェ、病院、就職面接などの用意された場面、または自分で作成した場面から、そこで話されるフレーズを集めたデッキを作れます。各フレーズには、その応答となる一言も付いています。
- デバイス上で完結するリマインダー:自分で選んだ時刻に、学習しない日には、復習が必要なカードの枚数を通知します。開いているタブから通知するか、サイトをアプリとしてインストールしている場合はサービスワーカーが通知します。プッシュ通知サービスは使わず、予定はブラウザーのキャッシュに保存されます。
- トピックのカバー画像とスマートフォン表示:用意されたトピックから新しいデッキを作ると、無料の画像がカバーに設定されます。設定 → 外観では、編集しているテーマをスマートフォンの画面幅で確認できます。
- 空欄を自動で補完:例文や文法がない、または翻訳欄に翻訳以外の内容があるインポート済みデッキを、AIが1リクエストあたり20枚ずつ補完します(その日のAIリクエストの1回分を使用します)。共有単語バンクにすでに登録されている単語は無料で補完され、空欄のフィールドだけが変更されます。大きなデッキでは最初に確認を求めるか、1日10単語ずつ補完できます。
- カードに画像を追加:単語から見つけた、オープンライセンスの無料画像、自分の画像、または貼り付けた画像を使えます。画像はデバイスに保存されます。単語をその言語でWikidataから検索するため、「hus」では、(
PIXABAY_KEYが設定されている場合の)Pixabayや英語で検索するOpenverseより先に、Wikimedia Commonsの家の画像が見つかります。 - デッキのカバー画像:デッキの絵文字の代わりに小さな正方形の画像を設定できます(絵文字をタップ)。トピックから検索する、自分の画像を使う、または画像を貼り付けることができます。画像は128ピクセルのJPEGとしてデッキに保存されるため、同期され、デッキの共有時にも含まれます。AIからMCP経由で設定することもできます(
cover_url)。 - 自分だけのデザイン:HTMLとCSSでカードテンプレートを作成できます(
{{term}}、{{image}}、{{#example}}…{{/example}}など)。すぐに使えるテンプレートやライブプレビューも用意されています。サイト全体に適用するCSSも設定できます。スクリプトは実行されません。 - よりよく記憶するために:2択または4段階(Again/Hard/Good/Easy)の解答、自分で設定できる目標保持率、繰り返し忘れる単語を一時的に除外する機能、そしてうまくいかない原因を利用できます。自分の解答を分析結果として表示し、それぞれに改善方法を1つ提案します。
- MCP経由で自分のAIを使う:Claude、ChatGPT、または任意のMCPクライアントを
https://ordkort.com/mcpに接続して、画像付きデッキやカードのデザインを依頼できます。追加用のリンクが返されます(MCPを参照)。 - オフラインで動作:サービスワーカーがサイトを保存するため、接続がなくてもカードを開けます。デプロイ後は、新しいバージョンがあることをアプリが自動で検知します。スマートフォンにインストール済みで、起動しただけの場合も検知し、次に別の画面へ移動したときに読み込みます。
- AIの項目に間違いを報告できます。独立した複数の報告が寄せられると、全員向けに再生成されます。
- 学習や説明に使える60言語に対応しています。インターフェイスは英語、ロシア語、ウクライナ語、ノルウェー語、アラビア語(RTL)、中国語に人の手で翻訳されています。その他のインターフェイス言語はAIで一度翻訳され、共有されます。
MCP
Ordkort は MCP サーバーでもあるため、お使いの AI でカードデッキやデザインを作成できます。
アドレス:https://ordkort.com/mcp(Streamable HTTP、アカウントもキーも不要です)。
公式 MCP Registry に com.ordkort/ordkort として登録されています。
- Claude(claude.ai、デスクトップ):Settings → Connectors → Add custom connector → アドレスを貼り付けます。
- Claude Code:
claude mcp add --transport http ordkort https://ordkort.com/mcp - ChatGPT:Settings → Apps & Connectors → Create(developer mode)→ アドレスを貼り付けます。
- その他(Cursor、VS Code、LM Studio…):アドレスを使ってリモート/HTTP MCP サーバーを追加します。
アドレス、これらの手順、リクエストの例は、アプリの Settings → Your own AI (MCP) にもあります。
たとえば、「画像付きで、キッチンをテーマにした A2 レベルのノルウェー語デッキを作って」 や、「画像を上に配置した、暗く落ち着いたカードをデザインして」 と頼んでみてください。AI からリンクが届き、開くとデッキまたはデザインが表示され、同意した場合にのみ追加されます。AI がカードを見たり変更したりすることはありません。
| ツール | 機能 |
|---|---|
list_languages | 60 の言語とそのコード |
list_topics | 組み込みトピックとその ID |
ready_words | トピックとレベルに応じて共有バンクから取得し、辞書と照合した単語 |
find_pictures | ある言語の単語に使える無料画像:まず Wikidata 項目の Commons 画像、次に Pixabay と Openverse の画像をクレジット付きで取得します |
design_guide | サイトのスタイルを変更するために AI が必要とするすべての情報:デザインの適用方法と削除方法、カードの構造、フィールド、画像、フォント、すべての CSS 変数、各画面の構成(画面ごとの body クラスを含む)、ライトテーマとダークテーマ、避けるべきこと、完全な例、チェックリスト |
create_deck | 最大 500 枚のカードを含むデッキを作成します。URL で指定した画像とカバーも含められます → デッキを追加するリンク |
create_design | HTML/CSS のカードテンプレートとサイト CSS を作成します → 表示してサイト全体で試し、適用できるリンクを生成します。意図どおりに動作しない内容も注記します |
デザイン内のスクリプトは実行されません。デザインで https アドレスを指定した画像(背景写真など)は、サイトの画像プロキシを通じて一度にまとめて取得されるため、CSS からページ上の内容を判別することはできません。カード固有の画像には <img src="{{image}}"> または var(--card-image) を使用します。AI には回答の末尾に "Powered by ordkort.com" を付けるよう指示されます。呼び出し回数はクライアントごとの時間単位の上限にカウントされます。
アーキテクチャ
public/ the site: HTML, CSS, JS, fonts — served by Cloudflare as static assets
_headers security headers (CSP etc.)
sw.js service worker for offline use
js/build.js the version of the site, written at every deploy (not in git)
js/bundle.js all the scripts of the app in one minified file, written at every deploy (not in git)
src/ Cloudflare Worker — runs only for /api/*
worker.js routing and same-origin check
mcp.js the MCP server: tools an AI uses to make decks and looks
core/ what every part uses
shared.js code shared with the site (languages, topics…), the language pair of a request
db.js D1: the schema is created automatically on the first request; the shared cache
limits.js burst, hourly, daily and site-wide limits
util.js small helpers: JSON answers, errors, hashing, codes
ai/ everything that asks the AI
routes.js AI requests: shared cache → word bank → limits → Groq
prompts.js all prompts and validation of AI output
facts.js verified Norwegian Bokmål grammar facts used to ground the AI
groq.js AI client over several providers with model fallback, and the moderation check
warm.js a base of ready decks: every 15 minutes, while the site is quiet, the cron fills one more
group of the shared word bank, from the decks used most to the rarer ones
sources/ other sites the Worker reads
wiktionary.js Wiktionary for other languages: checks cards, the dictionary entry, recordings
images.js free pictures (Wikidata/Commons, Pixabay, Openverse) and the picture proxy
voice.js a voice for cards without a recording
decks/ decks that leave the device
share.js decks shared by link
library.js the public library and its moderation
sync.js device sync and one-time codes (the server only ever sees ciphertext)
preview.js link previews for chat apps
scripts/build.mjs writes public/js/bundle.js (the scripts listed in scripts/bundle.mjs, minified by esbuild)
and public/js/build.js; wrangler runs it before every deploy and `wrangler dev`
scripts/landing.mjs plain pages about the site for search engines (public/<lang>/, 6 languages)
scripts/seo-pages.mjs static Norwegian pages for search engines, in English, Russian, Ukrainian and Norwegian:
29 topic word lists (/<ui>/<learn>/<topic>/), ~530 dictionary entries (/<ui>/ordbok/nb/<word>/),
two hubs and a page for teachers per language (texts in scripts/teachers-text.mjs),
the pages above and sitemap.xml. Content in data/seo/ (see its README);
run `npm run seo` after changing it (a test checks the files are up to date)
data/seo/ the words, translations and examples of those pages, official forms from Bokmålsordboka
tests/ node:test suites (see below)
wrangler.jsonc Cloudflare configuration
ユーザーデータ — カード、進捗、設定 — はブラウザーの IndexedDB に保存されます(IndexedDB がないブラウザーでは localStorage に保存され、以前の状態があれば一度だけ移行されます)。すべての回答の履歴(「うまくいかないこと」の表示内容)や、カード用の画像と録音も同様です。履歴はそのデバイスに残ります。ウェブ上で見つかった画像はデバイスごとに再取得され、自分で撮った写真や Anki からの録音は、ほかのデータと同じように暗号化されて、ファイルごとにリンク済みデバイスへ届きます。サーバーに送信されるのは AI リクエスト(単語、トピック、またはテキストとその言語の組み合わせ)だけです。また、共有用に選んだデッキ(リンクで共有され、1 年間保存)と、匿名の間違い報告(30 日間保存)も送信されます。回答は共有ベースに保存されるため、次の人は利用制限を使わず、すぐに回答を得られます。
Groq キーは Worker のシークレットにのみ保存されます。ブラウザーから送信されるのはパラメーターであり、プロンプトではないため、API が他人に無料のチャットボットとして使われることはありません。
利用制限(wrangler.jsonc → vars または Cloudflare ダッシュボードで変更できます):
AI_PER_HOUR = 1 人あたり 40、AI_PER_DAY = 1 人あたり 120、AI_DAILY_BUDGET = サイト全体で 2500。
ユーザーは、毎日変わるソルトを使って IP アドレスをハッシュ化して識別されます。IP アドレスそのものは保存されません。学校やオフィスではクラス全体が同じアドレスを使うため、当日の AI_DAILY_BUDGET の半分未満しか消費されていない間は、1 つのアドレスで各自の通常制限の AI_SHARED_TIMES = 5 倍まで利用できます。半分を超えると、全員が通常の制限に戻ります。共有キャッシュにすでにある回答は、利用制限に数えられません。
AI が処理できる量。 Groq の無料プランでは、3 つのモデルそれぞれで、任意の 24 時間に 200,000 トークンを利用できます。単語リストには 5,000~7,000 トークン、辞書の見出しや翻訳には数千トークンが必要なため、サイト全体で 1 日に新たに得られる AI の回答は約 100~150 件です。すでに生成済みのもの(共有キャッシュと単語バンク)はすべて無料です。そのため、あらかじめ用意されたデッキのバンクが重要です。cron はゆっくりと補充し(WARM_PER_DAY、1 日 24 リストで、容量の約 5 分の 1)、npm run warm は 25 リストで停止します。有料の Groq プランでは制限が引き上げられます。
アカウント不要の同期。 32 バイトのランダムなシークレットは、ユーザーのデバイス上にのみ存在します。これを使ってコピーの ID、書き込みトークン、AES-256-GCM キーを生成します。サーバーには暗号文とトークンのハッシュが保存されます。デバイスは一度だけ使える 16 文字のコード(有効期間 3 分で、初回読み取り時に使用済みになります)、またはキー部分が # の後に含まれ、サーバーには送信されない QR リンクで連携します。クラウドストレージを使わない一度限りの転送も利用できます。54 文字の復元キーがあれば、すべてのデバイスでブラウザーデータが消去された場合でも、暗号化されたコピーを復元できます。コピーに含まれるのは、自分で撮った写真と Anki からの録音のファイル名のみです。各ファイルは同じキーで個別に暗号化されて /api/media に送信されます(コピーごとに最大 5,000 ファイル、約 110 MB)。デバイスはカードで必要なファイルを取得します。コピーを削除すると、それらのファイルも削除されます。
サイトの「仕組み」ページ(#/about)では、これらすべてを分かりやすい言葉で読むことができます。
データを安全に保つ
- ブラウザーのキャッシュを消去してもカードには影響しませんが、サイトデータ/Cookieを消去するとカードも消えます。
- iPhone と iPad の Safari は、ホーム画面に追加されていない限り、7 日間開いていないサイトのデータを削除します。このサイトはインストール可能なウェブアプリ(ウェブアプリマニフェスト)であり、設定画面でこの点を説明しています。
- ディスクの空き容量が少なくなってもデータが追い出されないよう、サイトはブラウザーに永続ストレージを要求します。
- 万一に備えて、保存した復元キーを使った同期、または JSON バックアップファイルを利用してください(設定 → データ)。
ローカルで実行する
npm install
.dev.vars.example を .dev.vars にコピーし、Groq キーを入力してから、次を実行します。
npm run dev
サイトはローカルの D1 データベースとともに http://localhost:8787 で起動します。
テスト
npm test
テストスイートでは、FSRS によるスケジューリング、デバイス間でのデータのマージ(編集、削除、日ごとの統計)、同期の暗号化と復旧キー、QR コード(独立したリーダーでデコード)、CSV のインポート/エクスポート、インターフェース翻訳の完全性、オフライン時のファイル一覧、Wrangler のローカルランタイムでの Worker API のエンドツーエンドテスト(共有デッキ、1 回限りのリンクコード、バージョン管理された同期)、および検索エンジン向け静的ページをテストします。静的ページのテストでは、内容が最新であること、タイトルと canonical が重複していないこと、hreflang が相互に対応していること、リンク切れがないこと、すべてのページがサイトマップに含まれていること、各ページに独自の文章が少なくとも 150 語あることを確認します。AI の呼び出しは行いません。 GitHub Actions では、プッシュとプルリクエストのたびにテストが実行されます。
GitHub から自動更新されるように Cloudflare にデプロイする
- Cloudflare ダッシュボード → Workers & Pages → Create → Import a repository → この
リポジトリを選択します。ビルドコマンドは空のままにし、デプロイコマンドは
npx wrangler deployとします。 - 初回デプロイ後:Worker → Settings → Variables and Secrets → シークレット
GROQ_API_KEYを追加します(任意で、無料のGEMINI_API_KEY、およびトライアル版のCEREBRAS_API_KEYも追加できます。アカウントに支払い方法を登録すると、30 日間有効な 5 ドル分のクレジットが付与され、その後は停止します。自動で課金されることはありません。いずれも同じモデルに対して独自の日次制限を設け、動作しなくなったキーはスキップされます。また、すべての無料モデルが上限に達した場合にのみ使用され、1 日あたりPAID_DAILY_TOKENSで上限が設定される有料のフォールバックDEEPINFRA_API_KEY、任意の長いランダム文字列IP_SALT、画像検索に Pixabay を追加する無料の Pixabay API keyPIXABAY_KEY、およびサイトの所有者がライブラリ内またはリンクで共有されたデッキを削除できるようにする長いランダム文字列ADMIN_TOKENも追加できます)。 - D1 データベース
ordkortは初回デプロイ時に自動作成され、テーブルは最初のリクエスト時に作成されます。
以降は、main へのプッシュのたびに自動でデプロイされます。
ターミナルから同じ操作を行う場合:
npx wrangler login
npx wrangler secret put GROQ_API_KEY
npx wrangler secret put PIXABAY_KEY # optional
npx wrangler secret put ADMIN_TOKEN # optional: taking down decks
デッキの削除、および報告によって非表示になったデッキ:
curl -X DELETE -H "X-Admin-Token: $ADMIN_TOKEN" https://YOUR-SITE/api/library/DECKID # or /api/share/DECKID
curl -H "X-Admin-Token: $ADMIN_TOKEN" https://YOUR-SITE/api/library/hidden
npm run deploy
セキュリティ
- すべての入力はサーバーで検証されます(言語の許可リスト、長さの上限)。AI の出力は共有ベースに入る前に、形式とサイズがチェックされます。
- クロスサイトリクエストは拒否されます(
Originチェック)。API が受け付けるのは JSON のみです。 - 短時間の大量リクエストはメモリ上で制限され、生成回数は D1 で集計されます。さらにサイト全体の日次予算も設定されています。
- データベースの容量については、同期コピーとそのファイル、リンクコード、共有デッキとライブラリのデッキ、テーマと音声が、1 日あたりの容量枠を消費します。
STORE_PER_DAY_MBは 1 人あたり 100、STORE_SITE_DAY_MBはサイト全体で 1000 に設定されているため、スクリプトが 1 時間で D1 を埋めることはできません。リクエスト本文、取得する画像と録音はストリームとして読み込まれ、上限に達すると打ち切られます。 - ライブラリのチェックでは、モデレーションモデルへのリクエストも集計されます(
GUARD_PER_DAYは 1 人あたり 60、GUARD_SITE_DAYはサイト全体で 400)。そのため、大きなデッキを公開しても、Groq の日次トークンを全員分消費することはありません。モデルには、デッキのテキストはデータであり、デッキが安全だと判断するよう求める内容はデータではないと指示されています。 - ブラウザーから送られた、すでに知っている単語は、単語または短いフレーズに見える場合に限り、JSON リストとしてプロンプトに含まれます。共有単語バンクに AI への指示を書き込むことはできません。
- 誰かが共有したテーマは、サンプルカードに範囲を限定した CSS でプレビューされます。「このテーマを使う」を選択した後にのみ、サイトのほかの部分にも適用されます。テーマによってコントロールが隠れてしまった場合は、
?nolook(https://ordkort.com/?nolook#/settings)を付けてサイトを開き、テーマをリセットしてください。 - CSP はサードパーティのスクリプトとフレーミングを禁止しています。フォントはセルフホストされています。WebAssembly は SQLite に限り
'wasm-unsafe-eval'で許可されており、SQLite は Anki パッケージの読み書きに使用されます。インポートまたはエクスポートを初めて行うときに、サイト自体から読み込まれます。ブラウザーからのサードパーティへのリクエストは、ノルウェー語用のオープンな ordbokene.no API のみです。サーバーは Wiktionary で単語を検索し(Wikimedia の要請に従い、単語のみを User-Agent とともに送信)、回答を 30 日間キャッシュします。カード用の画像もサーバーが検索(Wikidata、Wikimedia Commons、Pixabay、Openverse)して取得するため、訪問者の IP アドレスがほかのサイトに伝わることはありません。HTTPS のみを使用し、5 MB 以下のラスター画像に限り、1 人あたり 1 時間ごとの上限があります。 - Worker のリクエストログは無効になっています。上限カウンター、リンクコード、放置された同期コピーは、毎日のスケジュールタスクで削除されます。
- 脆弱性を見つけた場合は、公開 Issue を作成するのではなく、[email protected] までご連絡ください (/.well-known/security.txtにも記載されています)。
- Cloudflare のネットワークが大量のトラフィックによる攻撃を吸収します。カスタムドメインでは、さらに
/api/*に対する WAF のレート制限ルールと Bot Fight Mode を有効にできます。
貢献
コードを書かなくてもできる、最も簡単な支援方法は、インターフェースを自分の言語に翻訳すること(約 550 個の短い文字列がある 1 ファイル)、カードや辞書の項目にあるボタンから誤った単語を報告すること、またはわかりにくかった点について Issue を作成することです。コードでの貢献も歓迎します。CONTRIBUTING.mdをご覧ください。質問やアイデアは Discussionsへお寄せください。公開の場で書きたくない場合は、メールで [email protected] までご連絡ください(教師の方はよくこちらを利用されています)。post@、help@、[email protected] も同じ担当者に届きます。これ以外のアドレスは Ordkort のものではありません。また、Ordkort がメールでパスワードや金銭を要求することはありません。
Ordkort が学習に役立ったら、GitHub で ⭐ を付けると、ほかの学習者が見つけやすくなります。
ライセンス
GNU AGPL-3.0。コードの使用、研究、変更、共有が可能です。変更を加えたバージョンを公開サービスとして運用する場合は、同じライセンスのもとで変更内容を公開する必要があります。
クレジット
ノルウェー語公式辞書データ:ordbokene.no(Språkrådet およびベルゲン大学)。AI:Groq。フォント:Geologica、Literata、Readex Pro、Noto Naskh Arabic — SIL Open Font License 1.1。QR コード:Project Nayuki の QR コードジェネレーターの移植版(MIT License)。Anki パッケージ:sql.js(WebAssembly 上の SQLite、MIT)および fzstd(MIT)。画像:Wikimedia Commons(Wikidata 経由で検索)、Pixabay、Openverse。それぞれに独自のライセンスとクレジットがあります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。