MESSORA

Scrape, crawl and search the web for AI agents via MCP.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
66%
Naming quality
96%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,550Tokens (tool definitions)
~2.8 KBTypical response size
Moderate attention impact (1.21% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "messora": {
      "url": "https://mcp.messora.dev/mcp"
    }
  }
}

Remote endpoints

https://mcp.messora.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢scrape_url(url, formats, json_schema, json_prompt, render_js, ...)

Extract content starting from a URL. Synchronous: returns the content directly, no job_id. Follows up to max_pages pages from that URL (default 1). Consumes credit only when the backend returns scrape_status=success.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "format": "uri",
      "maxLength": 2083,
      "minLength": 1,
      "title": "Url",
      "type": "string"
    },
    "formats": {
      "default": [
        "markdown"
      ],
      "items": {
        "enum": [
          "markdown",
          "json",
          "raw"
        ],
        "type": "string"
      },
      "minItems": 1,
      "title": "Formats",
      "type": "array"
    },
    "json_schema": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Json Schema"
    },
    "json_prompt": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Json Prompt"
    },
    "render_js": {
      "default": false,
      "title": "Render Js",
      "type": "boolean"
    },
    "only_main_content": {
      "default": false,
      "title": "Only Main Content",
      "type": "boolean"
    },
    "timeout": {
      "anyOf": [
        {
          "maximum": 180,
          "minimum": 1,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": 60,
      "title": "Timeout"
    },
    "wait_for": {
      "anyOf": [
        {
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Wait For"
    },
    "fact_check": {
      "default": false,
      "title": "Fact Check",
      "type": "boolean"
    },
    "max_age_ms": {
      "anyOf": [
        {
          "maximum": 2592000000,
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Max Age Ms"
    },
    "max_pages": {
      "default": 1,
      "maximum": 50,
      "minimum": 1,
      "title": "Max Pages",
      "type": "integer"
    },
    "max_depth": {
      "anyOf": [
        {
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Max Depth"
    },
    "follow_subdomains": {
      "default": false,
      "title": "Follow Subdomains",
      "type": "boolean"
    },
    "include_frames": {
      "default": false,
      "title": "Include Frames",
      "type": "boolean"
    },
    "parse_pdf": {
      "default": true,
      "title": "Parse Pdf",
      "type": "boolean"
    },
    "tags": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "maxItems": 10,
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tags"
    }
  },
  "required": [
    "url"
  ],
  "title": "scrape_urlArguments"
}

Output Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "scrape_urlDictOutput"
}
🟢start_crawl(url, max_pages, max_depth, follow_subdomains, url_regex, ...)

Start an asynchronous crawl and return a job_id. Poll get_job until PENDING/STARTED becomes SUCCESS, FAILURE or REVOKED.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "format": "uri",
      "maxLength": 2083,
      "minLength": 1,
      "title": "Url",
      "type": "string"
    },
    "max_pages": {
      "maximum": 50,
      "minimum": 1,
      "title": "Max Pages",
      "type": "integer"
    },
    "max_depth": {
      "anyOf": [
        {
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Max Depth"
    },
    "follow_subdomains": {
      "default": false,
      "title": "Follow Subdomains",
      "type": "boolean"
    },
    "url_regex": {
      "default": "",
      "maxLength": 512,
      "title": "Url Regex",
      "type": "string"
    },
    "only_main_content": {
      "default": true,
      "title": "Only Main Content",
      "type": "boolean"
    },
    "include_links": {
      "default": true,
      "title": "Include Links",
      "type": "boolean"
    },
    "include_images": {
      "default": true,
      "title": "Include Images",
      "type": "boolean"
    },
    "include_frames": {
      "default": false,
      "title": "Include Frames",
      "type": "boolean"
    },
    "shorten_base64": {
      "default": false,
      "title": "Shorten Base64",
      "type": "boolean"
    },
    "parse_pdf": {
      "default": true,
      "title": "Parse Pdf",
      "type": "boolean"
    },
    "pdf_ocr": {
      "default": false,
      "title": "Pdf Ocr",
      "type": "boolean"
    },
    "wait_for_ms": {
      "default": 0,
      "maximum": 30000,
      "minimum": 0,
      "title": "Wait For Ms",
      "type": "integer"
    },
    "settle_animations": {
      "default": false,
      "title": "Settle Animations",
      "type": "boolean"
    },
    "timeout_ms": {
      "default": 60000,
      "maximum": 300000,
      "minimum": 1000,
      "title": "Timeout Ms",
      "type": "integer"
    },
    "tags": {
      "default": [],
      "items": {
        "type": "string"
      },
      "title": "Tags",
      "type": "array"
    }
  },
  "required": [
    "url",
    "max_pages"
  ],
  "title": "start_crawlArguments"
}

Output Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "start_crawlDictOutput"
}
🟢start_search(query, num_results, country, include_domains, exclude_domains, ...)

Start an asynchronous premium web search and return a job_id. Poll get_job until a terminal state.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "minLength": 1,
      "title": "Query",
      "type": "string"
    },
    "num_results": {
      "default": 10,
      "maximum": 100,
      "minimum": 10,
      "title": "Num Results",
      "type": "integer"
    },
    "country": {
      "anyOf": [
        {
          "maxLength": 2,
          "minLength": 2,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Country"
    },
    "include_domains": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "maxItems": 20,
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Include Domains"
    },
    "exclude_domains": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "maxItems": 20,
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Exclude Domains"
    },
    "freshness": {
      "anyOf": [
        {
          "enum": [
            "day",
            "week",
            "month",
            "year",
            "any"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Freshness"
    },
    "timeout_seconds": {
      "anyOf": [
        {
          "maximum": 120,
          "minimum": 15,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Timeout Seconds"
    },
    "tags": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "maxItems": 10,
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tags"
    },
    "query_fanout": {
      "default": true,
      "title": "Query Fanout",
      "type": "boolean"
    },
    "use_cache": {
      "default": false,
      "title": "Use Cache",
      "type": "boolean"
    }
  },
  "required": [
    "query"
  ],
  "title": "start_searchArguments"
}

Output Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "start_searchDictOutput"
}
🟢get_job(job_id)

Get the status and result of a crawl or search job. Terminal states: SUCCESS, FAILURE and REVOKED; PENDING/STARTED must be polled again.

Input Schema

{
  "type": "object",
  "properties": {
    "job_id": {
      "minLength": 1,
      "title": "Job Id",
      "type": "string"
    }
  },
  "required": [
    "job_id"
  ],
  "title": "get_jobArguments"
}

Output Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "get_jobDictOutput"
}
🟢get_usage

Get the plan, credits used and remaining balance of the MESSORA account.

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "get_usageArguments"
}

Output Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "get_usageDictOutput"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools
verifiedversion not recorded5 tools