webnovel-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@webnovel-mcpFind 'Solo Leveling' and show me the first chapter."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
WebNovel MCP
MCP server that reads web novels from webnovel.com. Search by title, browse chapters, read content — all through MCP tools.
Install
uv add fastmcp cloudscraper beautifulsoup4Or clone and install:
git clone https://github.com/minhmc2007/WebNovel-MCP.git
cd WebNovel-MCP
uv syncRelated MCP server: Web Fetch MCP Server
Configure
Add to your MCP client config (e.g. claude_desktop_config.json):
{
"mcpServers": {
"webnovel": {
"command": "uv",
"args": ["run", "--directory", "/path/to/WebNovel-MCP", "webnovel-mcp"]
}
}
}Tools
Tool | Description |
| Search by keyword. Returns 20 results per page with bookId, title, author, genre, rating. |
| Quick lookup — returns top match with bookId and next-step instructions. |
| Full metadata: title, author, description, chapter count, first chapter ID. |
| Table of contents with chapter IDs and titles. |
| Full chapter text. |
Usage
Typical flow:
search_novels("solo leveling")— find the novelget_chapter_list(book_id)— pick a chapterread_chapter(book_id, chapter_id)— read it
Or skip to get_novel_by_name("solo leveling") for the bookId directly.
How It Works
┌─────────────────────────────────────────────────────┐
│ MCP Client │
│ (Claude, Cursor, etc.) │
└──────────────────────┬──────────────────────────────┘
│ stdio (JSON-RPC)
▼
┌─────────────────────────────────────────────────────┐
│ webnovel-mcp server │
│ │
│ ┌───────────┐ ┌────────────┐ ┌───────────────┐ │
│ │ search │ │ novel │ │ chapter │ │
│ │ _novels │ │ _info │ │ _list / │ │
│ │ │ │ │ │ read_chapter│ │
│ └─────┬─────┘ └─────┬──────┘ └──────┬────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌─────────────────────────────────────────────┐ │
│ │ cloudscraper session │ │
│ │ (bypasses Cloudflare, manages cookies) │ │
│ └─────────────────────┬───────────────────────┘ │
└────────────────────────┼────────────────────────────┘
│ HTTPS
▼
┌─────────────────────────────────────────────────────┐
│ webnovel.com │
│ │
│ /go/pcm/search/result ← search API (JSON) │
│ /book/{id}/catalog ← catalog page (HTML) │
│ /book/{id}/{chapter_id} ← chapter page (HTML) │
└─────────────────────────────────────────────────────┘Search hits the JSON API at /go/pcm/search/result with a CSRF token. Returns structured data — bookId, title, author, genre, rating.
Chapter list scrapes the catalog HTML page. Chapter IDs are extracted from <a href> tags (pattern: ..._chapterId). No encrypted API needed.
Chapter reading scrapes the chapter HTML page. Content lives in .cha-words elements as <p> tags. Free chapters only — locked chapters return a message.
All requests go through cloudscraper which handles Cloudflare's bot challenge automatically.
Limits
Free chapters only. VIP/locked chapters behind paywall.
Rate limiting is Cloudflare's call, not the API's. Slow down if you get blocked.
No authentication — works without login for free content.
License
MIT
Available Tools
5 toolsget_chapter_listGet Chapter ListA
Get the full table of contents for a novel.
| Name | Required | Description | Default |
|---|---|---|---|
| book_id | Yes | The novel's book ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that it retrieves the full table of contents but gives no information about read-only guarantees, failure behavior, authentication requirements, or whether the result includes chapter IDs or only titles. The description is too sparse to illuminate any behavioral traits beyond the bare operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence that is immediately informative and free of fluff. It is front-loaded with the core action and object, though it is so terse that it misses opportunities to add routing or edge-case context without bloating.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a very simple tool with one parameter, 100% schema coverage, and an output schema, the description is sufficiently complete for selection and invocation. The main missing element is guidance on how to obtain book_id (e.g., via search_novels), but the existing structure already covers the mechanics of the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents the only parameter, book_id, with a reasonable description, and the tool description does not contradict or add to it. Since schema_description_coverage is 100%, the baseline of 3 is appropriate; the description offers no extra semantic meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a clear resource ('the full table of contents for a novel'), which directly distinguishes it from siblings like read_chapter (a single chapter), get_novel_info (general novel metadata), search_novels, and get_novel_by_name. An agent can unambiguously tell what this tool returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the description and name: when the agent needs a complete table of contents for a given novel. However, it provides no explicit when-to-use or when-not-to-use guidance, and no alternatives are named or contrasted. The context is clear but exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_novel_by_nameGet Novel By NameB
Quick search: find a novel by name and return book_id with first chapter.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Novel name to search for |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of explaining behavior. It does disclose the return contents (book_id and first chapter) and implies a read/search operation, but it does not clarify matching semantics such as exact name, partial match, or case sensitivity, nor does it mention failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the 'Quick search' purpose and packs the key return information into minimal words. There is no filler or redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with an output schema available, the description covers the core invocation and return behavior adequately. The main gap is the lack of guidance on how this differs from sibling search tools, but the low complexity reduces the need for extensive context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the parameter is already described as 'Novel name to search for'. The description's 'by name' phrasing adds little beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds a novel by name and returns a book_id along with the first chapter. It is specific about the resource and outcome, though it does not explicitly differentiate itself from the sibling search_novels tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Quick search' hints at a simple lookup, but there is no explicit guidance on when to use this tool versus search_novels or get_novel_info. No alternatives or exclusions are mentioned, leaving the routing decision to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_novel_infoGet Novel InfoB
Get detailed info about a novel (title, author, chapter count, first chapter).
| Name | Required | Description | Default |
|---|---|---|---|
| book_id | Yes | The novel's book ID (from search results) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of explaining behavior. It does state the operation is a read ('Get') and lists the data contained in the result, but it does not mention failure behavior, permissions, or whether this is strictly read-only beyond the verb itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the action and immediately lists the key returned fields. There is no redundant wording or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with an output schema, the mechanics are largely covered. However, the description misses guidance on how this tool relates to get_novel_by_name and search_novels, which is an important contextual gap for tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the only parameter, book_id, is already documented as 'The novel's book ID (from search results)'. The description adds little parameter-specific meaning, but with full schema coverage the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and resource ('novel') and lists specific details returned: title, author, chapter count, first chapter. It is understandable, though it does not explicitly differentiate from the sibling get_novel_by_name, which could plausibly return the same kind of information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to use this tool versus siblings like search_novels, get_chapter_list, or get_novel_by_name. The schema hints that book_id comes from search results, but the description itself provides no workflow or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_chapterRead ChapterA
Read the full content of a chapter.
| Name | Required | Description | Default |
|---|---|---|---|
| book_id | Yes | The novel's book ID | |
| chapter_id | Yes | The chapter's chapter ID (from chapter list) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. 'Read the full content' strongly implies a non-destructive, retrieval operation, which adds some behavioral transparency. However, it does not mention response characteristics, auth or access constraints, or any edge-case behavior like locked or unavailable chapters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no filler, front-loading the verb and object. It is appropriately sized for a simple tool with two well-documented parameters and an output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and the output schema exists, but the description leaves sibling differentiation to inference. An agent might confuse `read_chapter` with `get_chapter_list` without further guidance. The description is minimally adequate but has a clear gap: no explicit routeing among the five sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both `book_id` and `chapter_id` already explained in the input schema. The description itself adds no parameter-level detail, so the baseline of 3 is appropriate: the schema does the work, and the description does not conflict or expand on it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read') and a specific resource ('a chapter') and is not a tautology. It clearly tells the agent this tool retrieves full chapter content, though it does not explicitly differentiate itself from sibling tools like get_chapter_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied: if you need the full content of a chapter, this is the tool. There is no explicit statement about when to prefer this over get_chapter_list or get_novel_info, and no exclusions are mentioned, so the guidance is present only by inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_novelsSearch NovelsB
Search for web novels by title or keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1, 20 results per page) | |
| query | Yes | Search keyword (e.g. "martial peak", "solo leveling") |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. 'Search' implies a read-only, non-destructive operation, which is transparent, but the description does not mention pagination of results or output format. The output schema covers return shape, and the page parameter is described in the schema, so this does not significantly harm usability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It states the action, target, and criteria in a clear order, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and has an output schema, so the description does not need to explain return values. However, it lacks any relationship to sibling tools, particularly get_novel_by_name, which appears to overlap in purpose. An agent cannot tell whether this search returns partial matches or whether get_novel_by_name is for exact names, leaving a gap in contextual completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented. The description adds a small clarification that 'query' can be a title or a keyword, reinforcing the schema's example, but it does not add meaning to the 'page' parameter beyond the existing schema description. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('search') and identifies the resource ('web novels') and the filter criteria ('title or keyword'). It clearly states the core function and distinguishes from content-retrieval tools like read_chapter, though it does not explicitly contrast with get_novel_by_name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The description does not mention that get_novel_by_name might be more appropriate for exact-name lookups, nor any conditions such as exact matching. An agent must infer the use case from the tool name and schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v0.1.0- First observed
get_chapter_list - First observed
get_novel_by_name - First observed
get_novel_info - First observed
read_chapter - First observed
search_novels
TDQS
search_novels and get_novel_by_name overlap heavily, as both find novels by name/title. get_novel_by_name also returns the first chapter, blurring the boundary with get_novel_info and read_chapter.
Most tools follow a clear verb_noun pattern like search_novels, get_novel_info, and read_chapter. get_novel_by_name is slightly less consistent because of its prepositional modifier, but it remains readable and predictable.
Five tools is well-scoped for a web novel browsing and reading server. Each tool covers a distinct step in the discovery-to-reading workflow without unnecessary bloat.
The core workflow is covered: search, get novel details, list chapters, and read chapter content. Minor conveniences like getting the next chapter or latest updates are absent, but the main reading experience has no dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Chinese web novel MCP: 36 tools (outline, prose, review, coach, KD export). BYOK, no API key.
AI-native fiction platform. Any AI can register, read, search and co-author novels via MCP or REST.
Gutendex MCP — wraps Gutendex API for Project Gutenberg books (free, no auth)
One MCP for the Web. Easily search, crawl, navigate, and extract websites without getting blocked.…
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables fetching and extracting text from URLs, searching the web via DuckDuckGo and Yandex, and retrieving page links through MCP tools.2MIT
- AlicenseAqualityDmaintenanceProvides tools to fetch web content in HTML, JSON, text, or Markdown formats via MCP. Supports custom headers, length limits, and start index.4MIT
- AlicenseAqualityBmaintenanceProvides Google search, URL extraction, and academic paper inline extraction without API keys, enabling search and content retrieval from a single MCP server.52,016MIT
- AlicenseAqualityBmaintenanceProvides MCP tools for querying and summarizing Northwest A&F University campus information, including trending QQ channel posts, official website notices/events/competitions, and cross-site custom searches with Markdown output and source links.4MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/minhmc2007/WebNovel-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server