mcpField
O
OAHelper

OAHelper

本地服务
github.com科研与教育26 天前更新

关于 OAHelper

OAHelper 是面向公司在线测评和面试备考者的本地 MCP 服务,可读取用户 OAHelper Pro 账户内容并将资料保存为 Markdown,供离线使用;另含九项备考技能。

主要功能

  1. 01搜索并同步公司在线测评题集
  2. 02获取题目、选择题答案和解答
  3. 03查看公司面试经历
  4. 04将获取的资料保存为 Markdown
  5. 05无需会话即可访问已保存资料
  6. 06提供九项练习与学习规划技能

适用场景

  1. 01建立公司的在线测评题目离线资料集
  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

一个 MCP 服务,可让 Claude Code、Claude Desktop、Cursor、Codex 或任何其他 MCP 客户端读取你自己的 OAHelper Pro 账户内容:公司 OA 题集、完整题目描述、MCQ 答案、官方解答和面试经验。它获取的所有内容也会以纯 Markdown 格式保存到你的磁盘上,方便你离线备考、在 Obsidian 中学习,或交给一个此后不再联网的 Agent 使用。

它还附带 9 个技能,用于模拟 OA、MCQ 练习、基于提示的辅导、面试简报、学习计划和间隔复习。

该服务是一个小型 Python 包,仅依赖一项内容(官方 mcp SDK)。HTTP 使用标准库。

快速安装

你使用的工具一条命令
Claude Code(服务 + 全部 9 个技能)/plugin marketplace add SirjanSingh/oahelper-mcp 然后 /plugin install oahelper@oahelper-mcp
仅安装技能,适用于任何 Agentnpx skills add SirjanSingh/oahelper-mcp
仅安装服务,适用于任何 MCP 客户端uvx oahelper-mcp(参见将其连接到你的 Agent)

Claude Code 插件会在启用时询问你的 OAHelper Cookie,并将其安全保存。其技能会显示为 /oahelper:oa-mock、/oahelper:mcq-drill 等。

请先阅读此内容。 OAHelper 的服务条款禁止自动访问和抓取,违规处罚可能包括失去 Pro 账户。此工具的设计使用方式与用户浏览网站相同:一次只访问一家公司,仅在你提出请求时访问,间隔 2 秒发送请求,设定硬性每日上限(默认 300 次),并使用磁盘缓存,避免重复获取内容。它使用你自己已登录的浏览器会话,不会传输任何内容,也不会提供超出你订阅计划范围的信息。是否运行此工具由你自行决定,风险也由你承担。请勿用它抓取整个网站,也绝不要发布或分享它保存的内容。

你将获得

工具功能网络请求
oahelper_search(company)列出公司的 OA 题集及其日期、数量和引用1 次请求(缓存 1 天)
oahelper_sync(company, max_items=20)将公司的题集、问题、选择题答案和面试记录下载到资料库中,按最新顺序排列。达到 max_items 次请求后停止,并告知剩余数量最多 max_items 次
oahelper_company(slug_or_url)根据 slug 或 .../company-questions/<slug> URL 获取一个题集页面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(推荐),或安装了 pip 的 Python 3.10+
  • OAHelper 账号(大多数内容需要 Pro)
  • 能启动本地 stdio 服务的任意 MCP 客户端

添加会话

  1. 登录后,在浏览器中打开 https://www.oahelper.in。

  2. 按 F12,打开 Network 选项卡,重新加载页面,然后点击任意 URL 中包含 /api/proxy/ 的请求。

  3. 在 Request Headers 下,复制完整的 cookie 值。

  4. 将其作为单独一行放入 ~/.oahelper/.env(创建此文件夹和文件):

    OAHELPER_COOKIE=<paste here>
    

    .env.example 列出了其他可选设置。你也可以在客户端配置中将 OAHELPER_COOKIE 设置为环境变量;启用 Claude Code 插件时,它会提示你输入此值。

会话会持续有效,直到你在网站上退出登录。当工具开始返回 session rejected 时,请重复这些步骤。请像对待密码一样保护 cookie:不要将其粘贴到与任何 AI 的聊天中,也不要提交它。

然后让你的 Agent 运行 oahelper_status,并设置 online=true。你应该会看到 session valid | Pro: yes。

将其连接到你的 Agent

安装 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(适用于单个项目)中。

VS Code(Copilot Agent 模式)

.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/ 都保存在克隆的仓库中。

使用方法

使用日常语言提问。以下是一些效果不错的提示:

  • “OAHelper 为 Juspay 提供了哪些 OA 题集?”
  • “从 OAHelper 同步 Amazon,然后告诉我他们最近三场 OA 的题目类型分布。”
  • “给我看题目 MjM3OHww 和对应的 MCQ 答案。”
  • “获取这道题的官方 C++ 解法。”
  • “今年大家对 Atlassian 的面试轮次有什么评价?”
  • “我已经保存了哪些内容供离线使用?”

典型的备考流程:对某家公司运行 oahelper_sync(显示 NOT DONE 时再次调用), 然后让 Agent 阅读 library/<company>/index.md 及其链接的文件。阅读 资料库不会消耗请求次数。

技能

skills/ 文件夹中包含现成的 Agent Skills: 普通的 SKILL.md 文件,用于告诉 Agent 如何将工具串联成工作流。你只需使用日常语言提问, 匹配的技能就会自动启动。

技能可以这样提问功能
oa-prep“帮我准备 Juspay 的 OA”完整的备考指南:同步公司数据、阅读每套已保存的题集、补充公开来源,并将每道往年题对应到最接近的 LeetCode 题目
oa-mock“给我出一套 Amazon 的模拟 OA”使用真实格式和往年真题进行限时模拟,然后通过边界情况追踪进行评分
mcq-drill“用 Infosys 的 DBMS MCQ 考考我”每次一道题,题目来自真实答案集,并提供评分和解析
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 和其他支持技能的 Agent,最简单的方法是:

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\

若只用于一个项目,请将技能复制到该项目的 .claude/skills/ 文件夹中。重启会话后, 它们会显示为 /oa-prep、/oa-mock 等命令,也可以根据你的提问自动触发。

其他 Agent:这些文件是普通 Markdown,因此任何支持 Agent Skills 的 Agent 都能从其技能文件夹中 加载。对于不支持 Agent Skills 的 Agent,可将相关的 SKILL.md 内容粘贴到其规则或自定义指令中。

配置

在数据文件夹中的 .env 文件内配置,或设置同名环境变量 (环境变量优先):

键默认值含义
OAHELPER_HOME~/.oahelper(或克隆目录).env、cache/ 和 library/ 所在的数据文件夹。仅限环境变量配置
OAHELPER_COOKIE已登录会话的浏览器 cookie 标头
OAHELPER_BEARER网站发送该标头时使用的 authorization 标头
OAHELPER_USER_AGENTgeneric你的浏览器 user agent,以便请求与当前会话匹配
OAHELPER_DAILY_CAP300服务拒绝请求前的每日实时请求数

请求之间的 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)。如果是从克隆版本启动,请使用绝对路径和虚拟环境中的 Python。手动运行命令:它应该会静默等待 stdin 输入
ModuleNotFoundError: mcp客户端启动了另一个 Python。将 command 指向虚拟环境中的解释器
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。我开发这个项目是为了准备自己的实习 OA。

如果这个项目为你节省了准备时间,请为仓库点亮星标。这是我唯一能知道它帮助了别人的方式,也能帮助其他准备 OA 的人找到它。欢迎提交问题和拉取请求。

许可证

MIT,版权 (c) 2026 Sirjan Singh,适用于本仓库中的代码。该许可证不授予对 OAHelper 内容的任何权利;这些内容属于 OAHelper 及其贡献者。

本项目与 OAHelper 无关联,也未获得其认可。

M8ven Score

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。