mcpField
O
OAHelper

OAHelper

ローカル
github.com科学・教育25 日前に更新

OAHelper について

OAHelperは、企業のオンラインアセスメントや面接に備える人向けのローカルMCPサーバーです。ユーザーのOAHelper Proアカウントから取得した資料をMarkdownで保存し、オフラインで利用できます。準備用スキルも9種類含みます。

主な機能

  1. 01企業別OAセットの検索と同期
  2. 02問題、選択肢の解答、解説の取得
  3. 03企業の面接体験談の閲覧
  4. 04取得資料のMarkdown保存
  5. 05セッションなしで保存済み資料にアクセス
  6. 06練習と学習計画向けの9種類のスキル

活用シーン

  1. 01企業のOA問題をオフライン資料として蓄積
  2. 02過去問による時間制限付き模擬アセスメント
  3. 03選択問題の演習と解説の確認
  4. 04面接概要や間隔反復の復習計画の作成

MCP 対応

ローカルのstdio MCPサーバーを通じて、ユーザーのOAHelperアカウントを検索、同期、閲覧するツールを公開します。付属スキルはこれらのツールを備考ワークフローに組み合わせます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"sirjansingh-oahelper": {
"command": "uvx",
"args": [
"oahelper-mcp"
],
"env": {
"OAHELPER_COOKIE": "<OAHELPER_COOKIE>",
"OAHELPER_HOME": "<OAHELPER_HOME>"
}
}
}
}
起動コマンドuvx oahelper-mcp
設定が必要な環境変数
OAHELPER_COOKIEシークレットFull cookie request header from a logged-in oahelper.in browser tab
OAHELPER_HOMEFolder for the offline library and cache (default ~/.oahelper)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypioahelper-mcp0.2.3

ツール

8

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
companystringはい

詳細

oahelper-mcp

Sirjan Singh が開発

GitHub stars License: MIT MCP PyPI MCP Registry skills.sh

Claude Code、Claude Desktop、Cursor、Codex、その他のMCPクライアントから、あなた自身のOAHelper Proアカウントを利用できるMCP サーバーです。企業別のOA問題セット、問題文の全文、MCQの解答集、公式解答、面接体験談を取得できます。取得した内容はすべてプレーンなMarkdownとしてディスクにも保存されるため、オフラインで、Obsidianで、あるいは二度とネットワークに接続しないエージェントと一緒に対策できます。

模擬OA、MCQ演習、ヒントを使ったコーチング、面接概要、学習計画、間隔を空けた復習に使える9つのスキルも付属しています。

このサーバーは、依存関係が1つ(公式のmcp SDK)だけの小さなPythonパッケージです。HTTPには標準ライブラリを使います。

クイックインストール

使用するものコマンド1つ
Claude Code(サーバーと9つすべてのスキル)/plugin marketplace add SirjanSingh/oahelper-mcp の後に /plugin install oahelper@oahelper-mcp
スキルのみ、任意のエージェントで使用npx skills add SirjanSingh/oahelper-mcp
サーバーのみ、任意のMCPクライアントで使用uvx oahelper-mcp(エージェントへの接続を参照)

Claude Codeプラグインを有効にすると、OAHelperのCookieの入力を求められ、安全なストレージに保存されます。スキルは/oahelper:oa-mock、/oahelper:mcq-drillなどとして利用できます。

最初にお読みください。 OAHelperの利用規約では、自動アクセスとスクレイピングが禁止されており、違反するとProアカウントを失う可能性があります。このツールは、人がサイトを使うのと同じ方法で使えるように作られています。1回につき1社のみ、リクエストは依頼があった場合に限り、リクエスト間隔は2秒、1日の上限は厳格に設定(デフォルトは300件)され、ディスクキャッシュにより同じ内容を二度取得することはありません。ログイン済みのあなた自身のブラウザーセッションを使用し、コンテンツを外部に送信せず、契約プランに含まれていない情報は提供しません。実行するかどうかは、あなた自身の判断と責任に委ねられます。サイトを巡回する目的では使用せず、保存した内容を公開したり共有したりしないでください。

利用できる内容

ツール内容ネットワーク
oahelper_search(company)会社の OA セットを日付、件数、参照情報とともに一覧表示します1 リクエスト(1 日間キャッシュ)
oahelper_sync(company, max_items=20)会社のセット、質問、選択式問題の回答、面接記録を新しい順にライブラリへダウンロードします。max_items 件のリクエスト後に停止し、残りの件数を知らせます最大 max_items 件
oahelper_company(slug_or_url)スラッグ、または .../company-questions/<slug> URL で指定したセットページを 1 件取得します1 リクエスト
oahelper_question(ref_or_url)問題文、解説付きの選択式問題の回答、任意の画像、コミュニティの解答を取得します1~4 リクエスト
oahelper_solution(ref_or_url, language)公式解答(cpp、python、java)を取得します。プランの解答クォータを使用します1 リクエスト
oahelper_interviews(company)会社の面接体験記を取得し、全文を保存します1~2 リクエスト
oahelper_offline(company="")すでに保存されている内容を表示します。セッションがなくても動作しますなし
oahelper_status(online=False)セッションの設定状況、今日のリクエスト使用数、任意の Pro チェックを表示しますなし、または 1

ライブラリの構成:

library/<company>/
  index.md            sets, interviews and counts, with links
  sets/<ref>-<name>.md
  questions/<ref>-<title>.md
  interviews/<id>-<role>.md
  images/             only when you ask for them

データはすべてデータフォルダーに保存されます。デフォルトでは ~/.oahelper、クローンから実行する場合はリポジトリフォルダー、または OAHELPER_HOME が指す場所です。クローン内の library/、cache/、.env は gitignore の対象です。この設定は維持してください。

必要条件

  • uv(推奨)、または Python 3.10 以降と pip
  • OAHelper アカウント(多くのコンテンツには Pro が必要です)
  • ローカルの stdio サーバーを起動できる MCP クライアント

セッションを追加する

  1. ログインした状態で、ブラウザーから https://www.oahelper.in を開きます。

  2. F12 を押して Network タブを開き、ページを再読み込みして、URL に /api/proxy/ を含むリクエストをクリックします。

  3. Request Headers から cookie の値をすべてコピーします。

  4. ~/.oahelper/.env に 1 行で入力します(フォルダーとファイルを作成してください)。

    OAHELPER_COOKIE=<paste here>
    

    .env.example に、その他の任意設定が記載されています。代わりに、クライアントの設定で OAHELPER_COOKIE を環境変数として設定することもできます。Claude Code プラグインを有効にすると、Cookie の入力を求められます。

セッションは、サイトからログアウトするまで有効です。ツールが session rejected を返すようになったら、これらの手順を繰り返してください。Cookie はパスワードのように扱ってください。AI とのチャットに貼り付けたり、コミットしたりしないでください。

次に、エージェントに online=true を指定して oahelper_status を実行するよう依頼します。session valid | Pro: yes と表示されるはずです。

エージェントに接続する

uv をインストールすると、どのクライアントでも同じコマンドを実行でき、残りは uv が取得します。

uvx oahelper-mcp
Claude Code
claude mcp add oahelper -s user -- uvx oahelper-mcp

-s user を指定するとすべてのプロジェクトで利用でき、-s local を指定すると現在のプロジェクトだけで利用できます。claude mcp list を実行して接続済みと表示されることを確認するか、セッション内で /mcp を実行してください。または、この手順を省略してプラグインをインストールすることもできます。プラグインにはスキルも含まれています。

Claude Desktop

claude_desktop_config.json を編集します(Settings、Developer、Edit Config)。

{
  "mcpServers": {
    "oahelper": {
      "command": "uvx",
      "args": ["oahelper-mcp"]
    }
  }
}

Claude Desktop を再起動します。

Cursor

Claude Desktop と同じ JSON を、~/.cursor/mcp.json(すべてのプロジェクト)または .cursor/mcp.json(1 つのプロジェクト)に設定します。

VS Code(Copilot エージェントモード)

.vscode/mcp.json では servers キーを使用します。

{
  "servers": {
    "oahelper": {
      "type": "stdio",
      "command": "uvx",
      "args": ["oahelper-mcp"]
    }
  }
}
OpenAI Codex CLI
codex mcp add oahelper -- uvx oahelper-mcp

または、~/.codex/config.toml に設定します。

[mcp_servers.oahelper]
command = "uvx"
args = ["oahelper-mcp"]
Gemini CLI、Windsurf、Cline など

mcpServers JSON ブロックを読み込むクライアントなら、Claude Desktop 用の設定例を変更せずに使用できます。設定ファイルの保存場所については、クライアントのドキュメントを確認してください。

その他の実行方法
  • pip: pip install oahelper-mcp を実行し、コマンドに oahelper-mcp を指定します。
  • 未リリースの最新コード: uvx --from git+https://github.com/SirjanSingh/oahelper-mcp oahelper-mcp。
uv を使わない場合(クローンから実行)
git clone https://github.com/SirjanSingh/oahelper-mcp.git
cd oahelper-mcp
python -m venv .venv
.venv/bin/pip install -r requirements.txt     # Windows: .venv\Scripts\pip

その後、上記のいずれかの設定で、コマンドに /path/to/oahelper-mcp/.venv/bin/python /path/to/oahelper-mcp/server.py を指定します。この方法では、.env、library/、cache/ はクローン内に保存されます。

使い方

自然な言葉で質問してください。次のようなプロンプトが使えます。

  • 「Juspay には OAHelper の OA セットがいくつありますか?」
  • 「OAHelper から Amazon を同期して、直近 3 件の OA のトピックの内訳を教えてください。」
  • 「質問 MjM3OHww と MCQ の回答を表示してください。」
  • 「その問題の公式 C++ 解答を取得してください。」
  • 「今年、Atlassian の面接ラウンドについて、どのようなことが言われていますか?」
  • 「オフライン用にすでに保存しているものは何ですか?」

一般的な準備の流れは、会社に対して oahelper_sync を実行し(NOT DONE と表示されている間は再度呼び出します)、エージェントに library/<company>/index.md と、そこからリンクされているファイルを読ませることです。ライブラリの読み込みではリクエストは発生しません。

スキル

skills/ フォルダーには、用意済みの Agent Skills が格納されています。エージェントにツールをワークフローとして連携させる方法を指示する、プレーンな SKILL.md ファイルです。自然な言葉で依頼するだけで、該当するスキルが起動します。

スキル質問の例動作
oa-prep「Juspay の OA 対策をしてください」完全な準備ガイドです。会社を同期し、保存済みのすべてのセットを読み込み、公開情報を追加して、過去の各問題に最も近い LeetCode の問題を対応付けます
oa-mock「Amazon の模擬 OA を出してください」実際の形式で、過去に出題された問題から作成した時間制限付き模擬試験を実施し、エッジケースのトレースを使って採点します
mcq-drill「Infosys の DBMS の MCQ でクイズを出してください」実際の解答集から MCQ を 1 問ずつ出題し、採点と解説を行います
solve-coach「この問題で行き詰まっています。ヒントをください」ヒントを段階的に提示します(観察、パターン、アプローチ、疑似コード、コード)。コードレビューも行い、公式解答はリクエストがあった場合のみ提示します
interview-insights「Atlassian の面接ラウンドについて教えてください」面接体験記をもとに、ラウンドごとの概要、繰り返し出る質問、失敗につながった点、準備チェックリストをまとめます
oa-compare「Uber、Juspay、Atlassian の OA を比較してください」OA の傾向を並べて比較し、優先して学ぶ価値のある共通トピックを示します
study-plan「OA は 11 月 3 日です。学習計画を作ってください」期限までの日ごとの計画を作成します。会社の出題トピックと、過去に間違えた問題に応じて重み付けします
revise-mistakes「間違えた問題を復習してください」間違えた問題やヒントが必要だった問題を、間隔反復方式で再テストします
oahelper-setup「oahelper が接続できません」インストール、クライアント設定、セッションの問題を順を追って診断します

oa-mock、mcq-drill、solve-coach は、すべての解答を library/_progress.md に記録します。このファイルは study-plan と revise-mistakes が読み込みます。ほかの library/ の内容とともに、ローカルマシンに保存されます。

スキルのインストール

Claude Code、Codex、Cursor など、スキルに対応したエージェントでは、次の方法が最も簡単です。

npx skills add SirjanSingh/oahelper-mcp

先にスキルを確認するには --list を、特定のスキルを選ぶには --skill oa-mock を追加してください。Claude Code では、プラグインを使うとサーバーと一緒にスキルもインストールされます。

手動で、Claude Code のすべてのプロジェクトにインストールする場合:

cp -r skills/* ~/.claude/skills/

Windows PowerShell の場合:Copy-Item -Recurse skills\* $HOME\.claude\skills\

1 つのプロジェクトだけにインストールする場合は、そのプロジェクトの .claude/skills/ にコピーしてください。セッションを再起動すると、/oa-prep、/oa-mock などとして表示されるか、依頼内容に応じて自動的に起動します。

ほかのエージェントでも、ファイルはプレーンな Markdown なので、Agent Skills に対応していれば、スキルフォルダーから読み込めます。対応していないエージェントでは、該当する SKILL.md をルールまたはカスタム指示に貼り付けてください。

設定

データフォルダー内の .env に設定するか、同じ名前の環境変数として設定できます(環境変数が優先されます)。

キーデフォルト説明
OAHELPER_HOME~/.oahelper(またはクローン先).env、cache/、library/ を格納するデータフォルダーです。環境変数のみ
OAHELPER_COOKIEログイン済みセッションのブラウザーの cookie ヘッダー
OAHELPER_BEARERサイトが送信する場合の authorization ヘッダー
OAHELPER_USER_AGENTgenericリクエストをセッションに合わせるための、ブラウザーのユーザーエージェント
OAHELPER_DAILY_CAP300サーバーが拒否するまでの 1 日あたりのライブリクエスト数

リクエスト間の 2 秒の間隔は、oahelper_mcp/server.py の MIN_GAP で設定されています。

トラブルシューティング

症状対処方法
session rejected / HTTP 401 または 403Cookie の有効期限が切れています。新しい Cookie を .env にコピーするか、/plugin configure oahelper@oahelper-mcp を実行してください
Daily cap reached翌日までお待ちください。キャッシュ済みのツールとオフラインツールは引き続き利用できます
クライアントにサーバーが失敗したと表示されるクライアントから見える PATH に uv があることを確認してください(uvx --version)。クローンから実行する場合は、絶対パスと venv の Python を使用してください。コマンドを手動で実行してください。標準入力で待機し、何も表示されない状態になるはずです
ModuleNotFoundError: mcpクライアントが別の Python を起動しています。command を venv のインタープリターに指定してください
No module named 'mcp.server.fastmcp'クローンに mcp 2.x がインストールされています。pip install "mcp<2" を実行してください(PyPI パッケージではすでにバージョンが固定されています)
プレミアムコンテンツが表示されないアカウントが Pro ではないか、ログアウトした状態でキャッシュされたコピーが取得されています。refresh=true を渡してください

開発方法

サイトには公開 API がありません。個人アカウントで通常の閲覧操作を記録した HAR を tools/har_endpoints.py で要約して、エンドポイントを特定しました。このスクリプトはパス、パラメーター名、レスポンスの形式を出力しますが、ヘッダーの値やレスポンスの内容は出力しません。サイトが変更されて何かが動かなくなった場合は、新しい HAR を記録してそのスクリプトを実行し、比較してください。

リリース(メンテナー向け)

oahelper_mcp/__init__.py、.claude-plugin/plugin.json、および server.json の両方の version フィールドでバージョンを更新し、コミットしてからタグをプッシュしてください。

git tag vX.Y.Z && git push origin vX.Y.Z

.github/workflows/release.yml はバージョンが一致しているか確認し、wheel のスモークテストを実行して、PyPI(トークン不要のトラステッドパブリッシング)に公開した後、 MCP Registry(トークン不要の GitHub OIDC)に公開します。

作者

Sirjan Singh です。自分の就職選考のオンラインアセスメントに備えるために、これを作りました。

これが試験対策の時間短縮に役立った場合は、リポジトリにスターを付けてください。誰かの役に立ったことを知る唯一の方法であり、オンラインアセスメントに備えるほかの人にも見つけてもらいやすくなります。Issue やプルリクエストも歓迎します。

ライセンス

このリポジトリ内のコードは、Sirjan Singh の著作権(2026年)に基づく MIT ライセンスです。OAHelper のコンテンツについては何の権利も付与しません。コンテンツの権利は OAHelper とその貢献者に帰属します。

このプロジェクトは OAHelper と提携しておらず、OAHelper の承認も受けていません。

M8ven スコア

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。