MCP Fetch Server
Fetches URLs from the internet and converts web content to markdown format for easier LLM analysis. Supports chunked reading, raw HTML extraction, and content length control.
Version: 2025.4.7 (locked 2026-01-20)
Tools
| Tool | Description | |------|-------------| | fetch | Fetches a URL from the internet and optionally extracts its contents as markdown |
⚠️ Always check tools/ for exact parameter names before calling.
Prompts
| Prompt | Description | |--------|-------------| | fetch | Fetch a URL and extract its contents as markdown |
See prompts.md for details.
Usage
Quick Start
⚠️ Before calling any tool, read its documentation in tools/ to get the exact parameter names.
# List available tools and their schemas
node ./scripts/mcp-caller.mjs list
# Then check tools/<tool-name>.md for parameter details
CLI (Single Call)
Run from this skill directory:
node ./scripts/mcp-caller.mjs call <tool> '<json-args>'
node ./scripts/mcp-caller.mjs resource <uri>
node ./scripts/mcp-caller.mjs prompt <name> '<json-args>'
node ./scripts/mcp-caller.mjs list
Example:
node ./scripts/mcp-caller.mjs call fetch '{"url": "https://example.com"}'
Programmatic (Batch/Parallel)
For batch operations or complex logic, use the API module:
// example.mjs - Run from this skill directory
import { callTool, listTools } from './scripts/api.mjs';
// First, check available tools and their schemas
const tools = await listTools();
console.log(tools.map(t => ({ name: t.name, params: Object.keys(t.inputSchema?.properties || {}) })));
// Then call with correct parameters (see tools/*.md for details)
const result = await callTool('toolName', { /* check tools/toolName.md for params */ });
// Parallel calls
const results = await Promise.all([
callTool('tool1', { /* params from tools/tool1.md */ }),
callTool('tool2', { /* params from tools/tool2.md */ }),
]);
console.log(JSON.stringify(results, null, 2));
Available API functions:
callTool(name, args)- Call a toollistTools()- List available tools (includes inputSchema with parameter info)readResource(uri)- Read a resourcelistResources()- List resourcesgetPrompt(name, args)- Get a promptlistPrompts()- List promptsclose()- Close connection (optional cleanup)
Error Handling
If a tool call fails (e.g., "method not found", parameter changes):
- Try to complete the task using other available tools
- Inform user: "This skill may be outdated - MCP server API has changed"
- User needs to run mcp-skill-generator to update this skill
Do not retry failed calls repeatedly - prioritize finding alternatives.
Updating
To update this skill with newer MCP server version:
- Run mcp-skill-generator
- Provide this skill's path for update