Web Metadata, Open Graph & JSON-LD Extractor
Qué hace este MCP
Extracts Open Graph, JSON-LD, canonical, robots, headings, language, and other webpage metadata.
Herramientas
Esquema de entrada
{'type': 'object', 'required': ['runId'], 'properties': {'runId': {'type': 'string', 'minLength': 1, 'description': 'The ID of the Actor run to abort.'}, 'gracefully': {'type': 'boolean', 'description': 'If true, the Actor run will abort gracefully with a 30-second timeout.'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'anyOf': [{'type': 'object', 'required': ['runId', 'actorId', 'status', 'storages', 'summary', 'nextStep'], 'properties': {'runId': {'type': 'string', 'description': 'Actor run ID'}, 'stats': {'type': 'object', 'properties': {'memMaxBytes': {'type': 'number'}, 'runTimeSecs': {'type': 'number'}, 'computeUnits': {'type': 'number'}}, 'description': 'Run statistics'}, 'status': {'type': 'string', 'description': 'Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED'}, 'actorId': {'type': 'string', 'description': 'Stable Apify Actor ID from the run record'}, 'summary': {'type': 'string', 'description': 'Past-tense summary of the run state'}, 'exitCode': {'type': 'number', 'description': 'Actor process exit code; populated for terminal states (especially FAILED)'}, 'nextStep': {'type': 'string', 'description': 'One primary follow-up action with identifiers interpolated'}, 'storages': {'type': 'object', 'properties': {'datasets': {'type': 'object', 'required': ['default'], 'properties': {'default': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Dataset ID'}, 'name': {'type': 'string'}, 'title': {'type': 'string'}, 'fields': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dataset field paths in dot notation (e.g. ["metadata.url"])'}, 'itemCount': {'type': 'number'}, 'inflatedBytes': {'type': 'number', 'description': 'Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.'}, 'apifyConsoleUrl': {'type': 'string', 'description': 'Personalized Apify Console link to the dataset; present only for Console sessions'}}}}, 'description': 'Map of dataset alias â\x86\x92 metadata. Key "default" is always the run\'s primary dataset.', 'additionalProperties': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Dataset ID'}, 'name': {'type': 'string'}, 'title': {'type': 'string'}, 'fields': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dataset field paths in dot notation (e.g. ["metadata.url"])'}, 'itemCount': {'type': 'number'}, 'inflatedBytes': {'type': 'number', 'description': 'Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.'}, 'apifyConsoleUrl': {'type': 'string', 'description': 'Personalized Apify Console link to the dataset; present only for Console sessions'}}}}, 'keyValueStores': {'type': 'object', 'required': ['default'], 'properties': {'default': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Key-value store ID'}, 'keys': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Up to 50 key names'}, 'name': {'type': 'string'}, 'title': {'type': 'string'}, 'keyCount': {'type': 'number', 'description': 'Total number of keys (omitted when truncated)'}, 'apifyConsoleUrl': {'type': 'string', 'description': 'Personalized Apify Console link to the store; present only for Console sessions'}}}}, 'description': 'Map of key-value store alias â\x86\x92 metadata. Key "default" is always the run\'s primary store.', 'additionalProperties': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Key-value store ID'}, 'keys': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Up to 50 key names'}, 'name': {'type': 'string'}, 'title': {'type': 'string'}, 'keyCount': {'type': 'number', 'description': 'Total number of keys (omitted when truncated)'}, 'apifyConsoleUrl': {'type': 'string', 'description': 'Personalized Apify Console link to the store; present only for Console sessions'}}}}}, 'description': 'Dataset and key-value store metadata, keyed by alias. "default" is always the primary entry.'}, 'actorName': {'type': 'string', 'description': '"username/actor-name"'}, 'startedAt': {'type': 'string', 'description': 'ISO timestamp when the run started'}, 'finishedAt': {'type': 'string', 'description': 'ISO timestamp when the run finished (terminal states only)'}, 'statusMessage': {'type': 'string', 'description': 'Pass-through from Apify run.statusMessage'}, 'apifyConsoleUrl': {'type': 'string', 'description': 'Personalized Apify Console link to the run; present only for Console sessions'}}}, {'type': 'object', 'required': ['x402Version', 'accepts'], 'properties': {'error': {'type': 'string'}, 'accepts': {'type': 'array', 'items': {'type': 'object'}}, 'resource': {'type': 'object'}, 'x402Version': {'type': 'number'}}}]}
Esquema de entrada
{'type': 'object', 'required': ['runId'], 'properties': {'runId': {'type': 'string', 'minLength': 1, 'description': 'The ID of the Actor run.'}, 'waitSecs': {'type': 'integer', 'default': 30, 'maximum': 45, 'minimum': 0, 'description': 'Maximum seconds to wait for the run to reach a terminal state (SUCCEEDED, FAILED, ABORTED, TIMED-OUT).\n0 returns immediately with the current status. Cap: 45. Default: 30.'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'anyOf': [{'type': 'object', 'required': ['runId', 'actorId', 'status', 'storages', 'summary', 'nextStep'], 'properties': {'runId': {'type': 'string', 'description': 'Actor run ID'}, 'stats': {'type': 'object', 'properties': {'memMaxBytes': {'type': 'number'}, 'runTimeSecs': {'type': 'number'}, 'computeUnits': {'type': 'number'}}, 'description': 'Run statistics'}, 'status': {'type': 'string', 'description': 'Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED'}, 'actorId': {'type': 'string', 'description': 'Stable Apify Actor ID from the run record'}, 'summary': {'type': 'string', 'description': 'Past-tense summary of the run state'}, 'exitCode': {'type': 'number', 'description': 'Actor process exit code; populated for terminal states (especially FAILED)'}, 'nextStep': {'type': 'string', 'description': 'One primary follow-up action with identifiers interpolated'}, 'storages': {'type': 'object', 'properties': {'datasets': {'type': 'object', 'required': ['default'], 'properties': {'default': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Dataset ID'}, 'name': {'type': 'string'}, 'title': {'type': 'string'}, 'fields': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dataset field paths in dot notation (e.g. ["metadata.url"])'}, 'itemCount': {'type': 'number'}, 'inflatedBytes': {'type': 'number', 'description': 'Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.'}, 'apifyConsoleUrl': {'type': 'string', 'description': 'Personalized Apify Console link to the dataset; present only for Console sessions'}}}}, 'description': 'Map of dataset alias â\x86\x92 metadata. Key "default" is always the run\'s primary dataset.', 'additionalProperties': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Dataset ID'}, 'name': {'type': 'string'}, 'title': {'type': 'string'}, 'fields': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dataset field paths in dot notation (e.g. ["metadata.url"])'}, 'itemCount': {'type': 'number'}, 'inflatedBytes': {'type': 'number', 'description': 'Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.'}, 'apifyConsoleUrl': {'type': 'string', 'description': 'Personalized Apify Console link to the dataset; present only for Console sessions'}}}}, 'keyValueStores': {'type': 'object', 'required': ['default'], 'properties': {'default': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Key-value store ID'}, 'keys': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Up to 50 key names'}, 'name': {'type': 'string'}, 'title': {'type': 'string'}, 'keyCount': {'type': 'number', 'description': 'Total number of keys (omitted when truncated)'}, 'apifyConsoleUrl': {'type': 'string', 'description': 'Personalized Apify Console link to the store; present only for Console sessions'}}}}, 'description': 'Map of key-value store alias â\x86\x92 metadata. Key "default" is always the run\'s primary store.', 'additionalProperties': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Key-value store ID'}, 'keys': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Up to 50 key names'}, 'name': {'type': 'string'}, 'title': {'type': 'string'}, 'keyCount': {'type': 'number', 'description': 'Total number of keys (omitted when truncated)'}, 'apifyConsoleUrl': {'type': 'string', 'description': 'Personalized Apify Console link to the store; present only for Console sessions'}}}}}, 'description': 'Dataset and key-value store metadata, keyed by alias. "default" is always the primary entry.'}, 'actorName': {'type': 'string', 'description': '"username/actor-name"'}, 'startedAt': {'type': 'string', 'description': 'ISO timestamp when the run started'}, 'finishedAt': {'type': 'string', 'description': 'ISO timestamp when the run finished (terminal states only)'}, 'statusMessage': {'type': 'string', 'description': 'Pass-through from Apify run.statusMessage'}, 'apifyConsoleUrl': {'type': 'string', 'description': 'Personalized Apify Console link to the run; present only for Console sessions'}}}, {'type': 'object', 'required': ['x402Version', 'accepts'], 'properties': {'error': {'type': 'string'}, 'accepts': {'type': 'array', 'items': {'type': 'object'}}, 'resource': {'type': 'object'}, 'x402Version': {'type': 'number'}}}]}
Esquema de entrada
{'type': 'object', 'required': ['datasetId'], 'properties': {'desc': {'type': 'boolean', 'description': 'If true, results are returned in reverse order (newest to oldest).'}, 'omit': {'type': 'string', 'description': 'Comma-separated list of fields to exclude from results.'}, 'clean': {'type': 'boolean', 'description': 'If true, returns only non-empty items and skips hidden fields (starting with #). Shortcut for skipHidden=true and skipEmpty=true.'}, 'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Maximum number of items to return. Default is 20.'}, 'fields': {'type': 'string', 'description': 'Comma-separated list of fields to include in results. Fields in output are sorted as specified. Use dot notation for nested objects (e.g. "metadata.url"); the server auto-flattens parent prefixes.'}, 'offset': {'type': 'number', 'description': 'Number of items to skip at the start. Default is 0.'}, 'flatten': {'type': 'string', 'description': 'Comma-separated list of fields to flatten (e.g. flatten="metadata" turns {"metadata":{"url":"x"}} into {"metadata.url":"x"}). Normally derived automatically from dot-notation in `fields`; specify only as a diagnostic override.'}, 'datasetId': {'type': 'string', 'minLength': 1, 'description': 'Dataset ID or username~dataset-name.'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'anyOf': [{'type': 'object', 'required': ['datasetId', 'items', 'itemCount', 'totalItemCount', 'offset', 'limit', 'summary', 'nextStep'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}, 'description': 'Dataset items'}, 'limit': {'type': 'number', 'description': 'Limit used for pagination'}, 'offset': {'type': 'number', 'description': 'Offset used for pagination'}, 'summary': {'type': 'string', 'description': 'Summary of the result'}, 'nextStep': {'type': 'string', 'description': 'One follow-up action with tool name'}, 'datasetId': {'type': 'string', 'description': 'Dataset ID'}, 'itemCount': {'type': 'number', 'description': 'Number of items returned'}, 'totalItemCount': {'type': 'number', 'description': 'Total items in dataset'}, 'apifyConsoleUrl': {'type': 'string', 'description': 'Personalized Apify Console link to the dataset; present only for Console sessions'}}}, {'type': 'object', 'required': ['x402Version', 'accepts'], 'properties': {'error': {'type': 'string'}, 'accepts': {'type': 'array', 'items': {'type': 'object'}}, 'resource': {'type': 'object'}, 'x402Version': {'type': 'number'}}}]}
Esquema de entrada
{'type': 'object', 'required': ['keyValueStoreId', 'recordKey'], 'properties': {'recordKey': {'type': 'string', 'minLength': 1, 'description': 'Key of the record to retrieve.'}, 'keyValueStoreId': {'type': 'string', 'minLength': 1, 'description': 'Key-value store ID or username~store-name.'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'anyOf': [{'type': 'object', 'required': ['keyValueStoreId', 'key', 'value', 'summary'], 'properties': {'key': {'type': 'string', 'description': 'Record key'}, 'value': {'description': 'The stored value (JSON, text, or binary)'}, 'summary': {'type': 'string', 'description': 'Summary of the result'}, 'contentType': {'type': 'string', 'description': 'MIME type of the stored value'}, 'keyValueStoreId': {'type': 'string', 'description': 'Key-value store ID'}}}, {'type': 'object', 'required': ['x402Version', 'accepts'], 'properties': {'error': {'type': 'string'}, 'accepts': {'type': 'array', 'items': {'type': 'object'}}, 'resource': {'type': 'object'}, 'x402Version': {'type': 'number'}}}]}
Esquema de entrada
{'$id': 'https://apify.com/mcp/industrial_platform--web-metadata-intelligence/schema.json', 'type': 'object', 'title': 'Web Metadata Intelligence input', 'required': ['urls'], 'properties': {'urls': {'type': 'array', 'items': {'type': 'string', 'maxLength': 2048}, 'title': 'URLs', 'prefill': ['https://example.com/'], 'examples': ['https://example.com/'], 'description': '**REQUIRED** Public HTTP/HTTPS pages to inspect. Up to 100 unique URLs per run.\nExample values: ["https://example.com/"]'}, 'waitSecs': {'type': 'integer', 'default': 30, 'maximum': 45, 'minimum': 0, 'description': 'Max seconds (0â\x80\x9345, default 30) to cap the wait for the Actor run to reach terminal state. For long-running Actors the response returns at the cap with the current run status; follow `nextStep` to poll via get-actor-run. Set to 0 to fire-and-forget.'}, 'concurrency': {'type': 'integer', 'title': 'Concurrency', 'default': 10, 'examples': [10], 'description': 'Maximum number of URLs fetched concurrently during this run.\nExample values: 10'}, 'timeout_seconds': {'type': 'integer', 'title': 'Per-URL timeout', 'default': 30, 'examples': [30], 'description': 'Maximum time allowed for each individual page fetch.\nExample values: 30'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'anyOf': [{'type': 'object', 'required': ['runId', 'actorId', 'status', 'storages', 'summary', 'nextStep'], 'properties': {'runId': {'type': 'string', 'description': 'Actor run ID'}, 'stats': {'type': 'object', 'properties': {'memMaxBytes': {'type': 'number'}, 'runTimeSecs': {'type': 'number'}, 'computeUnits': {'type': 'number'}}, 'description': 'Run statistics'}, 'status': {'type': 'string', 'description': 'Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED'}, 'actorId': {'type': 'string', 'description': 'Stable Apify Actor ID from the run record'}, 'summary': {'type': 'string', 'description': 'Past-tense summary of the run state'}, 'exitCode': {'type': 'number', 'description': 'Actor process exit code; populated for terminal states (especially FAILED)'}, 'nextStep': {'type': 'string', 'description': 'One primary follow-up action with identifiers interpolated'}, 'storages': {'type': 'object', 'properties': {'datasets': {'type': 'object', 'required': ['default'], 'properties': {'default': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Dataset ID'}, 'name': {'type': 'string'}, 'title': {'type': 'string'}, 'fields': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dataset field paths in dot notation (e.g. ["metadata.url"])'}, 'itemCount': {'type': 'number'}, 'itemsSchema': {'type': 'object', 'properties': {'url': {'type': 'string'}, 'title': {'type': 'string'}, 'status': {'type': 'string'}, 'charset': {'type': 'string'}, 'json_ld': {'type': 'array', 'items': {}}, 'headings': {'type': 'object', 'properties': {'h1': {'type': 'array', 'items': {}}, 'h2': {'type': 'array', 'items': {}}}}, 'language': {'type': 'string'}, 'final_url': {'type': 'string'}, 'fetched_at': {'type': 'string'}, 'latency_ms': {'type': 'number'}, 'http_status': {'type': 'number'}, 'content_type': {'type': 'string'}, 'favicon_urls': {'type': 'array', 'items': {'type': 'string'}}, 'response_bytes': {'type': 'number'}}, 'description': "JSON Schema for rows in the dataset at `storages.datasets.default.id` â\x80\x94 describes row shape only; the rows themselves are NOT returned inline in this response. Inferred from this Actor's historical successful runs. To fetch actual rows, call `get-dataset-items` with the dataset id and a `fields` projection drawn from this schema."}, 'inflatedBytes': {'type': 'number', 'description': 'Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.'}, 'apifyConsoleUrl': {'type': 'string', 'description': 'Personalized Apify Console link to the dataset; present only for Console sessions'}}}}, 'description': 'Map of dataset alias â\x86\x92 metadata. Key "default" is always the run\'s primary dataset.', 'additionalProperties': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Dataset ID'}, 'name': {'type': 'string'}, 'title': {'type': 'string'}, 'fields': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dataset field paths in dot notation (e.g. ["metadata.url"])'}, 'itemCount': {'type': 'number'}, 'inflatedBytes': {'type': 'number', 'description': 'Approximate uncompressed byte size of the dataset. Use with itemCount to pick limit/fields before fetching.'}, 'apifyConsoleUrl': {'type': 'string', 'description': 'Personalized Apify Console link to the dataset; present only for Console sessions'}}}}, 'keyValueStores': {'type': 'object', 'required': ['default'], 'properties': {'default': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Key-value store ID'}, 'keys': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Up to 50 key names'}, 'name': {'type': 'string'}, 'title': {'type': 'string'}, 'keyCount': {'type': 'number', 'description': 'Total number of keys (omitted when truncated)'}, 'apifyConsoleUrl': {'type': 'string', 'description': 'Personalized Apify Console link to the store; present only for Console sessions'}}}}, 'description': 'Map of key-value store alias â\x86\x92 metadata. Key "default" is always the run\'s primary store.', 'additionalProperties': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Key-value store ID'}, 'keys': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Up to 50 key names'}, 'name': {'type': 'string'}, 'title': {'type': 'string'}, 'keyCount': {'type': 'number', 'description': 'Total number of keys (omitted when truncated)'}, 'apifyConsoleUrl': {'type': 'string', 'description': 'Personalized Apify Console link to the store; present only for Console sessions'}}}}}, 'description': 'Dataset and key-value store metadata, keyed by alias. "default" is always the primary entry.'}, 'actorName': {'type': 'string', 'description': '"username/actor-name"'}, 'startedAt': {'type': 'string', 'description': 'ISO timestamp when the run started'}, 'finishedAt': {'type': 'string', 'description': 'ISO timestamp when the run finished (terminal states only)'}, 'statusMessage': {'type': 'string', 'description': 'Pass-through from Apify run.statusMessage'}, 'apifyConsoleUrl': {'type': 'string', 'description': 'Personalized Apify Console link to the run; present only for Console sessions'}}}, {'type': 'object', 'required': ['x402Version', 'accepts'], 'properties': {'error': {'type': 'string'}, 'accepts': {'type': 'array', 'items': {'type': 'object'}}, 'resource': {'type': 'object'}, 'x402Version': {'type': 'number'}}}]}
Cambios recientes en herramientas
Servidores MCP similares
TinyFn
Offers deterministic utility functions for mathematics, conversions, validation, hashing, encoding, arrays, dates, colors, and pa…
hyperion
Acts as a paid MCP tool marketplace and utility gateway with server discovery, HTTP and JavaScript tools, research, data conversi…
Andreax
Offers pay-per-call AI services for inference, agent and workflow design, OCR and transcription, code generation and review, clas…
Vee3
Manages Clerk authentication infrastructure, including users, organizations, domains, sessions, tokens, OAuth, SSO, machines, per…
Courier
Provides notification delivery infrastructure for users, tenants, lists, templates, preferences, journeys, automations, brands, a…
GripForge
Generates, rigs, animates, analyzes, and packages game characters, weapons, armor, effects, environments, and engine-ready assets.
IA-QA — 130+ QA & Dev Tools for AI Agents
Provides deterministic QA, evaluation, testing, code analysis, prompt and RAG checks, model comparison, and web security diagnost…
apis-io
Provides catalog search, comparison, scoring, enrichment, lists, and dataset exports for APIs, providers, specifications, workflo…