a11y-learning-guide

a11y-learning-guide

Guides users to official WCAG and W3C resources for learning web accessibility, without providing its own explanations.

Category
访问服务器

README

mcp-a11y-learning-guide

[!NOTE] 実験色が強い MCP サーバです。やりたいことは以下の通りなのですが、なかなか狙い通りに回答が出ないかもしれません。

ウェブアクセシビリティの学習をしたい人を補助し、WCAG など、公式ドキュメントへ案内する MCP サーバです。AI は「解説者」ではなく「ガイド役」として、学習に必要な W3C リソースを提示します。

対象は WCAG (JIS X 8341-3) を学習したい方。単純に AI に質問してしまうと、AI は公式のガイドラインだけでなく、様々な情報を Web から検索したりして答えて来てしまいますし、聞いていないことまで長々と解説してきたりしてあまり学習にはなりません。

そこで、AI になるべく独自解説させず、「公式ドキュメントのここを見るといいよ」というアドバイスだけを返すようにできないかと色々と試している MCP サーバです。

特徴

  • 🎯 ガイド役に特化: 「ここを読んでください」と公式ドキュメントへ誘導
  • 📚 公式ソースのみ: W3C/WAICの許可ドメインだけを参照
  • 🔍 効率的な検索: マッピングに基づき必要箇所を優先度付きで提示
  • ✅ 学習パス提示: どの順で読むべきかを明示

設計原則

  1. 解説者ではなくガイド役 ― 長々と説明せず、公式ドキュメントを案内
  2. 情報源を厳密に制限 ― 許可ドメイン外は提示しない
  3. 効率的な学習支援 ― 必読/推奨/補足を整理し、学習パスを示す

mappings 内にガイドのためのマッピングファイルを作って、AI の回答をある意味制限することで上記を実現しようとしているのですが、マッピングファイルだけですべての質問パターンに対応するのは難しいため、狙ったとおりの回答にならないことが多く悩み中。

何かいいアイデアあれば教えてください。

使い方

インストール

git clone https://github.com/burnworks/mcp-a11y-learning-guide.git
cd mcp-a11y-learning-guide
npm install
npm run build

Claude Desktop の設定例

Claude Desktop の設定ファイル (claude_desktop_config.json) を開きます。

設定ファイルの場所

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

※ Claude Desktop の「設定」→「管理者」からも設定ファイルを開くことができます。

設定ファイルの例

Claude Desktop の設定ファイル (claude_desktop_config.json) も以下のように追記します。args には、dist/index.js までのフルパスを記述します。

Windows 環境でファイルパスに \ を含む場合は、mcp-a11y-learning-guide\\dist\\index.js のように \ でエスケープしてください。

{
  "mcpServers": {
    "a11y-learning-guide": {
      "command": "node",
      "args": [
        "/full_path_to/mcp-a11y-learning-guide/dist/index.js"
      ]
    }
  }
}

利用可能なツール

search_accessibility_topic

トピックを検索し、公式ドキュメントを提示します。

  • query (必須): 例「リンクテキスト」
  • priority_filter (任意): all | must-read | high-priority

list_available_topics

利用可能なトピック一覧を取得します。

get_wcag_criterion

特定の達成基準を取得します。

  • criterion_id (必須): 例「2.4.4」

使用例

MCP サーバを設定していても、いきなり質問をすると、多くの場合、AI は WCAG ドキュメントなどを Web で検索して返答してこようとします。
まず最初に以下のように、この MCP サーバを使って答えてほしいという点を伝えておくと確実です。

  • 「a11y-learning-guide を使用して学習の手伝いをして」
  • 「a11y-learning-guide でリンクテキストに関連する達成基準について教えて」
  • 「get_wcag_criterion で 2.4.4 を教えて」

など。

その後、学習したい内容を AI に伝えると、a11y-learning-guide の機能を使って答えてくれるはずです。

AI との会話例

ユーザー:
  a11y-learning-guide の機能だけを使用して学習の手伝いをして

応答:
  a11y-learning-guideが利用可能です!このツールでは、WCAGに関する様々なトピックについて、公式ドキュメント(WCAG、Understanding、Techniques)へのリンクとともに情報を提供できます。

ユーザー:
  リンクテキストで気をつけることについて学習したい

応答:
  リンクテキストで気をつけるべきこと

  📋 達成基準の概要
  レベルA(必須):WCAG 2.4.4

  リンクテキストの意味が文脈から判断できること
  周囲の文章や段落、リストなどと合わせて読めば目的が分かればOK

  レベルAAA(推奨):WCAG 2.4.9

  リンクテキストだけで目的が判断できること
  前後の文脈がなくても、リンク単体で分かる必要がある

  ✅ 良い実装パターン

  1. H30: リンクの目的を示すリンクテキストを提供
    例:「製品ページへ」「お問い合わせフォーム」

  2. G91: 理解できるリンクテキストを使う
    具体的で明確な表現を使用

  3. ARIA8: aria-labelで補足説明
    視覚的には短く、支援技術には詳しく

  ❌ よくある失敗例

  1. F63: 異なるリンク先に同じテキスト
    悪い例:複数の「詳細」「こちら」リンク

  2. F84: リンクの目的を説明していない
    悪い例:「クリック」「もっと見る」だけ

  3. F89: アクセシブルな名前がない
    悪い例:画像だけのリンクで代替テキストなし

  📖 推奨する学習順序

  1. 達成基準 2.4.4(日本語)で基本要件を理解
  2. Understanding 2.4.4(日本語)で具体例を確認
  3. H30の達成方法(日本語)で実装を学ぶ
  4. F63の失敗例(日本語)で避けるべきパターンを把握

許可ドメイン(これ以外は参照しません)

  • https://www.w3.org/TR/WCAG21/
  • https://www.w3.org/TR/WCAG22/
  • https://www.w3.org/WAI/WCAG21/Understanding/
  • https://www.w3.org/WAI/WCAG22/Understanding/
  • https://www.w3.org/WAI/WCAG21/Techniques/
  • https://www.w3.org/WAI/WCAG22/Techniques/
  • https://waic.jp/translations/

開発者向け

マッピングファイルの追加

mappings/ にYAMLでトピックマッピングを追加します。例として mappings/links.yaml を参照してください。

開発

# 開発モード
npm run dev

# ビルド
npm run build

# テスト(Vitest)
npm test

運用上の注意

  • マッピングは起動時にキャッシュします。ファイルを追加・編集した場合はサーバーを再起動してください。
  • URLのホワイトリストはコードに埋め込んでいます(WCAG 2.1/2.2 の TR, Understanding, Techniques および WAIC邦訳)。許可外ドメイン・パスは無効になります。

ライセンス

MIT

推荐服务器

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 模型以安全和受控的方式获取实时的网络信息。

官方
精选