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 分