Keith APIs: web to Markdown, OG images, job & resume parsing, ratings

io.github.Keithhk由 GitHub 账号 Keithhk 发布v0.1.1更新于 Nov 2, 2026

Web page to Markdown, link previews, OG images, job and resume parsing, Elo/Glicko-2 ratings

概览

AI 生成的概览

本地 MCP 服务器,通过五个 RapidAPI 托管服务提供十一个工具:网页转 Markdown、链接预览、OG 图片、职位与简历解析、技能评分。

可以做什么
  • 抓取公开网页并返回干净的 Markdown,或把已有 HTML 转换为 Markdown
  • 获取链接预览:标题、描述、图片、favicon 以及 Open Graph 和 Twitter 卡片标签
  • 根据标题生成 1200x630 的 PNG Open Graph 分享图片
  • 解析职位广告(单条或一次最多 20 条),输出资历、薪资、远程地区、技能等结构化字段
  • 从文本或本地 PDF/DOCX/TXT 文件解析简历,并与职位广告打分,列出匹配与缺失的技能
  • 根据比赛结果计算 Elo、Glicko-2 或 OpenSkill 评分,预测胜率与对局质量,并列出支持的算法
适用场景
适合需要以更省 token 的 Markdown 阅读网页文章或文档、制作链接预览或分享图、用简历与职位广告做匹配筛选,或为联赛和游戏计算技能评分与预测对局的场景。
运行要求
通过 npx 在本地运行,需要 Node.js 18 或更高版本。必须提供 RapidAPI 密钥,以环境变量 RAPIDAPI_KEY 传入,并需订阅要使用的各个 API(有免费套餐);未订阅的 API 对应工具会返回未订阅错误。需要能访问 RapidAPI 的网络。
安装前请注意
RAPIDAPI_KEY 是机密凭据,不要写入共享配置。请求(包括简历内容和传入的本地文件路径)会经 RapidAPI 发送给第三方 API;README 称不会存储,但这只是提供方的说法。超出免费套餐的 API 可能产生费用,抓取网页和生成图片也会消耗 API 配额。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Keith APIs: web to Markdown, OG images, job & resume parsing, ratings,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

keith-apis-mcp: web page to Markdown, OG images, job and resume parsing, Elo ratings

keith-apis-mcp is an MCP (Model Context Protocol) server that gives AI assistants such as Claude, Cursor and ChatGPT eleven tools from five small hosted APIs: read any web page as clean Markdown, get link previews, generate Open Graph share images, parse job postings and resumes, score a resume against a job, and compute Elo, Glicko-2 or OpenSkill ratings. One RapidAPI key works for all of them, and each API has a free plan.

Tools

ToolWhat it doesAPI
fetch_url_as_markdownFetch a page and return its main content as clean Markdown (for reading, summarising, RAG)Web Page API
html_to_markdownConvert HTML you already have to MarkdownWeb Page API
get_link_previewTitle, description, images, favicon, Open Graph and Twitter card tagsWeb Page API
generate_og_image1200×630 PNG Open Graph image from a title (returned as an image)OG Image API
parse_job_postingJob ad → seniority, job function, remote regions, annualised salary, skillsJob Posting Parser
parse_job_postings_batchUp to 20 postings in one callJob Posting Parser
parse_resumeResume (text, or a local PDF / DOCX / TXT file) → structured JSONResume Parser + Job Match
match_resume_to_job0–100 fit score with a breakdown and missing skillsResume Parser + Job Match
rate_matchesRatings from match results: OpenSkill, Glicko-2 or Elo; 1v1, teams, free-for-allsSkill Rating API
predict_matchWin probability and match quality for a matchupSkill Rating API
list_rating_algorithmsSupported algorithms and their parametersSkill Rating API

Setup

  1. Get a RapidAPI key and subscribe (free plans available) to the APIs you want, from each API's page linked above.
  2. Add the server to your client with your key as RAPIDAPI_KEY.

Claude Code

bash
claude mcp add keith-apis -e RAPIDAPI_KEY=your-key -- npx -y keith-apis-mcp

Claude Desktop, Cursor, Windsurf and other clients (claude_desktop_config.json, .cursor/mcp.json, ...):

json
{  "mcpServers": {    "keith-apis": {      "command": "npx",      "args": ["-y", "keith-apis-mcp"],      "env": { "RAPIDAPI_KEY": "your-key" }    }  }}

Requires Node.js 18 or newer.

Example prompts

  • "Read https://example.com/blog/post as Markdown and summarise it in five bullets."
  • "Make an OG image titled 'Release notes: October' with the light theme and footer example.com."
  • "Parse this job ad and tell me the salary range per year and whether it's open to Europe."
  • "Score my resume at ~/cv.pdf against this job description and list the skills I'm missing."
  • "Here are our league results; rank the players with Glicko-2 and predict next week's final."

Free tools

Try two of the APIs in a browser, with no key:

Privacy

The server runs on your machine and sends each request only to the API it uses, through RapidAPI. The APIs are stateless: inputs, including resumes, are processed and returned, never stored or logged.

FAQ

Which tool should an AI agent use to read a web page? fetch_url_as_markdown. It strips navigation, ads and boilerplate, so the model gets the article text at a fraction of the tokens of raw HTML.

Do I need all five subscriptions? No. Subscribe only to the APIs you use; tools for the others return a clear "not subscribed" error.

Can I use these without MCP? Yes. Each API is a normal REST API on RapidAPI, and each also runs as a pay-per-result Actor on the Apify Store.

License

MIT

来源:README.md,提交 4859aad

工具

11

fetch_url_as_markdown

Web page to Markdown

Fetch a public web page and return its main content as clean Markdown (navigation, ads and boilerplate removed), with the title and metadata. Use it to read an article or docs page for summarising, quoting or RAG. Respects robots.txt.

输入参数url必填max_charsinclude_linksinclude_images

html_to_markdown

HTML to Markdown

Convert HTML you already have into clean Markdown of its main content. Nothing is fetched.

输入参数html必填base_urlmax_charsinclude_linksinclude_images

generate_og_image

Generate Open Graph image

Render a 1200x630 PNG Open Graph (og:image) share image from a title, for link previews on X, LinkedIn, Facebook, Slack and Discord. Returns the image.

输入参数badgethemetitle必填footersubtitle

parse_job_posting

Parse a job posting

Parse a job ad into structured fields: normalized title, seniority, job function, remote type and allowed regions, salary (min/max, currency, annualised), years of experience, skills and flags.

输入参数title必填companylocationdescription

parse_job_postings_batch

Parse job postings (batch)

Parse 1 to 20 job postings in one call; results come back in the same order.

输入参数postings必填

parse_resume

Parse a resume / CV

Parse a resume into structured JSON: contact details, current title, seniority, job function, experience, education and skills. Give either the text or a local file path (PDF with a text layer, DOCX or TXT, max 5 MB; no OCR). Nothing is stored.

输入参数textfile_path

match_resume_to_job

Score a resume against a job

Score how well a resume fits a job posting, 0-100, with a breakdown (skills, seniority, job function, experience, location) and the matched and missing skills.

输入参数job必填resume必填

rate_matches

Rate match results

Compute player skill ratings from match results with OpenSkill, Glicko-2 or Elo. Handles 1v1, teams, free-for-alls and draws. Stateless: pass earlier ratings back in as players to continue.

输入参数paramsmatches必填playersalgorithm

predict_match

Predict a matchup

Predict each team's win probability and the match quality (how even it is) from current ratings.

输入参数teams必填paramsplayersalgorithm

list_rating_algorithms

List rating algorithms

List the supported rating algorithms and their tunable parameters with defaults and ranges.

无需输入参数。

版本历史

1
  1. v0.1.1最新Oct 26, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分