Microlink
OfficialProvides tools to run Lighthouse performance audits on URLs, returning audit results and technology detection.
Provides tools to convert web pages to Markdown format for further processing.
Provides tools to extract playable video sources from YouTube URLs, and other video sources.
Microlink MCP
A Model Context Protocol (MCP) server that exposes Microlink API capabilities to AI assistants. Runs over stdio transport, making it compatible with Claude Desktop, VS Code, Cursor, and any other MCP-capable client.
It turns natural-language requests into Microlink calls: take screenshots, generate PDFs, extract metadata or readable text, detect video/audio sources, run Lighthouse audits, and scrape custom fields with CSS selectors, all without leaving the assistant.
See the MCP integration page for a guided walkthrough, or the @microlink/mcp npm package.
Table of contents
Related MCP server: Junipr MCP Server
Install
Use the published package (recommended)
No local installation is required. Run directly with npx:
npx -y @microlink/mcpOptional: install globally
npm install -g @microlink/mcp
microlink-mcpDuring installation, the package prints a console reminder about the free Microlink plan (50 requests/day) and where to get an API key for higher/unlimited usage at microlink.io/#pricing.
MCP client configuration
Claude Desktop
Edit ~/Library/Application\ Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"microlink": {
"command": "npx",
"args": ["-y", "@microlink/mcp"],
"env": {
"MICROLINK_API_KEY": "YOUR_MICROLINK_API_KEY"
}
}
}
}VS Code / Codex
Published package:
{
"mcpServers": {
"microlink": {
"command": "npx",
"args": ["-y", "@microlink/mcp"],
"env": {
"MICROLINK_API_KEY": "YOUR_MICROLINK_API_KEY"
}
}
}
}Local repository:
{
"mcpServers": {
"microlink": {
"command": "node",
"args": ["/absolute/path/to/mcp/src/index.js"],
"env": {
"MICROLINK_API_KEY": "YOUR_MICROLINK_API_KEY"
}
}
}
}Cursor
Add to your Cursor MCP settings (.cursor/mcp.json):
{
"mcpServers": {
"microlink": {
"command": "npx",
"args": ["-y", "@microlink/mcp"],
"env": {
"MICROLINK_API_KEY": "YOUR_MICROLINK_API_KEY"
}
}
}
}Usage
Once the server is configured, talk to your assistant in plain language. It picks the right tool and parameters for you:
"Take a full-page screenshot of https://example.com in dark mode." →
microlink_screenshot"Generate a Letter-size PDF of https://example.com." →
microlink_pdf"Get the title, description, and image for https://example.com." →
microlink_meta"Convert https://news.ycombinator.com to Markdown." →
microlink_markdown"Find the playable video in this YouTube link." →
microlink_video"Run a Lighthouse performance audit on https://example.com." →
microlink_insights"Scrape every article title from this page using the
.titleselector." →microlink_extractwithdata
Tools can also be invoked directly. Every tool takes a url and returns structuredContent (see Response shape):
{
"name": "microlink_screenshot",
"arguments": {
"url": "https://example.com",
"screenshot": { "fullPage": true, "type": "png" },
"colorScheme": "dark"
}
}Tools
Capabilities at a glance
microlink_extract: metadata extraction + custom scraping rules (data) + multi-capability composition in one call.microlink_screenshot: screenshot generation with element/full-page modes and browser controls.microlink_pdf: PDF generation with page/layout controls.microlink_video: playable video source extraction.microlink_audio: playable audio source extraction.microlink_insights: Lighthouse + technology detection.microlink_meta: normalized metadata extraction with include/exclude config.microlink_palette: image palette and contrast color extraction.microlink_markdown: URL to Markdown conversion.microlink_text: URL to plain text conversion.Cross-cutting request capabilities: device/viewport emulation, click/scroll actions, JS/CSS injection, modules, wait conditions, cache controls (
ttl,staleTtl,force), retries/timeouts, media mode, headers/proxy, and endpoint/auth routing.
Response shape
All tools (
microlink_extract,microlink_screenshot,microlink_pdf,microlink_video,microlink_audio,microlink_insights,microlink_meta,microlink_palette,microlink_markdown,microlink_text) returnstructuredContentwith:endpoint,requestUrl,finalUrl,statusCode,responseHeaders,microlinkmicrolinkpreserves Microlink API JSend payload (status,data, and error fields likecode,id,message,more,report).responseHeadersincludes key cache/rate headers (such asx-cache-status,cf-cache-status,cache-control,x-rate-limit-*) when present.MCP
isErroris set when transport fails or whenmicrolink.status !== "success".
Parameters labeled PRO in the official Microlink docs require a paid plan.
For compatibility with some MCP clients:
boolean parameters also accept the strings
"true"and"false"and are normalized before validation.parameters that accept objects also accept JSON stringified objects (for example,
screenshot: "{\"overlay\":{\"browser\":\"dark\"}}").
microlink_extract
Extract structured metadata from any public URL. Returns normalized fields (title, description, author, publisher, date, image, logo, lang, url) plus any custom fields defined via CSS selectors.
Supports combining multiple features in a single request: screenshot, PDF, video, audio, insights, and palette.
For screenshot, pdf, and insights, use true for defaults or an object for options. Empty objects ({}) are treated as true.
Key parameters:
Parameter | Type | Description |
|
| The URL to extract data from (required) |
|
| Microlink API key (optional; see Authentication) |
|
| Custom CSS-selector extraction rules |
|
| Include/exclude normalized metadata fields |
|
| Microlink embed mode |
|
| Include iframe payload options |
|
| Custom Microlink function hook |
|
| Enable ping checks |
|
| Capture a screenshot |
|
| Generate a PDF |
|
| Extract video source |
|
| Extract audio source |
|
| Run Lighthouse / tech detection |
|
| Extract color palette |
|
| Enable ad blocking |
|
| Enable/disable animations |
|
| Emulate a device (e.g. |
|
| Preferred color scheme |
|
| Custom viewport dimensions |
|
| CSS selector(s) to click before capture |
|
| CSS selector to scroll to |
|
| Toggle JavaScript execution |
|
| Browser module(s) to inject |
|
| JavaScript to inject |
|
| CSS to inject |
|
| CSS media mode |
|
| Prerender strategy |
|
| Proxy configuration (PRO) |
|
| Retry count |
|
| Cache TTL |
|
| Stale cache TTL policy (PRO) |
|
| Bypass cache |
|
| Request timeout |
|
| Custom HTTP headers (PRO) |
|
| Preferred output filename (PRO) |
|
| Response filter |
|
| Wait for element before capture |
|
| Wait an additional timeout before capture |
|
| Navigation event(s): |
microlink_screenshot
Capture a screenshot of any public URL and receive a permanent CDN asset URL (data.screenshot.url).
Set screenshot to true for defaults, or pass screenshot: { ... } for options. screenshot: {} is treated as true.
Key parameters:
Parameter | Type | Description |
|
| The URL to screenshot (required) |
|
| Enable screenshot with defaults ( |
|
| Capture the full scrollable page |
|
| CSS selector to capture a specific element |
|
| Output format (default: |
|
| Transparent background |
|
| Browser chrome overlay ( |
|
| Syntax-highlight theme for code pages (e.g. |
|
| Preferred color scheme |
|
| Device emulation |
|
| Custom viewport |
|
| Click before capture |
|
| Scroll to element |
|
| JavaScript to inject before capture |
|
| CSS to inject before capture |
|
| Browser module(s) to inject |
|
| Proxy configuration (PRO) |
|
| Custom HTTP headers (PRO) |
|
| Bypass cache |
|
| Cache TTL |
|
| Stale cache TTL policy (PRO) |
|
| Retry count |
|
| Request timeout |
|
| Prerender strategy |
|
| Enable ad blocking |
|
| Enable/disable animations |
|
| Toggle JavaScript execution |
|
| CSS media mode |
|
| Preferred output filename (PRO) |
|
| Response filter |
|
| Wait for element |
|
| Wait an additional timeout before capture |
|
| Navigation event(s): |
microlink_pdf
Generate a PDF of any public URL and receive a permanent CDN asset URL (data.pdf.url).
Set pdf to true for defaults, or pass pdf: { ... } for options. pdf: {} is treated as true.
Key parameters:
Parameter | Type | Description |
|
| The URL to convert (required) |
|
| Enable PDF with defaults ( |
|
| Paper size: |
|
| Landscape orientation |
|
| Page margins (e.g. |
|
| Page scale factor (0.1–2.0) |
|
| Page range (e.g. |
|
| Custom dimensions (overrides |
|
| JavaScript to inject before rendering |
|
| CSS to inject before rendering |
|
| Browser module(s) to inject |
|
| Proxy configuration (PRO) |
|
| Custom HTTP headers (PRO) |
|
| Bypass cache |
|
| Cache TTL |
|
| Stale cache TTL policy (PRO) |
|
| Retry count |
|
| Request timeout |
|
| Prerender strategy |
|
| Enable ad blocking |
|
| Enable/disable animations |
|
| Toggle JavaScript execution |
|
| Device emulation |
|
| Custom viewport |
|
| Preferred output filename (PRO) |
|
| Response filter |
|
| CSS media type |
|
| Wait for element |
|
| Wait an additional timeout before rendering |
|
| Navigation event(s): |
microlink_video
Detect and extract a playable video source from any URL. Returns the video URL in data.video.url along with type, duration, size, width, height, duration_pretty, and size_pretty.
Supports YouTube, Vimeo, Twitter/X, TikTok, Instagram, Dailymotion, and hundreds of other platforms.
Key parameters:
Parameter | Type | Description |
|
| The URL containing a video (required) |
|
| Proxy for restricted platforms (PRO) |
|
| Include/suppress page metadata |
microlink_audio
Detect and extract a playable audio source from any URL. Returns the audio URL in data.audio.url along with type, duration, size, duration_pretty, and size_pretty.
Supports SoundCloud, Spotify, Mixcloud, and other audio platforms.
Key parameters:
Parameter | Type | Description |
|
| The URL containing audio (required) |
|
| Proxy for restricted platforms (PRO) |
|
| Include/suppress page metadata |
microlink_insights
Get web performance and technology-stack insights for any URL.
Set insights to true for defaults, or pass insights: { ... } for options. insights: {} is treated as true.
Key parameters:
Parameter | Type | Description |
|
| The URL to analyze (required) |
|
| Enable default insights ( |
|
| Run a Lighthouse audit |
|
| Report format (default: |
|
| Audit preset: |
|
| Lighthouse category IDs (e.g. |
|
| Detect tech stack via Wappalyzer |
microlink_meta
Extract normalized metadata from any public URL. Returns: title, description, lang, author, publisher, date, url, image (with dimensions and file info), and logo (publisher favicon).
Key parameters:
Parameter | Type | Description |
|
| The URL to inspect (required) |
|
|
|
microlink_palette
Extract a color palette from images detected on any public URL. For each image returns: palette (hex colors from most to least dominant), background_color (optimal WCAG-contrast background), color (best overlay color), and alternative_color.
Color data is nested under each image field (e.g. data.image.palette). Useful for generating design tokens, theming, or accessibility checks.
Key parameters:
Parameter | Type | Description |
|
| The URL to analyze (required) |
|
| Control metadata fields returned |
|
| Enable palette extraction (default: |
microlink_markdown
Convert any public URL to Markdown. Returns JSON output with Markdown content in microlink.data.markdown, useful for extracting readable content from web pages, articles, and documentation.
Key parameters:
Parameter | Type | Description |
|
| The URL to convert (required) |
|
| Microlink API key (optional) |
microlink_text
Extract plain text from any public URL. Returns JSON output with plain text content in microlink.data.text.
Key parameters:
Parameter | Type | Description |
|
| The URL to extract text from (required) |
|
| Microlink API key (optional) |
Authentication
Every tool accepts an optional apiKey parameter. The key is resolved from these sources in order of priority:
apiKeyfield in the tool input parametersAuthorization: Bearer <key>header from the MCP requestx-api-keyheader from the MCP requestMICROLINK_API_KEYenvironment variable
The MICROLINK_API_KEY environment variable is the recommended approach for most integrations. Get your key at microlink.io.
If an API key is present, requests are sent to https://pro.microlink.io; otherwise they go to https://api.microlink.io (free endpoint).
When the free endpoint returns 429, this MCP adds a clear hint in the tool error message: free daily quota reached (50 requests/day) and upgrade/API key guidance at microlink.io/#pricing.
License
microlink © Microlink, released under the MIT License. Authored and maintained by Kiko Beats with help from contributors.
microlink.io · GitHub microlinkhq · X @microlinkhq
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/microlinkhq/mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server