{
  "markdown": "# defuddle-fetch-mcp-server\n\nA Model Context Protocol server that provides web content fetching capabilities using the [Defuddle](https://github.com/kepano/defuddle) library. This server enables LLMs to retrieve and process content from web pages, automatically cleaning up the HTML and converting it to clean, readable markdown.\n\nThis is a drop-in replacement for the [default fetch MCP server](https://github.com/modelcontextprotocol/servers/tree/main/src/fetch) that uses [Readability](https://github.com/mozilla/readability). This generally provides better results for most modern webpages.\n\n## Comparison\n\n(using [this issue](https://github.com/kepano/defuddle/issues/61))\n\n| Default Fetch MCP | Defuddle Fetch MCP |\n| --- | --- |\n| Contents of https://github.com/kepano/defuddle/issues/61:<br><br>The [MCP protocol](https://modelcontextprotocol.io/introduction) is a standard for giving AI models access to tools.<br><br>There's [a default fetch MCP server](https://github.com/modelcontextprotocol/servers/tree/main/src/fetch), which enables AI models to fetch content from websites. This uses Readability.js which is a bit meh, particularly at navigating GitHub (which I try to use it for a lot). I appreciate there is the GitHub MCP, but a more general web browsing solution seems particularly nice here.<br><br>Defuddle seems significantly better than Readability.js at processing pages nicely, and the model of having custom extractors to make particular sites work well seems great.<br><br>It'd be neat if someone built a defuddle-based fetch MCP server. I might get round to this later if I get frustrated enough with the default fetch MCP 😄 | # idea: defuddle-based fetch MCP server · Issue #61 · kepano/defuddle<br><br>**URL**: https://github.com/kepano/defuddle/issues/61<br><br>Open<br><br>#61<br><br>`[![@domdomegg](https://avatars.githubusercontent.com/u/4953590?u=c9e631d8135b93c7631d88f2e4bcb6b95e000264&v=4&size=80)](https://github.com/domdomegg)`<br><br>## Description<br><br>The [MCP protocol](https://modelcontextprotocol.io/introduction) is a standard for giving AI models access to tools.<br><br>There's [a default fetch MCP server](https://github.com/modelcontextprotocol/servers/tree/main/src/fetch), which enables AI models to fetch content from websites. This uses Readability.js which is a bit meh, particularly at navigating GitHub (which I try to use it for a lot). I appreciate there is the GitHub MCP, but a more general web browsing solution seems particularly nice here.<br><br>Defuddle seems significantly better than Readability.js at processing pages nicely, and the model of having custom extractors to make particular sites work well seems great.<br><br>It'd be neat if someone built a defuddle-based fetch MCP server. I might get round to this later if I get frustrated enough with the default fetch MCP 😄 |\n\n## Features\n\n- **Better Content Extraction**: Uses Defuddle to remove webpage clutter and extract main content: while keeping things like the page title and key metadata\n- **Flexible Output**: Supports both markdown and raw HTML output\n- **Chunked Reading**: Supports pagination with `start_index` and `max_length` parameters\n- **Rich Metadata**: Extracts title, author, publication date, word count, and more\n\n## Installation\n\nFollow the instructions on [install-mcp](https://adamjones.me/install-mcp/?config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImRlZnVkZGxlLWZldGNoLW1jcC1zZXJ2ZXIiXSwibmFtZSI6ImRlZnVkZGxlLWZldGNoIn0=), which generates the right config for your MCP client (Claude Code, Claude Desktop, Cursor, Cline, VS Code, and more).\n\n## Components\n\n### Tools\n\n- **fetch**\n  - Fetches a URL from the internet and extracts its contents as clean, markdown text using Defuddle\n  - Input parameters:\n    - `url` (string, required): URL to fetch\n    - `max_length` (number, optional): Maximum number of characters to return. Defaults to 5000.\n    - `start_index` (number, optional): Start content from this character index. Defaults to 0.\n    - `raw` (boolean, optional): Get raw content without markdown conversion. Defaults to false.\n  - Returns cleaned content with metadata including title, author, publication date, word count, domain, and processing time\n\n## Contributing\n\nPull requests are welcomed on GitHub! To get started:\n\n1. Install Git and Node.js\n2. Clone the repository\n3. Install dependencies with `npm install`\n4. Run `npm run test` to run tests\n5. Build with `npm run build`\n\nTo add it to Claude Desktop, run `npm run build` then add the following configuration to your `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"defuddle-fetch\": {\n      \"command\": \"node\",\n      \"args\": [\n        \"/path/to/clone/defuddle-fetch-mcp-server/dist/index.js\"\n      ]\n    }\n  }\n}\n```\n\n## Releases\n\nVersions follow the [semantic versioning spec](https://semver.org/).\n\nTo release:\n\n1. Use `npm version <major | minor | patch>` to bump the version\n2. Run `git push --follow-tags` to push with tags\n3. Wait for GitHub Actions to publish to the NPM registry.\n",
  "bytes": 5030,
  "sha": "748c71105d2c33250e3459018d0efe2268229dd4c33996624b6094290ee8826b",
  "repo_slug": "domdomegg/defuddle-fetch-mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_domdomegg_defuddle_fetch_mcp_s_4dd95d87/readme"
}