Referenz des MCP-Servers¶
Der MCP-Server von Scrapling bietet siebzehn Werkzeuge zum Extrahieren von Daten und zur Bedienung des Browsers über das Model Context Protocol (MCP). Binden Sie Scrapling in Assistenten und KI-Agenten ein, um Daten per Gespräch zu extrahieren, mit Funktionen gegen Bot-Erkennung.
Starten Sie den MCP-Server mit diesem Befehl:
Oder importieren Sie die Serverklasse direkt:
from scrapling.core.ai import ScraplingMCPServer
server = ScraplingMCPServer()
server.serve(http=False, host="127.0.0.1", port=8000)
Um Ihre eigene ausführbare Datei eines Chromium-kompatiblen Browsers zu verwenden, übergeben Sie executable_path:
Antwortmodell¶
Die Werkzeuge zum Abrufen von Seiten und für HTTP-Anfragen geben diese Struktur zurück, mit einer Antwort pro Aufruf. Die Werkzeuge zur Sitzungsverwaltung verwenden die folgenden Modelle. browser_screenshot gibt ein Bild der Seite oder eines Elements zusammen mit der aktuellen URL als Bild- und Textblöcke zurück. browser_extract und browser_actions geben einfachen Text zurück. Die beiden Netzwerkwerkzeuge geben strukturiertes JSON über die folgenden Modelle zurück. browser_evaluate gibt das Ergebnis als JSON in einem Textblock zurück.
scrapling.core.ai.server.ResponseModel
¶
Basisklassen: BaseModel
flowchart TD
scrapling.core.ai.server.ResponseModel[ResponseModel]
click scrapling.core.ai.server.ResponseModel href "" "scrapling.core.ai.server.ResponseModel"
Datenstruktur mit den Antwortinformationen einer Anfrage.
Modelle für Netzwerkanfragen¶
browser_network_requests gibt NetworkRequestsModel mit requests, next_cursor, has_more und dropped_count zurück. Jedes NetworkRequestInfo enthält id, url, method, resource_type und status. Zum Fortsetzen übergeben Sie next_cursor als after_id. has_more zeigt an, ob der aktuelle Verlauf weitere Treffer enthält.
browser_network_request gibt NetworkRequestModel mit request_id, part, data und note zurück. Zusammenfassungen und Header sind Objekte. Der vollständig gespeicherte Inhalt wird als Zeichenkette zurückgegeben, auch wenn die Antwort JSON enthält. note erklärt, ob Inhaltsdaten fehlen oder Header unvollständig sind.
scrapling.core.ai._network_formatting.NetworkRequestInfo
¶
Basisklassen: BaseModel
flowchart TD
scrapling.core.ai._network_formatting.NetworkRequestInfo[NetworkRequestInfo]
click scrapling.core.ai._network_formatting.NetworkRequestInfo href "" "scrapling.core.ai._network_formatting.NetworkRequestInfo"
Zusammenfassung einer aufgezeichneten Browser-Anfrage.
scrapling.core.ai.server.NetworkRequestsModel
¶
Basisklassen: BaseModel
flowchart TD
scrapling.core.ai.server.NetworkRequestsModel[NetworkRequestsModel]
click scrapling.core.ai.server.NetworkRequestsModel href "" "scrapling.core.ai.server.NetworkRequestsModel"
Zusammenfassungen aufgezeichneter Anfragen mit Angaben zum seitenweisen Abruf.
scrapling.core.ai._network_formatting.NetworkRequestModel
¶
Basisklassen: BaseModel
flowchart TD
scrapling.core.ai._network_formatting.NetworkRequestModel[NetworkRequestModel]
click scrapling.core.ai._network_formatting.NetworkRequestModel href "" "scrapling.core.ai._network_formatting.NetworkRequestModel"
Ein vollständiger gespeicherter Teil einer Anfrage mit einem optionalen Hinweis.
Sitzungsmodelle¶
Modellklassen zur Verwaltung von Sitzungen:
scrapling.core.ai.server.SessionInfo
¶
Basisklassen: SessionCreatedModel
flowchart TD
scrapling.core.ai.server.SessionInfo[SessionInfo]
scrapling.core.ai.server.SessionCreatedModel[SessionCreatedModel]
scrapling.core.ai.server.SessionCreatedModel --> scrapling.core.ai.server.SessionInfo
click scrapling.core.ai.server.SessionInfo href "" "scrapling.core.ai.server.SessionInfo"
click scrapling.core.ai.server.SessionCreatedModel href "" "scrapling.core.ai.server.SessionCreatedModel"
Informationen über eine offene Browser-Sitzung.
created_at
class-attribute
instance-attribute
¶
is_alive
class-attribute
instance-attribute
¶
settings
class-attribute
instance-attribute
¶
settings = Field(
default_factory=dict,
description="The effective settings this session was created with.",
)
session_id
class-attribute
instance-attribute
¶
session_type
class-attribute
instance-attribute
¶
scrapling.core.ai.server.SessionCreatedModel
¶
Basisklassen: BaseModel
flowchart TD
scrapling.core.ai.server.SessionCreatedModel[SessionCreatedModel]
click scrapling.core.ai.server.SessionCreatedModel href "" "scrapling.core.ai.server.SessionCreatedModel"
Antwort beim Erstellen einer neuen Sitzung.
scrapling.core.ai.server.SessionClosedModel
¶
Basisklassen: BaseModel
flowchart TD
scrapling.core.ai.server.SessionClosedModel[SessionClosedModel]
click scrapling.core.ai.server.SessionClosedModel href "" "scrapling.core.ai.server.SessionClosedModel"
Antwort beim Schließen einer Sitzung.
Klasse des MCP-Servers¶
Die Hauptklasse des MCP-Servers bietet diese Werkzeuge:
make_request: Ruft eine URL über HTTP ab, bildet einen Browser nach und schließt den Client automatisch. Unterstützt GET, POST, PUT und DELETE.-
browser_fetch_once: Ruft eine URL mit einem Stealth-Browser ab, führt JavaScript aus, behandelt Cloudflare und schließt den Browser. Nutzen Sie eine dauerhafte Sitzung, wenn Sie danach Aktionen ausführen oder den Netzwerkverlauf lesen möchten. -
browser_extract: Liest die aktuelle Seite oder ein Element als strukturierte Ansicht für KI, HTML, Markdown oder Text, ohne neu zu laden. Ergebnisse von Formularen und Aktionen bleiben erhalten. Die strukturierten Ansichten enthalten Rollen, Namen, Referenzen, Positionen und Größen der Elemente. Die Suche mit regulären Ausdrücken liefert passende Zeilen, den nahen Kontext und Elternknoten. -
browser_actions: Verknüpft Mausbewegungen, Bewegen des Zeigers über Elemente, Klicks, Scrollen, Feldeingaben, Tastenkürzel, Antworten auf Dialoge und Wartezeiten in einem Aufruf. Akzeptieren oder schließen Sie Meldungen und Bestätigungen, oder geben Sie Text in Eingabedialoge ein. Sie können ein Suchfeld ausfüllen, die Suche absenden, auf Ergebnisse warten und eines öffnen, ohne einen Aufruf pro Schritt zu machen.Bewegungen und Klicks akzeptieren Selektoren, Referenzen aus strukturierten Ansichten oder Koordinaten. Das Werkzeug wartet auf Elemente und scrollt sie in den sichtbaren Bereich. Es unterstützt Bewegungen in Schritten, linke, rechte und mittlere Mausklicks, Doppelklicks und Scrollen in verschachtelten Bereichen.
Halten Sie eine Maustaste gedrückt, um Elemente zu ziehen oder Schieberegler zu bewegen. Die KI kann die Seite bei gedrückter Taste prüfen, die Position durch weitere Bewegungen anpassen und die Taste am Ziel loslassen.
Wählen Sie Felder mit Selektoren oder Referenzen aus strukturierten Ansichten. Geben Sie Text ein, aktivieren oder deaktivieren Sie Kontrollkästchen, wählen Sie Optionsfelder und eine oder mehrere Optionen nativer Listen anhand ihrer Beschriftung. Ersetzen oder löschen Sie Text, oder schreiben Sie an der Cursorposition weiter. Tastenkürzel nutzen den aktuellen Fokus. Der langsame Modus fügt zufällige Pausen zwischen Zeichen und Aktionen ein.
Warten Sie mit Selektoren oder Referenzen aus strukturierten Ansichten auf Inhalte oder Ladeanzeigen. Sie können auch auf Ladeereignisse, das Ende der Netzwerkaktivität oder eine feste Zeitspanne warten.
-
browser_evaluate: Führt JavaScript auf der aktuellen Seite aus, um eigene Daten zu extrahieren, Berechnungen auszuführen, den Anwendungszustand zu lesen oder Inhalte zu ändern. Unterstützt asynchrone Skripte und gibt deren Ergebnisse als JSON zurück. browser_observe: Hilft dem Agenten, Bewegungen und Änderungen anhand einer kurzen Bildfolge der aktuellen Seite zu verstehen.browser_network_requests: Durchsucht abgeschlossene Browseranfragen über Tabs, Seitenwechsel und Aktionen hinweg. Finden Sie gespeicherte API-Aufrufe, HTTP-Fehler und Weiterleitungen. Statische Ressourcen werden standardmäßig ausgeblendet, um die Ergebnismenge zu verringern. Fehlgeschlagene oder unvollständige Anfragen werden ausgelassen. Gibt strukturierte Daten mit Seiteneinteilung zurück.browser_network_request: Liest die Zusammenfassung, Header, gesendeten Daten oder den Textinhalt einer gespeicherten Anfrage als strukturiertes JSON, ohne die Anfrage zu wiederholen. Gibt den gewählten Teil vollständig zurück. Gespeicherte Antworten bleiben nach Seitenwechseln verfügbar, auch HTTP-Antworten mit 4xx und 5xx. Einträge erscheinen, sobald die Aufzeichnung abgeschlossen ist. Lesen des Verlaufs oder Schließen der Sitzung wartet nicht auf laufende Aufzeichnungen. Diese können bei einem Seitenwechsel oder beim Schließen verloren gehen. Die Bytes stammen von Playwright und können von den vom Server gesendeten Bytes abweichen. Für den Text wird die UTF-8-Dekodierung von Playwright genutzt, wenn sie gültig ist, sonst der angegebene Zeichensatz. Nur Inhalte mit einem unterstützten textbasiertenContent-Typewerden gelesen und gespeichert. Bei binären, fehlenden oder unbekannten Typen bleiben Metadaten und Header erhalten, ohne den Inhalt zu lesen. Das Laden der Seite ändert sich dadurch nicht. Der Verlauf hat Größenlimits. Ein optionaler Hinweis erklärt, ob der Inhalt kein Text ist, zu groß ist oder nicht gelesen werden kann. Lesen Sie benötigte Daten, bevor Sie die MCP-Sitzung schließen.browser_fetch: Ruft eine Seite in einer offenen Stealth-Browsersitzung ab und extrahiert HTML, Markdown, Text oder eine strukturierte Ansicht. Die Ansicht kann die ganze Seite oder ein Element umfassen und enthält Referenzen, Positionen und Größen für spätere Aktionen.
scrapling.core.ai.server.ScraplingMCPServer
¶
Erstellt einen Scrapling-MCP-Server.
| PARAMETER | BESCHREIBUNG |
|---|---|
executable_path
|
Optionaler globaler Pfad zu einer ausführbaren Browser-Datei, die mit Chromium kompatibel ist, für die Browser-Werkzeuge. Ohne Angabe wird die Umgebungsvariable SCRAPLING_EXECUTABLE_PATH verwendet, falls sie gesetzt ist.
TYP:
|
auth_token
|
Optionales gemeinsames Token, das Clients als
TYP:
|
Quellcode in scrapling/core/ai/server.py
browser_open
async
¶
browser_open(
session_id=None,
headless=True,
real_chrome=False,
timezone_id=None,
locale=None,
useragent=None,
proxy=None,
cdp_url=None,
new_context=True,
executable_path=None,
cookies=None,
hide_canvas=False,
block_webrtc=False,
allow_webgl=True,
additional_args=None,
)
Open a reusable local or remote browser session. Pass per-request options to browser_fetch.
Quellcode in scrapling/core/ai/server.py
browser_save_state
async
¶
Speichert Browser-Cookies, Local Storage und IndexedDB als JSON, das mit Playwright kompatibel ist. Enthält kein sessionStorage.
Quellcode in scrapling/core/ai/server.py
browser_load_state
async
¶
Ersetzt Browser-Cookies, Local Storage und IndexedDB durch Daten aus einer mit Playwright kompatiblen JSON-Datei.
Lässt sessionStorage und offene Tabs unverändert. Rufen Sie Seiten ab oder laden Sie sie neu, um die wiederhergestellte Anmeldung zu nutzen.
Quellcode in scrapling/core/ai/server.py
open_request_session
async
¶
Öffnet eine wiederverwendbare HTTP-Sitzung für session_make_request, die Cookies, Verbindungen und Anfrageeinstellungen behält.
Quellcode in scrapling/core/ai/server.py
close_session
async
¶
Schließt eine Sitzung und gibt ihre Ressourcen frei.
Quellcode in scrapling/core/ai/server.py
list_sessions
async
¶
Listet registrierte Sitzungen, ihren Status und die tatsächlich verwendeten Einstellungen auf.
Quellcode in scrapling/core/ai/server.py
browser_network_requests
async
¶
browser_network_requests(
session_id,
url_pattern=None,
include_static=False,
after_id=0,
limit=50,
)
List completed requests across page changes, with IDs and pagination. Recording starts when the browser session opens and closing does not wait for running captures.
Quellcode in scrapling/core/ai/server.py
browser_network_request
async
¶
Liest einen gespeicherten Anfrageteil vollständig, ohne die Anfrage erneut zu senden. Gibt strukturierte Daten und Hinweise zur Verfügbarkeit zurück.
Quellcode in scrapling/core/ai/server.py
browser_extract
async
¶
browser_extract(
session_id,
extraction_type="snapshot",
target=None,
depth=None,
boxes=True,
search=None,
main_content_only=True,
)
Liest die aktuelle Seite oder ein Element als strukturierte Ansicht, HTML, Markdown oder Text, ohne die Seite zu wechseln. Gibt Klartext zurück. Die Suche in der Seitenansicht behält Referenzen, Pfade der Vorfahren und drei Zeilen nahen Kontext.
Quellcode in scrapling/core/ai/server.py
browser_actions
async
¶
Chain all kinds of browser actions. Do actions without multiple calls or plan ahead to execute a sequence of actions. Run mouse, field, key, dialog, and wait actions on the current page in order. Load waits observe the current document; wait for a result element for delayed navigation. Stops on the first error, identifying its action; partial effects remain. No retries. Element mouse targets auto-wait and scroll into view; coordinates and wheel do not wait for navigation or scrolling. mouse_down holds across calls for observation and further moves; mouse_up releases, including after errors. For drag and drop, move over the target twice before releasing. Cancelled/timed-out clicks attempt release.
Quellcode in scrapling/core/ai/server.py
browser_evaluate
async
¶
Führt JavaScript auf der aktuellen Seite aus, wartet auf Promises und gibt JSON-Text ohne Seitenansicht zurück. Geben Sie JSON-kompatible Werte zurück. null/undefined werden zu null. Änderungen durch das Skript werden bei Fehlern nicht rückgängig gemacht. Ein Abbruch beendet das Warten, aber möglicherweise nicht das Skript.
Quellcode in scrapling/core/ai/server.py
browser_screenshot
async
¶
browser_screenshot(
session_id,
image_type="png",
full_page=False,
quality=None,
timeout=30000,
selector=None,
ref=None,
)
Erfasst die aktuelle Seite oder ein Element, ohne die Seite zu wechseln. Gibt das Bild und die aktuelle URL zurück. Bei der Aufnahme eines Elements wird gewartet und ins Blickfeld gescrollt. Verwenden Sie browser_actions für weitere Wartebedingungen vor der Aufnahme.
Quellcode in scrapling/core/ai/server.py
browser_observe
async
¶
Inspect browser page motion through a short sequence of timestamped viewport images. The page keeps running during and after capture. Use this tool when you get any challenge that require timed actions like games, appearing/disappearing CAPTCHAs, or interacting with any moving elements.
Quellcode in scrapling/core/ai/server.py
make_request
async
staticmethod
¶
make_request(
url,
method="GET",
impersonate="chrome",
extraction_type="markdown",
css_selector=None,
main_content_only=True,
params=None,
data=None,
json=None,
headers=None,
cookies=None,
timeout=30,
follow_redirects="safe",
max_redirects=30,
retries=3,
retry_delay=1,
proxy=None,
proxy_auth=None,
auth=None,
verify=True,
http3=False,
stealthy_headers=True,
)
Sendet eine HTTP-Anfrage ohne JavaScript. Geeignet für geringen bis mittleren Schutz.
Quellcode in scrapling/core/ai/server.py
718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 | |
browser_fetch_once
async
¶
browser_fetch_once(
url,
extraction_type="markdown",
css_selector=None,
main_content_only=True,
headless=True,
google_search=True,
real_chrome=False,
wait=0,
proxy=None,
timezone_id=None,
locale=None,
extra_headers=None,
useragent=None,
hide_canvas=False,
executable_path=None,
timeout=30000,
disable_resources=False,
wait_selector=None,
cookies=None,
network_idle=False,
wait_selector_state="attached",
block_webrtc=False,
allow_webgl=True,
solve_cloudflare=False,
additional_args=None,
pierce_shadow=False,
)
Ruft eine Seite mit einem Stealthy-Browser und JavaScript-Ausführung ab.
Quellcode in scrapling/core/ai/server.py
796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 | |
browser_fetch
async
¶
browser_fetch(
url,
session_id,
extraction_type="markdown",
css_selector=None,
main_content_only=True,
wait=0,
timeout=30000,
google_search=True,
network_idle=False,
load_dom=True,
disable_resources=False,
wait_selector=None,
wait_selector_state="attached",
extra_headers=None,
blocked_domains=None,
solve_cloudflare=False,
pierce_shadow=False,
)
Ruft eine URL in einer offenen Stealthy-Browser-Sitzung ab. Optionen gelten nur für diese Anfrage.
Quellcode in scrapling/core/ai/server.py
session_make_request
async
¶
session_make_request(
url,
session_id,
method="GET",
extraction_type="markdown",
css_selector=None,
main_content_only=True,
params=None,
data=None,
json=None,
headers=None,
cookies=None,
timeout=30,
follow_redirects="safe",
max_redirects=30,
retries=3,
retry_delay=1,
auth=None,
verify=True,
http3=False,
stealthy_headers=True,
)
Sendet eine HTTP-Anfrage mit den Cookies, Verbindungen, der Browser-Nachbildung und dem Proxy der Sitzung. Optionen gelten für diese Anfrage.
Quellcode in scrapling/core/ai/server.py
serve
¶
Startet den MCP-Server.
| PARAMETER | BESCHREIBUNG |
|---|---|
http
|
Verwendet den Transport streamable-http statt stdio.
TYP:
|
host
|
Die Adresse, auf der der Server lauscht, wenn
TYP:
|
port
|
Der Port, auf dem der Server lauscht, wenn
TYP:
|
allowed_hosts
|
Erlaubte Hostnamen. Aktiviert den Schutz vor DNS-Rebinding.
TYP:
|
allow_unauthenticated
|
Startet den Transport streamable-http ohne Token. Er erfordert standardmäßig eine Authentifizierung. Diese Option schaltet sie ausdrücklich aus.
TYP:
|