Perceptlayer
Live web data for AI agents: structured JSON from 248 websites through one API key.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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": {
"web-data": {
"url": "https://api.perceptlayer.com/mcp"
}
}
}Remote endpoints
https://api.perceptlayer.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (3)
🟢search_endpoints(query, vertical, limit)
Find Perceptlayer endpoints for a website or kind of data. The catalogue has 1659 endpoints across 248 sources, so search before calling. Query with the site and the data you want, e.g. "amazon product reviews", "airbnb listing", "linkedin company", "google maps places", "zillow property". Returns compact matches: endpoint ID (pass it to get_endpoint or call_endpoint), name, HTTP method, credits per call, tier ("restricted" endpoints need the account's restricted-endpoint terms accepted) and required parameters. Free; no API key needed.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Site and/or data wanted, in a few words, e.g. \"tripadvisor hotel reviews\"."
},
"vertical": {
"type": "string",
"enum": [
"apps",
"cars",
"jobs",
"marketplaces",
"real-estate",
"reviews",
"search",
"social",
"travel",
"web-seo"
],
"description": "Optional: only return endpoints in this vertical."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10,
"description": "Maximum results (default 10)."
}
},
"required": [
"query"
],
"additionalProperties": false
}🟢get_endpoint(endpoint)
Get the full parameter list for one endpoint: each parameter's name, type, whether it is required, allowed values and limits, plus an example set of parameters, the credit cost and tier. Call this before call_endpoint unless you already know the parameters. Free; no API key needed.
Input Schema
{
"type": "object",
"properties": {
"endpoint": {
"type": "string",
"description": "Endpoint ID from search_endpoints, e.g. \"airbnb.listing\"."
}
},
"required": [
"endpoint"
],
"additionalProperties": false
}🟢call_endpoint(endpoint, params)
Run one endpoint and return its JSON response. Spends the endpoint's credits from the user's balance on success only; failed calls are free. Pass parameters exactly as get_endpoint lists them (array parameters as JSON arrays). The result reports credits used and remaining. Errors come back with a code: invalid_parameters (fix the parameters and retry), not_found (no data for these parameters), rate_limited or temporarily_unavailable (wait and retry), insufficient_credits, restricted_endpoint (the user must accept the restricted-endpoint terms in their dashboard), invalid_api_key (the MCP server config needs a valid API key). Responses over 100,000 characters are truncated; use paging or limit parameters to fetch less.
Input Schema
{
"type": "object",
"properties": {
"endpoint": {
"type": "string",
"description": "Endpoint ID from search_endpoints, e.g. \"airbnb.listing\"."
},
"params": {
"type": "object",
"description": "Parameters for the endpoint, e.g. {\"listing_id\": \"18648717\"}.",
"additionalProperties": true
}
},
"required": [
"endpoint"
],
"additionalProperties": false
}Community
Evidence