Skip to main content
Glama

web2md-mcp

Web2MD용 MCP 서버 — Claude Desktop, Cursor 또는 모든 MCP 호환 AI 에이전트에서 웹페이지 URL을 깔끔한 Markdown으로 변환합니다.

설치

npm install -g web2md-mcp

또는 npx를 사용하여 직접 실행:

npx web2md-mcp

Related MCP server: octen-mcp

설정

1. API 키 받기

web2md.org에 가입하고 대시보드에서 API 키를 받으세요.

2. Claude Desktop 설정

~/.claude/claude_desktop_config.json에 추가하세요:

{
  "mcpServers": {
    "web2md": {
      "command": "npx",
      "args": ["web2md-mcp"],
      "env": {
        "WEB2MD_API_KEY": "w2m_your_api_key"
      }
    }
  }
}

3. Cursor 설정

~/.cursor/mcp.json에 추가하세요:

{
  "mcpServers": {
    "web2md": {
      "command": "npx",
      "args": ["web2md-mcp"],
      "env": {
        "WEB2MD_API_KEY": "w2m_your_api_key"
      }
    }
  }
}

MCP 도구

convert_url

단일 웹페이지 URL을 Markdown으로 변환합니다.

Input: { url: "https://example.com/article" }
Output: { markdown: "# Article Title\n...", metadata: { title, wordCount, readingTime } }

batch_convert

여러 URL을 한 번에 변환합니다 (최대 50개).

Input: { urls: ["https://...", "https://..."] }
Output: [{ url, markdown, metadata }, ...]

agent_convert / agent_batch_convert

Chrome 확장 프로그램의 실제 브라우저 세션을 통해 URL을 변환합니다 (Agent Bridge 설정 필요). Reddit, 로그인 보호 사이트 및 JS 렌더링 페이지에서 작동합니다.

Agent Bridge

전체 브라우저 기반 변환(안티 봇 우회)에 대해서는 Agent Bridge 문서를 참조하세요.

링크

Available Tools

12 tools
agent_batch_convertA

Batch convert multiple URLs using the Chrome extension via native messaging. Ideal for converting many Reddit threads or JS-rendered pages. URLs are processed sequentially. Requires: Chrome running + Web2MD extension + native host installed.

NameRequiredDescriptionDefault
urlsYesArray of URLs to convert (max 50)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It adds useful context: 'URLs are processed sequentially' (processing order) and 'Requires: Chrome running + Web2MD extension + native host installed' (prerequisites). This goes beyond a bare statement of purpose. However, it does not disclose failure behavior, return values, or potential side effects, which prevents a perfect score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, consisting of three short sentences that deliver essential information without redundancy. It front-loads the main purpose, then adds context (ideal use cases) and prerequisites. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a single parameter with high schema coverage and no output schema, so the description should ideally explain what the tool returns or results in. It does not mention return format or error handling. Given the moderate complexity, some key context is missing, making it adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides a clear description for the sole parameter 'urls' ('Array of URLs to convert (max 50)'), giving 100% schema description coverage. The description adds only an example of suitable URLs ('many Reddit threads or JS-rendered pages') and notes sequential processing, but these do not significantly enhance parameter understanding. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Batch convert multiple URLs using the Chrome extension via native messaging.' It specifies the verb 'convert', the resource (multiple URLs), and the method (Chrome extension/native messaging). It distinguishes from sibling tools by emphasizing 'batch' and 'multiple', making it stand out from single-URL converters like convert_url.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: 'Ideal for converting many Reddit threads or JS-rendered pages.' This implies when to use the tool (large numbers of URLs or JS-heavy content). It also lists prerequisites ('Chrome running + Web2MD extension + native host installed'), which guide the user on necessary conditions. However, it does not explicitly mention alternatives or cases where this tool should be avoided, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

agent_convertA

Convert a URL using the Chrome extension via native messaging. Best for Reddit, login-protected pages, and JS-rendered sites. Requires: Chrome running + Web2MD extension + native host installed.

NameRequiredDescriptionDefault
urlYesThe URL to convert
skillNoSkill name or id to apply — its body is returned alongside the markdown for you to follow

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full burden. It usefully discloses the dependency chain and that this path depends on a browser being live, which an agent needs to know before calling. It says nothing about failure behavior (what happens if the host is missing), latency, or whether the conversion is synchronous, and there is no output schema to cover the return shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with zero padding: purpose first, then site-type guidance, then prerequisites. Every sentence carries information an agent would otherwise have to guess at.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter tool with no annotations and no output schema, the description covers the mechanism and prerequisites adequately. It leaves gaps around outcomes and error conditions — an agent does not know what it receives back or how to react when the native host is unavailable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both `url` and `skill` documented in the schema itself, so the baseline is 3. The description adds no meaning about either parameter — notably it does not explain when to pass `skill` or what a skill body contributes to the call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Convert a URL") plus the mechanism (Chrome extension via native messaging), which is more than a name restatement. It also scopes itself to site types ("Reddit, login-protected pages, and JS-rendered sites"), implicitly distinguishing it from convert_url/bridge_convert_url, but it never names those siblings directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear selection context: use this when the target is Reddit, behind a login, or JS-rendered. It also states hard preconditions (Chrome running, Web2MD extension, native host installed). It stops short of 5 because it never says which sibling to use when those conditions do not hold.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bridge_convert_urlA

Convert a URL using your Chrome extension — required for Reddit, JS-rendered sites, or login-protected pages. The Web2MD extension must be installed and running in Chrome. Auto-discovers your extension ID via your API key.

NameRequiredDescriptionDefault
urlYesThe URL to convert (Reddit, paywalled, JS-rendered, etc.)
extensionIdNoOverride extension ID (auto-discovered if omitted)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of disclosing behavior. It mentions the extension prerequisite and auto-discovery of the extension ID, which is useful. However, it does not disclose what the function returns, error behavior, or side effects, leaving some uncertainty for a conversion tool lacking an output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loaded with the primary action and immediately clarifying the distinctive extension requirement. Every word earns its place with no fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple parameters and no output schema, the description covers the key prerequisites and use cases, but it omits the return format and failure modes. For a conversion tool, the lack of output information is a noticeable gap, making it not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the property descriptions already explain the URL format and extensionId override. The tool description adds redundant mention of auto-discovery but does not provide additional semantic value beyond the schema, matching the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Convert a URL' and the resource 'using your Chrome extension', distinguishing it from sibling convert_url by emphasizing the extension requirement and specific use cases (Reddit, JS-rendered, login-protected pages). This avoids ambiguity with similar tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when this tool is required (Reddit, JS-rendered sites, login-protected pages) and mentions the prerequisite (extension must be installed and running). It does not explicitly exclude alternatives or name them, but the context is clear enough for the agent to select appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convert_fileA

Convert a local document file to clean Markdown. Supports Word (.docx/.doc), PowerPoint (.pptx/.ppt), Excel (.xlsx/.xls), OpenDocument (.odt/.ods/.odp), RTF, EPUB, CSV, and PDF. Tables, headings, lists and footnotes are preserved. Fast, fully local — the file never leaves the machine.

NameRequiredDescriptionDefault
pathYesAbsolute path to the document file on the local filesystem

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description takes full responsibility for behavioral traits. It details performance ('Fast'), security ('fully local - the file never leaves the machine'), and functional quality (preserving tables, headings, lists).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The information is highly condensed and logically ordered: function, capabilities, detailed features, and critical constraint (locality). It achieves maximum information density with minimal waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description is extremely complete. It defines the input scope, output format (clean Markdown), and critical behavioral guarantees (preservation of structure and local operation).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, meaning the input schema is perfectly described. The description does not add semantic meaning to the 'path' parameter beyond the file type and local constraint, meeting the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The purpose is perfectly clear: convert a local document file into 'clean Markdown.' It specifies the exact action and the desired output format, distinguishing it from generic conversion tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly specifies the context of 'local document file' and its 'fully local' nature. This acts as a strong usage guideline, helping the agent choose this tool over remote or API-based conversion siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convert_urlA

Convert a webpage URL to clean Markdown. Returns the Markdown content and metadata (title, word count, reading time).

NameRequiredDescriptionDefault
urlYesThe URL of the webpage to convert
includeLinksNoInclude hyperlinks (default: true)
includeImagesNoInclude image references (default: true)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the output format (Markdown and metadata) which is helpful, but it does not mention that the tool fetches the webpage over the network, potential delays, or any failure modes. The description is adequate but lacks deeper behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, with the primary action front-loaded. It avoids repetition and every phrase adds value: the verb, the resource, the output format, and the specific metadata returned. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity and lack of output schema, the description covers the core behavior (conversion to Markdown) and return metadata. It does not explain tool selection among conversion-related siblings, which would improve completeness, but for a simple conversion tool it is mostly adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all parameters with descriptions (100% coverage), including the URL format and boolean toggles for links and images. The description adds some context by mentioning metadata like 'title, word count, reading time' but does not clarify how 'includeLinks' or 'includeImages' affect the output. Baseline of 3 is appropriate since schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Convert' with a clear resource ('a webpage URL') and outcome ('to clean Markdown'), and further specifies the return value ('Markdown content and metadata'). It distinguishes itself from sibling tools like 'semantic_search' by clearly stating its conversion purpose, though not explicitly comparing to other conversion tools, it is still specific enough.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states what the tool does but gives no guidance on when to use it versus alternatives. With siblings like 'bridge_convert_url', 'agent_convert', and 'agent_batch_convert', there is no mention of selection criteria, prerequisites, or scenarios where this tool is preferred. This is a clear gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_conversionA

[deprecated: use search_library/get_library_items] Retrieve the full Markdown content of a previously saved conversion by its ID.

NameRequiredDescriptionDefault
idYesThe conversion ID

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full burden; it does disclose the deprecation status and that the return is full Markdown content. It says nothing about permissions, scope of access, or whether the content is current, so coverage is partial for a read tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence with the deprecation warning front-loaded and the purpose second, which is the correct priority order for a deprecated tool. Nothing in it is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with no output schema, the description covers purpose, return type, and deprecation routing, which is enough to call it correctly. The only minor gap is that it doesn't indicate what happens if the ID is not found.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single `id` parameter is already documented as "The conversion ID". The description's phrase "by its ID" restates the schema without adding format, source, or validity details, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Retrieve the full Markdown content of a previously saved conversion") plus the lookup key ("by its ID"), which no sibling tool does. The bracketed deprecation notice up front further disambiguates it from search_library and get_library_items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly marks itself deprecated and names the two replacement tools to use instead, giving an unambiguous when-not-to-use rule. An agent reading this knows to route to search_library or get_library_items rather than calling this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_library_itemsA

Fetch full markdown content for library items by id (max 20 per call). Use search_library first to find ids. Responses can be very large — for long pages, batch 5 or fewer ids per call.

NameRequiredDescriptionDefault
idsYesItem ids to fetch (max 20)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the disclosure burden and does well: it states the 20-id hard cap, warns that responses can be very large, and prescribes smaller batches for long pages — operational behavior that is not inferable from the schema. It stops short of saying what happens with invalid or missing ids, or whether results are returned in the requested order.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core action, then the prerequisite, then the size caveat. Every sentence carries distinct operational information with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, no-output-schema fetch tool, the description covers what is returned ('full markdown content'), the input cap, and the practical size pitfall. Minor gaps remain around failure modes for unknown ids and result ordering, but nothing essential to correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single 'ids' parameter already documents 'max 20', so the description's per-call limit largely restates the schema. The one bit of added meaning is that ids should originate from search_library, which is a sourcing hint rather than array-format guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Fetch full markdown content for library items by id') and implicitly distinguishes itself from the discovery tool by naming search_library as the id source. An agent can tell immediately this is a retrieval-by-id tool, not a search tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit prerequisite and alternative: 'Use search_library first to find ids,' which routes the agent away from guessing ids and toward the sibling search tool. It also gives a concrete usage rule for the batching case ('for long pages, batch 5 or fewer ids per call').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_skillA

Fetch the full content of a single Web2MD skill by id (or name). Returns its name, description, and complete SKILL.md body. Use list_skills first to find ids.

NameRequiredDescriptionDefault
idYesSkill id (or name) to fetch

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden: it makes the read-only nature evident via "Fetch" and, importantly, discloses the return shape (name, description, complete SKILL.md body) in the absence of an output schema. It does not address behavior on a missing or invalid id, which is the main remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each earning its place: purpose first, return contents second, discovery prerequisite last. No redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter read tool this covers purpose, return contents, and how to obtain valid ids. Only failure-mode behavior (unknown id) is unaddressed, a minor gap given the tool's low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter with 100% schema description coverage that already documents it as "Skill id (or name) to fetch." The description repeats the id-or-name equivalently without adding format, resolution rules (what happens on an ambiguous name), or examples, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ("Fetch the full content of a single Web2MD skill") plus the exact lookup key (id or name), and explicitly contrasts with list_skills, so an agent can separate it from the discovery sibling without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use list_skills first to find ids" gives a clear workflow precondition and names the alternative tool for discovery. It stops short of stating when not to use this tool (e.g. fetching many skills at once), which keeps it from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_skillsA

List the skills saved in your Web2MD cloud account. Returns a compact list (id, name, description). Use get_skill to fetch the full SKILL.md body of one.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full burden. It does disclose the return shape (a compact list of id, name, description) and that results are account-scoped ('your Web2MD cloud account'), which is useful behavioral context. It says nothing about pagination/limits on a potentially unbounded list, ordering, or whether it is read-only, which leaves real gaps for a no-annotation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with what the tool returns before the sibling cross-reference. Every sentence carries a distinct piece of information (purpose, return shape, alternative) with no repetition of the title or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter list tool with no output schema, the description covers purpose, return fields, and the sibling alternative, which is enough to invoke it correctly. The only missing element is how large/complete the returned list is (pagination or truncation behavior), a minor gap given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate — baseline 4 applies. The mention of id/name/description refers to the response, not inputs, and does not mislead about call signature.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('List the skills saved in your Web2MD cloud account') and immediately scopes the output ('Returns a compact list (id, name, description)'). It explicitly distinguishes itself from the sibling get_skill, so an agent can pick between them without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It routes the agent to the alternative clearly: 'Use get_skill to fetch the full SKILL.md body of one,' which implicitly tells the agent not to use this tool for full content. What it lacks is explicit when-not-to-use guidance, such as whether it is scoped to a workspace or paginated, but the core selection condition is stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_libraryA

Search your Web2MD library (saved conversions) by keyword (matches title and full page content) and/or tag, newest first. Returns item metadata: id, title, url, date, tags. Use get_library_items to fetch full markdown.

NameRequiredDescriptionDefault
tagNoFilter by tag
limitNoMax results (default 20, max 100)
queryNoKeyword search over title and full page content
sinceNoOnly items created on/after this ISO date (YYYY-MM-DD)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the result ordering ('newest first'), the exact returned fields ('id, title, url, date, tags'), and that matching spans title plus full page content. It omits safety/permission context and says nothing about truncation or how limit interacts with result counts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the search scope before the redirect to get_library_items. No filler, no repetition of schema defaults.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter read tool with no output schema, the description supplies the return shape and sort order, which is what an agent most needs. It leaves one gap: with zero required parameters, it never says what an unfiltered call returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter (tag, limit, query, since) is already documented in the schema. The description adds only the 'and/or' combinability and the content-vs-title match scope, which is marginal value on top of a fully annotated schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search your Web2MD library (saved conversions)') plus the matching scope ('keyword ... and/or tag, newest first'), which is enough to tell it apart from semantic_search and get_library_items without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent onward: 'Use get_library_items to fetch full markdown', making clear this tool returns metadata only. It stops short of contrasting with semantic_search, so the choice between keyword and semantic retrieval is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sync_libraryA

Sync your Web2MD library to a local directory as markdown files (organized by tag, with frontmatter). Incremental by default; keeps state in /.web2md-sync.json.

NameRequiredDescriptionDefault
dirYesAbsolute path of the target directory
tagNoOnly sync items with this tag
fullNoIgnore incremental cursor and re-scan full history

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations supplied, the description carries the full burden. It does disclose key side effects: writes markdown files into a local directory, organizes by tag with frontmatter, and keeps cursor state in <dir>/.web2md-sync.json. It omits what happens to previously synced files when library items are deleted, permission/auth requirements, and whether any report is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences with the core action and format front-loaded, and the incremental/state-file behavior immediately after. No filler, though the parenthetical could be tightened slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no annotations, so the description must convey behavior, and it does cover destination format, incremental state, and the override flag. Still missing is what happens to orphaned files and any returned summary, which matters for a tool that mutates a local directory.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter is already documented in the schema. The description only adds the notion that syncing is incremental by default, which gives context for the full flag, but it does not explain tag semantics or path constraints beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (sync) and resource (Web2MD library) plus the output form: markdown files organized by tag with frontmatter. It is clearly distinct from read-only siblings like search_library and get_library_items, but never names them, so the differentiation is implicit rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Incremental by default' implies the normal use case and hints that the full flag is the exception, but there is no explicit when-to-use/when-not guidance and no routing away from siblings such as search_library or get_library_items for read-only needs.

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.

  1. 7 tool updates
    • Changedagent_convert1 field changed
      • addedInput schema / properties / skill
        Added value: +{
        +  "description": "Skill name or id to apply — its body is returned alongside the markdown for you to follow",
        +  "type": "string"
        +}
    • Addedconvert_file
    • Addedget_library_items
    • Addedget_skill
    • Addedlist_skills
    • Addedsearch_library
    • Addedsync_library
  2. 6 tool updatesv0.8.1
    • First observedagent_batch_convert
    • First observedagent_convert
    • First observedbridge_convert_url
    • First observedconvert_url
    • First observedget_conversion
    • First observedsemantic_search

TDQS

A3.8/5.0

Scored across 12 tools

Disambiguation3/5

Four tools (convert_url, agent_convert, bridge_convert_url, agent_batch_convert) all convert a URL to Markdown and differ mainly in transport (plain fetch, Chrome extension, native messaging, batch). The descriptions do hint at when to use each, but an agent could easily pick the wrong one, especially between bridge_convert_url and agent_convert, which both require the extension. Two deprecated tools (semantic_search, get_conversion) overlap with search_library/get_library_items and add confusion.

Naming Consistency4/5

All names are snake_case with a recognizable verb_noun or noun_verb shape (convert_file, convert_url, search_library, get_library_items, sync_library). Minor inconsistency: agent_convert / agent_batch_convert / bridge_convert_url use differing transport prefixes instead of a uniform verb pattern, and get_conversion vs get_library_items use different resource nouns for similar concepts.

Tool Count4/5

Twelve tools is well within a healthy range for a conversion-plus-library server. However, two are explicitly deprecated and still exposed, so the effective surface is about 10, which is fine but slightly inflated by legacy entries.

Completeness4/5

The core lifecycle is covered: file conversion, URL conversion (direct, extension, batch), library search/fetch, local sync, and skills retrieval. Gaps are minor: no way to delete or tag/untag library items, no single-item metadata fetch distinct from bulk retrieval, and deprecated tools linger rather than being removed, but agents can work around all of these.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers