Skip to main content
Glama
MetaliftAI

metalift-mcp

Official
by MetaliftAI

@metalift/mcp

Metalift MCP server for AI agents. Exposes scrape, crawl, map, and batch tools over stdio for Cursor, Claude Desktop, and other MCP clients.

What is Metalift?

Metalift Cloud is a hosted web context platform — scrape, crawl, and map sites into LLM-ready markdown for AI agents. This MCP server connects your AI client to the Metalift API.

Related MCP server: Crawl4AI RAG MCP Server

Get an API key

  1. Sign up for Metalift Cloud and verify your email.

  2. Complete onboarding and copy your API key from Dashboard → API keys.

New accounts receive 1,000 free credits/month. Set METALIFT_API_KEY in your MCP config (see below). Do not commit keys to git.

Install

Published on npm as @metalift/mcp. Default config uses npx:

{
  "mcpServers": {
    "metalift": {
      "command": "npx",
      "args": ["-y", "@metalift/mcp"],
      "env": {
        "METALIFT_API_URL": "https://api.metalift.ai",
        "METALIFT_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Claude Desktop: paste the same JSON into claude_desktop_config.json (Settings → Developer → Edit Config). See MCP setup — Claude Desktop and examples/claude-mcp.json.

Corporate Windows / SSL inspection: if npx fails with UNABLE_TO_VERIFY_LEAF_SIGNATURE, install locally and use node — see examples/claude-mcp-local.json / cursor-mcp-local.json and MCP setup troubleshooting.

Troubleshooting

Error

Cause

Fix

Failed to acquire MessagePort

Cursor IDE bug on Windows

Reload window, restart Cursor — details

UNABLE_TO_VERIFY_LEAF_SIGNATURE

Corporate SSL inspection blocks npm

Local install + node path — details

401 / 402 at runtime

Auth or billing

Check API key and subscription

Full guide: packages/platform-web/docs/mcp-setup.md.

Web search vs scrape

Search and scrape are separate tools with separate billing:

  1. metalift_web_search — returns up to 10 search snippets (2 credits, English by default). Review titles and snippets first.

  2. metalift_scrape — fetches page content for URLs you choose (1+ credits per URL). Default response_detail=compact (~16k chars, no link lists). Use standard for full articles or full for raw JSON with all links.

Do not auto-scrape every search result. See Web search for agent workflow examples.

Environment variables

Variable

Description

METALIFT_API_URL

Metalift scrape API base URL (default: https://api.metalift.ai)

METALIFT_API_KEY

Bearer token for authenticated API access

Tools

Tool

Description

metalift_scrape

Scrape a single URL (default: fast direct static markdown, response_detail=compact; use standard / full for more)

metalift_batch_scrape

Scrape multiple URLs (same response_detail; default compact)

metalift_crawl

Crawl a website

metalift_map

Discover site URLs from page HTML links

metalift_sitemap

Fetch XML sitemap URLs (robots.txt / sitemap.xml)

metalift_web_search

Web search — top 10 SERP results (title, url, snippet). 2 credits per search. Does not fetch page content; use metalift_scrape separately for URLs you need

metalift_job_status

Poll async jobs

metalift_list_strategies

List scrape strategies

metalift_seed_session

Store browser session cookies for a domain

metalift_warm_session

Warm WAF/retail cookies

metalift_list_sessions

List stored domain sessions

Available Tools

11 tools
metalift_batch_scrapeBatch Scrape URLsA
Read-only

Scrape up to 100 URLs in parallel (billed per URL). Default response_detail=compact. Use async=true for background jobs; wait=true blocks with progress. For JS-heavy pages set strategy=auto in scrape_options. You are solely responsible for complying with website terms, robots.txt, copyright, and data protection laws when using scraped content.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlsYesURLs to scrape in parallel
waitNoWhen async=true, wait for completion with progress updates (default true).
asyncNoRun as background job (returns job id)
scrape_optionsNoShared scrape options applied to every URL in the batch

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the description adds complementary context: billing per URL, default response_detail, async/wait behavior, and a strategy recommendation. It also includes legal responsibility, which is extra transparency. It does not repeat annotation info and provides value beyond the structured fields.

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 three sentences, front-loads the core purpose and billing, then covers options and legal note. Every sentence earns its place; no filler or repetition of schema fields. It is appropriately sized for the tool's complexity.

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 tool with 4 parameters, nested objects, and no output schema, the description covers the main usage modes (sync/async), defaults, and legal notes. It does not explicitly describe the return format, but the async/wait semantics and job id mention partially compensate. Given the absence of an output schema, this is reasonably complete, though an explicit return description would push it to 5.

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?

Schema coverage is 100%, so the baseline is 3. The description adds meaning by noting the default `response_detail=compact` (not in schema), clarifying `async=true` yields a job id, and recommending `strategy=auto` for JS-heavy pages—these details go beyond the schema's basic descriptions.

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+resource+scope: 'Scrape up to 100 URLs in parallel.' It clearly distinguishes from the sibling `metalift_scrape` by emphasizing batch capability, and references paid billing and defaults, making the tool's purpose unambiguous.

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?

Provides clear context on when to use `async=true` (background jobs) and `wait=true` (block with progress), and recommends `strategy=auto` for JS-heavy pages. While it doesn't explicitly name alternatives like `metalift_scrape` for single URLs, the 'up to 100 URLs' phrasing implies the batch use case. The guidance is actionable and helps select appropriate parameters.

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

metalift_crawlCrawl WebsiteA
Read-only

Crawl a site from a seed URL and return markdown for discovered pages (1+ credits per page). Default wait=true blocks with progress; wait=false returns job id for metalift_job_status.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesSeed URL to start crawling from
waitNoWait for crawl to finish with progress updates (default true).
limitNoMaximum pages to crawl
max_depthNoMaximum link depth from seed URL
exclude_pathsNoSkip paths matching these prefixes
include_pathsNoOnly crawl paths matching these prefixes

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses '1+ credits per page' and explains the blocking behavior when wait=true and the job id return when wait=false, adding cost and async context beyond the readOnlyHint annotation. This provides valuable operational details without contradicting the annotations.

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, efficiently covering purpose, output, cost, and wait behavior. Every sentence carries essential information with no fluff, and the primary action is front-loaded.

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 6-parameter tool with no output schema, the description covers the core operational aspects: markdown output, credit cost, wait behavior, and job id reference. It lacks details on the exact structure of the returned markdown, but annotations and full schema coverage fill most gaps, making it sufficient for an agent to invoke correctly.

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?

With 100% schema description coverage, the baseline is 3. The description adds meaning for the wait parameter by specifying that wait=false returns a job id for metalift_job_status, which is not in the schema. Other parameters are sufficiently described in the 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?

The description clearly states the tool 'crawl a site from a seed URL and return markdown for discovered pages,' which uses a specific verb ('crawl') and resource ('site') and distinguishes it from single-page scraping tools. The mention of discovered pages plus the cost per page adds unique functionality compared to siblings.

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 description provides context about the wait parameter and references metalift_job_status for asynchronous usage, but it does not explicitly state when to choose crawl over alternative tools like metalift_scrape, metalift_sitemap, or metalift_map. Usage is implied rather than clearly differentiated.

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

metalift_job_statusGet Job StatusA
Read-only

Poll async crawl or batch job status and results. Returns human-readable progress (pages completed, credits charged).

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob id from metalift_crawl or metalift_batch_scrape

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds value by stating it returns human-readable progress and credits charged. This goes beyond the annotation to explain output behavior. There is no contradiction. While it doesn't discuss polling frequency or potential wait times, the description is sufficiently transparent for a read-only status check.

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, front-loaded with the core action, and every phrase adds value. No filler or repetition. It is efficient and clear, earning a top score.

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?

Given the tool's simplicity (one required param, no output schema), the description fully captures what it does and what it returns. It mentions the job types (crawl/batch) and output details (progress, credits), making it complete for an agent to correctly select and invoke the tool. The readOnly annotation further contextualizes safety.

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% with the job_id parameter fully documented as 'Job id from metalift_crawl or metalift_batch_scrape.' The description does not add new parameter details, but the schema already provides sufficient context. Baseline 3 is appropriate because the description adds little beyond the 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?

The description uses the specific verb 'Poll' and identifies the resource as 'async crawl or batch job status and results.' It clearly distinguishes this tool from siblings like metalift_crawl and metalift_batch_scrape, which initiate jobs rather than check their status. The additional detail about returning 'human-readable progress (pages completed, credits charged)' further clarifies its purpose.

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 implies usage after launching an async job, mentioning 'async crawl or batch job' which correspond to siblings. However, it lacks explicit exclusions or alternatives (e.g., 'use this after starting a job with metalift_crawl'). Given the clear naming and context, it's a solid 4, missing only explicit 'when-not-to-use' guidance.

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

metalift_list_sessionsList Domain SessionsA
Read-only

List org-scoped browser sessions stored via metalift_seed_session.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, and the description confirms this read operation. It adds that sessions are org-scoped and stored via metalift_seed_session, but it does not disclose behavior such as pagination, ordering, or what fields are returned. This is a modest addition beyond the annotation.

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 a single, front-loaded sentence that includes only essential information: the verb, the resource, and the source. There is no wasted text.

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 tool with no parameters and a simple listing function, the description is adequate. It specifies the scope ('org-scoped') and source ('stored via metalift_seed_session'), though it does not detail the contents of the returned list. Given the simplicity and annotation support, it is sufficiently complete.

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 has zero parameters and an empty schema, so the description has nothing to add. The baseline score for 0 params is 4, which is appropriate here.

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 the specific verb 'List' and identifies the resource as 'org-scoped browser sessions,' clearly distinguishing this from scraping, crawling, and strategy tools. It also references the related seed tool, clarifying its role in the workflow.

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 context: this tool lists sessions stored via metalift_seed_session, implying use after seeding or to inspect existing org-scoped sessions. It does not explicitly mention when not to use it or alternatives like list_strategies, but the context is sufficient for typical use.

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

metalift_list_strategiesList Scrape StrategiesA
Read-only

List scrape strategies with protection levels and credit estimates. Use before scraping unknown protected sites.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

The readOnlyHint annotation already declares the non-destructive nature, so the description does not need to repeat that. It adds context by mentioning that the list includes protection levels and credit estimates, which gives an agent an idea of what to expect. However, it doesn't describe the return format or any edge cases, so it's average.

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 long, both of which carry meaningful information: the purpose and the usage context. There is no redundant wording, and the structure is clean and efficient.

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 tool with no parameters and no output schema, the description is reasonably complete. It tells what the tool lists (strategies with protection levels and credit estimates) and when to use it (before scraping unknown protected sites). It does not elaborate on the response format, but this is likely not critical for comprehension.

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?

There are zero parameters, and the schema is empty, so the description is not required to explain any parameter details. The tool appears to be a simple listing operation. The description does not need to compensate for schema gaps because there are none.

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: 'List scrape strategies with protection levels and credit estimates.' The verb 'List' is specific, and the resource 'scrape strategies' is distinct from the sibling tools that perform scraping actions. This differentiates it effectively.

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 a specific use case: 'Use before scraping unknown protected sites.' This is explicit guidance on when to use the tool, though it does not name alternatives or state when not to use it. Still, the context is clear and actionable.

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

metalift_mapMap Website URLsA
Read-only

Discover same-origin links by parsing HTML anchors on one page (1 credit). Fallback when metalift_sitemap is unavailable. Does not fetch full page content.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPage URL to extract links from
limitNoMaximum URLs to return
searchNoOptional substring filter for URLs

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate read-only and open-world nature. The description adds useful behavioral details: the credit cost (1 credit), the parsing scope (single page), and the exclusion of full-page content fetching. This goes beyond the annotation signals.

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 deliver the core purpose, cost, fallback, and a key exclusion. No filler or redundancy.

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 link-extraction tool with read-only annotations and full schema coverage, the description covers the essential aspects: what it does, cost, fallback, and a key limitation. While no output format is specified, the return is implicitly a list of links from the 'discover' wording. It's adequate for an agent to decide and invoke.

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 schema covers all three parameters (url, limit, search) with descriptions, giving 100% coverage. The description adds minimal parameter-specific meaning, only hinting at the page context. Per the baseline rule for high schema coverage, a 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: discovering same-origin links by parsing HTML anchors on a single page. This specific verb+resource distinguishes it from siblings like metalift_scrape or metalift_crawl, and the fallback note references metalift_sitemap explicitly.

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?

The description explicitly identifies a conditional usage scenario: 'Fallback when metalift_sitemap is unavailable.' It also clarifies what the tool does not do ('Does not fetch full page content'), which guides when not to use it.

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

metalift_scrapeScrape URLA
Read-only

Scrape a single URL into markdown, HTML, or text. Default: fast static article path (1 credit, response_detail=compact). E-commerce hosts auto-route to retail/residential. Pass strategy=auto for WAF/SPA pages. Fetch metalift://agent-guide for session workflow. You are solely responsible for complying with website terms, robots.txt, copyright, and data protection laws when using scraped content.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPage URL to scrape
proxyNoProxy tier; default direct for static pages
renderNoRender mode; default static for plain URLs
cookiesNoSession cookies (name→value). Routes through Playwright browser session + proxy — not static HTTP. Prefer metalift_seed_session for reuse.
formatsNoOutput formats; default markdown only
headersNoExtra request headers. Pass User-Agent from the user's browser when using cookie_header so the session fingerprint matches.
strategyNoScrape strategy: auto, article, spa, cloudflare, authenticated, listing, retail, jsonld, download, raw, or comma-separated chain. Use download for full static HTML. See /v1/strategies for protection levels and credit estimates.
wait_forNoCSS selector to wait for before scraping
screenshotNoCapture page screenshot (adds cost)
timeout_msNoPer-attempt timeout in milliseconds
cookie_headerNoRaw Cookie header from DevTools. Routes through Playwright + sticky proxy to preserve browser TLS fingerprint. Prefer metalift_seed_session with storage_state for repeat scrapes.
response_detailNoResponse depth: compact (default, ~16k chars, no links), standard (full markdown + capped links), full (complete JSON).
only_main_contentNoExtract main article content only (default true)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint and openWorldHint, and the description adds useful behavioral context: default credit cost, response_detail default, e-commerce auto-routing, and a compliance responsibility warning. It doesn't describe error behavior or exact output structure, but the added context is meaningful.

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?

Four sentences, each carrying actionable information. It is front-loaded with the purpose and has no filler, making it easy to scan and process.

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?

With 13 parameters and no output schema, the description doesn't spell out the exact response envelope, but the detailed parameter schema and the response_detail parameter description fill most of that gap. It's sufficiently complete for a competent agent to use correctly.

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?

Input schema covers 100% of parameters, but the description enriches key ones by explaining the default static article path, response_detail=compact as default, and when to use strategy=auto. This goes beyond the schema entries.

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 opens with a specific action: 'Scrape a single URL into markdown, HTML, or text.' This clearly identifies the tool's purpose and distinguishes it from sibling tools like metalift_batch_scrape, metalift_crawl, and metalift_sitemap by emphasizing the single-URL scope.

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 provides clear context on when to use the default static path, e-commerce routing, and strategy=auto for WAF/SPA pages. However, it doesn't explicitly state when to prefer siblings like batch_scrape or crawl over this tool.

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

metalift_seed_sessionSeed Domain SessionA

Store browser session credentials for a domain (org-scoped). Prefer full Playwright storage_state JSON from the user's browser — preserves cookies + localStorage for fingerprint-coherent replay via unified browser session on later scrapes. Fallback: cookie_header + user_agent from DevTools.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesSite hostname, e.g. actionpowertest.com or www.walmart.com
cookiesNo
ttl_hoursNo
user_agentNoUser-Agent from the same browser session that issued the cookies
cookie_headerNo
storage_stateNoPlaywright context.storageState() JSON — preferred over cookie_header alone

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the write nature is covered. The description adds valuable context beyond annotations: it explains why storage_state is preferred (preserves cookies + localStorage for fingerprint-coherent replay) and that the session is org-scoped. It does not mention overwrite behavior or TTL, but this is not a contradiction and the additional context is meaningful.

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 long, front-loaded with the main action and scope, followed by concise preference/fallback guidance. Every sentence earns its place with no fluff or repetition of schema details.

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 has 6 parameters, nested objects, and no output schema, the description covers the core usage scenario well: what to provide (storage_state or cookie_header+user_agent) and why. It misses a few operational details like TTL handling and what the tool returns, but for a credential-seeding tool, the essential context is present.

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?

Schema description coverage is 50%, and the description compensates by explicitly explaining the relationship between storage_state, cookie_header, and user_agent ('Prefer... Fallback...'). It adds semantics not in the schema for those parameters. However, it does not explain ttl_hours or the cookies object, which remain undocumented in both schema and description, preventing a 5.

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 ('Store') and clearly states the resource ('browser session credentials') and scope ('for a domain (org-scoped)'). It also distinguishes itself from siblings by explaining its role in enabling later scrapes with a unified browser session, differentiating it from tools like metalift_scrape or metalift_warm_session.

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 explicit usage guidance by stating a preference ('Prefer full Playwright storage_state JSON') and a fallback ('Fallback: cookie_header + user_agent from DevTools'). It implies when to use it (before scrapes that need authenticated sessions) but doesn't explicitly state when not to use it or list alternative tools, so it falls short of a full 5.

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

metalift_sitemapFetch SitemapA
Read-only

Fetch XML sitemap URLs for a site. Discovers sitemap locations from robots.txt (Sitemap: directives) or /sitemap.xml, follows sitemap indexes, and returns page URLs with optional lastmod/changefreq/priority. Costs 1 credit. Prefer this over metalift_map when you need the site's published URL list.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesSite homepage or direct sitemap.xml URL
limitNo
searchNoOptional substring filter; matching URLs sort first
same_originNoOnly return URLs on the same origin (default true)

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already mark the tool as read-only; the description adds meaningful behavior: discovery from robots.txt or /sitemap.xml, following sitemap indexes, returning optional lastmod/changefreq/priority, and a credit cost. This goes beyond annotation basics.

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 concise sentences, each adding value: purpose, behavior/return details, and cost/usage preference. No wasted 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?

The description covers purpose, behavior, cost, and usage preference, and gives a sense of return content (page URLs with optional metadata). It lacks details on 'limit' behavior, but the schema provides min/max and the overall picture is adequate for a tool with moderate 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?

Schema description coverage is 75%. The description does not add parameter-specific details beyond what the schema provides. The 'limit' parameter lacks a schema description and is not addressed in the text, but the schema covers the other three parameters adequately.

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 fetches XML sitemap URLs, with a specific verb and resource. It explicitly differentiates from metalift_map by recommending this tool for the site's published URL list.

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?

Provides explicit usage guidance: 'Prefer this over metalift_map when you need the site's published URL list.' This names an alternative and gives a clear condition for use.

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

metalift_warm_sessionWarm Domain SessionA

Automated browser warmup to collect cookies for later scrapes (15 credits). Use when manual metalift_seed_session is not possible; often fails on strict WAFs.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesSeed URL to visit in browser
proxyNoDefault auto. Use residential for WAF-heavy sites.
domainNoOverride domain for stored session
strategyNoe.g. retail, cloudflare, authenticated
timeout_msNoBrowser warmup timeout in milliseconds

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, and the description adds behavioral context not present in annotations: it mentions the action of collecting cookies (side effect) and the failure mode on strict WAFs. It also notes a credit cost of 15, which is useful operational behavior. It doesn't detail the full session storage mechanics but provides enough beyond the structured fields.

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, front-loaded with the core purpose and then a usage condition and caveat. Every sentence carries useful information with zero waste 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 tool with 5 parameters and no output schema, the description gives key context: when to use it, its limitation with WAFs, and its cost. It does not explain what the tool returns (e.g., session ID or job status), but given the annotations and schema richness, this is still a fairly complete description. Slight gap on output behavior prevents a 5.

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%, meaning all five parameters already have descriptions. The tool description does not add any parameter-specific guidance, but it does not need to because the schema covers them. Baseline 3 is appropriate when 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 and resource: 'Automated browser warmup to collect cookies for later scrapes'. It clearly distinguishes itself from the sibling manual tool 'metalift_seed_session' by stating when it should be used instead. This is a clear and differentiated purpose.

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?

The description explicitly provides a usage condition: 'Use when manual metalift_seed_session is not possible'. It also states a limitation: 'often fails on strict WAFs', which serves as a caution. This gives both when to use and when to avoid, plus names the alternative.

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.

  1. 11 tool updatesv1.0.15
    • First observedmetalift_batch_scrape
    • First observedmetalift_crawl
    • First observedmetalift_job_status
    • First observedmetalift_list_sessions
    • First observedmetalift_list_strategies
    • First observedmetalift_map
    • First observedmetalift_scrape
    • First observedmetalift_seed_session
    • First observedmetalift_sitemap
    • First observedmetalift_warm_session
    • First observedmetalift_web_search

TDQS

A4.4/5.0
Disambiguation5/5

Each tool targets a clearly distinct operation: single scrape, batch scrape, crawl, sitemap, link discovery, web search, job status, strategy listing, and session management. There is no meaningful overlap that could confuse an agent.

Naming Consistency4/5

All tools share the metalift_ prefix and use lowercase with underscores, but the pattern mixes bare verbs (scrape, crawl), nouns (sitemap, map), and compound verb-noun forms (web_search, seed_session). This is still highly readable and predictable.

Tool Count5/5

Eleven tools is well-scoped for a scraping/search/session-management server. Each tool earns its place, covering the core workflows without unnecessary bloat.

Completeness4/5

The tool set covers the primary lifecycle: scrape, batch scrape, crawl, discover URLs via sitemap/map, search, and monitor async jobs. Session management includes seed, warm, and list, but lacks explicit delete or get-detail operations, which are minor gaps.

Maintenance

ActivitySlowing
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI agents and coding assistants with advanced web crawling and RAG capabilities, allowing them to scrape websites and leverage that knowledge through various retrieval strategies.
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables LLM agents to read any website by scraping and crawling into clean Markdown, automatically bypassing bot detection with residential proxies.
    3
    21
    MIT

Latest Blog Posts

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/MetaliftAI/metalift-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server