Pick by job
Context7 or a page reader: MCP servers for reading docs
Context7 and page-reading MCP servers compared row by row for a coding agent that needs docs: what each reads, tools, versions, private docs. Checked 2026-11-13.
By Shannon Mcbride, MCPScraper team · Published
This article was drafted with AI assistance from the sources listed below and edited and published by the MCPScraper team. Disclosure: the MCPScraper API, which this article mentions, is this site's own product.
| Criterion | Context7 | Page reader |
|---|---|---|
| Input | Library name, then library ID plus a question | A URL |
| Reaches | Libraries indexed from public GitHub repositories | Any public page the agent can name |
| Tools | 2 | Jina: 12, filterable; MCPScraper API: 2 |
| Versions | Version in the library ID, previousVersions | Whatever version the URL serves |
| Private docs | Private Sources, Pro or Enterprise plan | Public pages only |
A coding agent writes a call, and the call needs today's signature. Two kinds of MCP server answer that. Context7 is index-first: it serves documentation it has already parsed, by library. A page reader is URL-first: it fetches one public page the agent names. Both are small. They fail on different pages. Rows below come from each project's own README and docs, checked on 2026-11-13.
Disclosure: MCPScraper API, this site's own product, appears in the page-reader column. Its MCP server reads one public page per call. It does not render JavaScript, crawl, search or extract structured fields.
Two designs
Context7. Two tools. resolve-library-id takes a library name and the user's question and returns matching Context7 library IDs. query-docs takes an ID such as /vercel/next.js plus the question, with an optional language to rank code examples. The answer is documentation excerpts and code examples from the index, not a page.
Page reader. One URL in, one page out. Jina MCP's read_url returns a web page or PDF as Markdown. MCPScraper API returns one public page as Markdown, text or HTML. Neither knows what a "library" is. The agent supplies the address.
Rubric rows, checked 2026-11-13
| Row | Context7 | Jina MCP (read_url) | MCPScraper API (ours) |
|---|---|---|---|
| Input | Library name, then ID plus question | URL, optional question | URL |
| What it reaches | Libraries in its index | Any public page or PDF | One public page per call |
| How content gets in | Public GitHub repo submitted at context7.com/add-library | Not covered in this check | "Every request fetches the page live; there is no cache." |
| Tools registered | 2 | 12, trimmed with include_tools / exclude_tools | "The MCP server registers 2 tools." |
| Output | Excerpts and code examples for the query | Markdown; passages when a question is passed; max_tokens cap | Markdown, text or HTML |
| Auth | Bearer key optional; free key for higher rate limits | Key optional for read_url; lower rate limits without | Bearer key |
| Versions | /owner/repo/version; previousVersions in context7.json | The version the URL serves | The version the URL serves |
| Private docs | Private Sources; requires a Pro or Enterprise plan | Not covered in this check | Public pages only |
| Failure signal | Unknown ID: check the format, call resolve-library-id first | Blocked pages return their login wall as content, no flag | "Failed fetches cost 0 credits." |
| Code | Client MIT; parsing and crawling engines private | Apache-2.0 | Hosted remote MCP server |
Sources: Context7 README, Adding libraries, Library owners, Troubleshooting, Jina MCP README. The Jina row is covered in more depth in Firecrawl MCP vs Jina MCP.
What gets into the Context7 index
The index row decides most cases, so it gets its own section.
- Source type. The Adding libraries page covers public GitHub repositories. It names the file types it parses:
.md,.mdx,.rst,.txt,.adoc,.htmland.ipynb. PDF and DOCX files are converted to text. - Scope control. A
context7.jsonfile in the repository setsfoldersandexcludeFolders(the exclusions win),rulesfor coding agents, andpreviousVersionsby tag or branch. Withfoldersempty, the whole repository is scanned. - Refresh. Automatic, based on popularity, per the Adding libraries page. Owners can trigger a refresh on each push to the default branch with a GitHub Action. No interval is stated.
- Private repositories. Covered by a separate Private Sources guide, which requires a Pro or Enterprise plan.
Read plainly: a library whose docs live in a public GitHub repo, and which someone has submitted, is well served. A docs site built from another source, or a library nobody has submitted, is not in the index until someone adds it.
Docs jobs each one misses
Context7 misses:
- Pages outside a repository: an RFC, a W3C spec, a cloud provider's release-notes page.
- A library that is not indexed yet.
- A docs change made after the last refresh of that library.
A page reader misses:
- The search step. It needs the URL. An agent that guesses a docs URL wrong reads the wrong page or none.
- Version selection. It reads what the URL serves today. Context7 can hold older versions under one ID.
- Pages that only show their text after JavaScript runs, for readers that do not render. MCPScraper API's MCP server is one of those.
- Login walls. Jina's README states a blocked page comes back as content, with no error flag.
Running both
The two designs combine without much cost on the tool row. Context7 registers 2 tools. MCPScraper API registers 2. Jina can be cut to read_url alone with include_tools. A coding agent then has an index for library questions and a reader for everything with a URL.
Context7 also ships a mode with no MCP at all: the README's "CLI + Skills" setup has the agent call ctx7 library and ctx7 docs from the shell. For an agent that already runs shell commands, that is one fewer server.
For the full job-to-category table, see the pick-by-job guide. Client configuration is out of scope here; the remote MCP server setup guide on fetchmcp.net covers Claude Code, Cursor and others.
A short check before you pick
Run it on one library your project uses.
- Ask Context7 for one function's signature. Note the library ID and version it resolved.
- Read the same function's reference page with a page reader.
- Compare the two signatures and the version strings.
- Repeat with a page that is not library docs, such as the project's changelog.
If step 1 fails because the library is not indexed, or step 4 is your common case, a page reader carries the load. If step 2 needs the agent to guess URLs often, the index is worth its two tools.
Where MCPScraper API sits
MCPScraper API is a page reader. It returns one public page as Markdown, text or HTML through REST or a remote MCP server (Streamable HTTP, bearer key). "The MCP server registers 2 tools." "Failed fetches cost 0 credits." It has no index, no library IDs and no version selection; the agent brings the URL. It does not render JavaScript in its MCP server, crawl docs sites, search or extract structured fields. Companies and individual professionals can sign up. Only Business, Enterprise and Custom sign-ups are reviewed before checkout, usually within 1 business day. Tool details are in the MCP docs.
Frequently asked questions
What is the difference between Context7 and a page-reading MCP server?
Context7 answers questions from documentation it has already indexed, mostly from public GitHub repositories, through two tools: resolve-library-id and query-docs. A page reader takes a URL and returns that one page as Markdown or text. Context7 needs the library to be in its index; a page reader needs the agent to know the URL.
Can Context7 read a changelog or an RFC by URL?
Its README describes library documentation and code examples, not reading arbitrary URLs. A page that is not part of an indexed repository, such as a standards document or a vendor's release-notes page, is a job for a page-reading server.
Does Context7 need an API key?
No for basic use. The README marks the bearer key as optional and recommends a free key from the Context7 dashboard for higher rate limits. Private documentation sources require a Pro or Enterprise plan.
Can a coding agent use Context7 and a page reader together?
Yes. Context7 registers 2 tools, and a small page reader such as MCPScraper API also registers 2, so both together add 4 tool definitions. Context7 can also run without MCP through its ctx7 CLI and a skill.
Sources
- Context7 README (GitHub) (Documentation)
- Context7 docs: Adding libraries (Documentation)
- Context7 docs: Library owners and context7.json (Documentation)
- Context7 docs: Troubleshooting (Documentation)
- Jina AI MCP server README (GitHub) (Documentation)