ЁЯОп рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдпреЛрдЧреНрдп, рдбрд┐рдЯреЗрдХреНрд╢рди-рдкреНрд░рддрд┐рд░реЛрдзреА рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЬреЛ рд╕реНрд╡-рд╡рд┐рдХрд╕рд┐рдд Chromium рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реИ, рд╡реЗрдм рдХреНрд░реЙрд▓рд░ рдФрд░ рдПрдЖрдИ рдПрдЬреЗрдВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ред ЁЯСЙрдЕрднреА рдЖрдЬрд╝рдорд╛рдПрдВ
рд╡рд╛рдкрд╕ рдмреНрд▓реЙрдЧ рдкрд░

рдПрдЖрдИ рдПрдЬреЗрдВрдЯ рдХреЛ рд▓рд╛рдЗрд╡ рд╡реЗрдм рдбреЗрдЯрд╛ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛: AWS рд╕реНрдЯреНрд░реИрдВрдбреНрд╕ + рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рдПрдорд╕реАрдкреА рд╕рд░реНрд╡рд░ рдПрдХреАрдХрд░рдг рдЧрд╛рдЗрдб

Daniel Kim
Daniel Kim

Lead Scraping Automation Engineer

18-May-2026

рдореБрдЦреНрдп рдирд┐рд╖реНрдХрд░реНрд╖:

  • AWS Strands SDK + Scrapeless MCP AI рдПрдЬреЗрдВрдЯреЛрдВ рдХреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡реЗрдм-рдбреЗрдЯрд╛ рдЯреВрд▓ рд╕рддрд╣ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдПрдЬреЗрдВрдЯ рд╕реАрдзреЗ рдПрдЬреЗрдВрдЯрд┐рдХ рд▓реВрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ google_search, scrape_html, scrape_markdown, рдФрд░ рдкреВрд░реНрдг рдмреНрд░рд╛рдЙрдЬрд╝рд░-рд╕рддреНрд░ рдЯреВрд▓ (browser_create тЖТ browser_goto тЖТ browser_wait_for тЖТ browser_get_html тЖТ browser_close) рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдмрд┐рдирд╛ REST API рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЧреЛрдВрдж рдХреЛрдб рдХреЗред
  • 21 MCP рдЯреВрд▓реНрд╕ рд╣реЛрд╕реНрдЯреЗрдб рдПрдВрдбрдкреЙрдЗрдВрдЯ рдкрд░ (https://api.scrapeless.com/mcp)ред рдмреНрд░рд╛рдЙрдЬрд╝рд░-рд╕рддреНрд░ рдирд┐рдпрдВрддреНрд░рдг (16 рдЯреВрд▓), рдЦреЛрдЬ (google_search, google_trends), рдФрд░ рдмрд┐рдирд╛ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ (scrape_html, scrape_markdown, scrape_screenshot) тАФ рдЬреЛ scrapeless-mcp-server рджреНрд╡рд╛рд░рд╛ рд╕реНрдЯреНрд░реАрдо рдХрд░рдиреЗ рдпреЛрдЧреНрдп HTTP рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рд╣реЛрд╕реНрдЯреЗрдб рдПрдВрдбрдкреЙрдЗрдВрдЯ serverInfo.name: "scrapeless-mcp-server" рдХрд╛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд╕рдордп рд╕рдВрд╕реНрдХрд░рдг 0.2.0ред
  • рд░реЗрд╕рд┐рдбреЗрдВрд╢рд┐рдпрд▓-рдкреНрд░реЙрдХреНрд╕реА рдЗрдЧреНрд░реЗрд╕ рдХреЗ рд╕рд╛рде рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ред рдкреГрд╖реНрда Scrapeless Scraping Browser рдореЗрдВ рд░реЗрдВрдбрд░ рд╣реЛрддреЗ рд╣реИрдВ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдПрдЬреЗрдВрдЯ DOM рдХреЛ рдкрдврд╝реЗ, рдЗрд╕рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рднрд╛рд░реА рд▓рдХреНрд╖реНрдп рдмрд┐рдирд╛ рд╕реНрдерд╛рдиреАрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдкрд╛рд╕-рд░реЗрдЯ рд╕рд╛рдЗрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ: рд╕рд░рд▓ рдЪреБрдиреМрддреА рдкреГрд╖реНрда рдереЛрдбрд╝реЗ browser_wait рдХреЗ рдмрд╛рдж рд╕рд╛рдл рд╣реЛрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЬрд┐рди рд╕рд╛рдЗрдЯреЛрдВ рдореЗрдВ рд╕рдЦреНрдд рдмреЙрдЯ-рдбрд┐рдЯреЗрдХреНрд╢рди рдкрд░рддреЗрдВ рд╣реЛрддреА рд╣реИрдВ, рд╡реЗ рдЕрднреА рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ MCP рд╕рддреНрд░ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░ рд╕рдХрддреА рд╣реИрдВ тАФ рдЙрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдкреВрд░реНрд╡-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде SDK рд╕рддрд╣ рдкрд░ рд▓реМрдЯреЗрдВред
  • рдореЙрдбрд▓-рдирд┐рд╖реНрдкрдХреНрд╖ рдПрдЬреЗрдВрдЯ рд▓реВрдкред рд╕реНрдЯреНрд░реИрдВрдбреНрд╕ рдХреА рдзрд╛рд░рдгрд╛ тЖТ рддрд░реНрдХ тЖТ рдХреНрд░рд┐рдпрд╛ рдЪрдХреНрд░ рдХреНрд▓реЙрдб (рдпрд╛ рдХрд┐рд╕реА рднреА рд╕рдорд░реНрдерд┐рдд рдореЙрдбрд▓) рдХреЛ рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рд╕реЗ рдЯреВрд▓ рдХреЙрд▓ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЧрд╛рдЗрдб рд╕реНрдЯреНрд░реИрдВрдбреНрд╕ рдПрдВрдереНрд░реЛрдкрд┐рдХ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдВрдереНрд░реЛрдкрд┐рдХ рдХреНрд▓реЙрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
  • рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдлреНрддред рдирдП Scrapeless рдЦрд╛рддреЛрдВ рдореЗрдВ рдореБрдлреНрдд рд╕реНрдХреНрд░реЗрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд░рдирдЯрд╛рдЗрдо рд╢рд╛рдорд┐рд▓ рд╣реИ тАФ scrapeless рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВ рдФрд░ рдЬрдм рдЖрдк рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЬрд╛рдПрдВ рддреЛ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рдг рдкреГрд╖реНрда рджреЗрдЦреЗрдВред

рдмрдбрд╝реЗ рднрд╛рд╖рд╛ рдореЙрдбрд▓ (LLMs) рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд AI рдПрдЬреЗрдВрдЯ рддрд░реНрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдирд┐рд░реНрдгрдп рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдЕрдкрдиреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛ рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдПрдЬреЗрдВрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреЗ рд╡реЗрдм рдбреЗрдЯрд╛ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдЧрд╛рдЗрдб рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ AWS Strands SDK рдХреЛ Scrapeless рдХреЗ MCP рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рдХрд░ рд╕реНрд╡рд╛рдпрддреНрдд AI рдПрдЬреЗрдВрдЯ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ рдЬреЛ рд▓рд╛рдЗрд╡ рд╡реЗрдм рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ, рдЖрдк рдЬрд╛рдиреЗрдВрдЧреЗ:

  • AWS Strands SDK рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ AI рдПрдЬреЗрдВрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧреА рдврд╛рдВрдЪрд╛ рдХреНрдпреЛрдВ рд╣реИред
  • рдХреНрдпреЛрдВ AWS Strands SDK Scrapeless рдХреЗ MCP рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рд╛рдлрд╝ рддрд░реАрдХреЗ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИ рд╡реЗрдм-рдЬрд╛рдирдХрд╛рд░реА рд╡рд╛рд▓реЗ рдПрдЬреЗрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдПред
  • AWS Strands рдХреЛ Scrapeless рдХреЗ MCP рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрд╡рд╛рдпрддреНрдд рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛рддреНрдордХ рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рдПрдЬреЗрдВрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдПрдХреАрдХреГрдд рдХрд░реЗрдВред
  • рдХреИрд╕реЗ рдПрдЬреЗрдВрдЯ рдмрдирд╛рдПрдВ рдЬреЛ рдЕрдкрдиреЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрд╡рд╛рдпрддреНрдд рд░реВрдк рд╕реЗ рддрдп рдХрд░реЗрдВ рдХрд┐ рдХреМрди рд╕реЗ рд╡реЗрдм-рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред

рдЖрдЗрдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред


рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрдк рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

  • рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рд▓реВрдкред рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдирд╛рдо рдХреЗ рд▓рд┐рдП google_search рдЪрд▓рд╛рдПрдВ, рдлрд┐рд░ рд╢реАрд░реНрд╖ рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ scrape_markdown рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╕реНрдерд┐рддрд┐ рдФрд░ рд╣рд╛рд▓ рдХреА рд▓реЙрдиреНрдЪреЛрдВ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
  • рдПрдХрд▓-рдкреГрд╖реНрда рд╕рдВрд╡рд░реНрдзрдиред browser_create тЖТ browser_goto тЖТ browser_wait_for тЖТ browser_get_html тЖТ browser_close рдХреЛ рдПрдХ ASIN рдпрд╛ рдЙрддреНрдкрд╛рдж рдкреГрд╖реНрда рдХреЗ рдЦрд┐рд▓рд╛рдл рдЪрд▓рд╛рдПрдВ рдФрд░ рдореЙрдбрд▓ рдХреЛ рд╢реАрд░реНрд╖рдХ, рдореВрд▓реНрдп, рд░реЗрдЯрд┐рдВрдЧ, рдФрд░ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЛ рдПрдХ JSON рдЖрдХрд╛рд░ рдореЗрдВ рдЦреАрдВрдЪрдиреЗ рджреЗрдВ рдЬрд┐рд╕реЗ рдЖрдк рдкреНрд░реЙрдореНрдкреНрдЯ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
  • рдХрдИ-рдХреНрд╖реЗрддреНрд░ рдореВрд▓реНрдп рдЬрд╛рдВрдЪред рдПрдХ рд╣реА SKU рдкрд░ рд╡рд┐рднрд┐рдиреНрди рджреЗрд╢ рдХреА рд╕реНрдЯреЛрд░рдлреНрд░рдВрдЯреНрд╕ рдХреЗ рдЦрд┐рд▓рд╛рдл рджреЛ browser_create рд╕рддреНрд░ рдЪрд▓рд╛рдПрдВ рдФрд░ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдореВрд▓реНрдп рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВред
  • рдЦреЛрдЬ рдЗрдВрдЬрди рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдЕрдиреБрд╕рдВрдзрд╛рдиред рдПрдХ рд╡рд┐рд╖рдп рдкрд░ рдЧрддрд┐ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП google_search + google_trends рдХреЛ рдорд┐рд▓рд╛рдПрдВ, рдлрд┐рд░ scrape_markdown рдХреЗ рд╕рд╛рде рд╡реНрдпрдХреНрддрд┐рдЧрдд рд▓реЗрдЦреЛрдВ рдореЗрдВ рдбреМрд▓ рдХрд░реЗрдВред
  • рдЕрдиреБрдкрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреИрдкреНрдЪрд░ред scrape_screenshot (URL-in, PNG-out) рдпрд╛ UI рдЗрдВрдЯрд░рдПрдХреНрд╢рди рдХреЗ рдмрд╛рдж рдореЗрдВ рд╕рддреНрд░ рдореЗрдВ browser_screenshot рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╕рдордп рдХреЗ рдПрдХ рдмрд┐рдВрджреБ рдкрд░ рдкреГрд╖реНрда рдХреИрд╕реЗ рджрд┐рдЦрддрд╛ рдерд╛ рдЗрд╕рдХрд╛ рд╕рд╛рдХреНрд╖реНрдп рд░рдЦрд╛ рдЬрд╛ рд╕рдХреЗред
  • рдмрд╣реБ-рдЪрд░рдг UI рдкреНрд░рд╡рд╛рд╣ред browser_click, browser_type, browser_press_key, рдФрд░ browser_scroll рдПрдЬреЗрдВрдЯ рдХреЛ рдПрдХ рдирд┐рд░рдВрддрд░ рд╕рддреНрд░ рдХреЗ рднреАрддрд░ рд░реВрдкреЛрдВ, рд▓реЙрдЧ рдЧреЗрдЯреЛрдВ, рдФрд░ рд▓реЗрдЬрд╝реА-рд▓реЛрдбреЗрдб рдЧреНрд░рд┐рдбреНрд╕ рдХреЛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рджреЗрддреЗ рд╣реИрдВред

Scrapeless рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ рдЬрдмрдХрд┐ рд▓рд╛рдЧреВ рдХрд╛рдиреВрдиреЛрдВ, рдирд┐рдпрдореЛрдВ рдФрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдЧреЛрдкрдиреАрдпрддрд╛ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рд╕рдЦреНрддреА рд╕реЗ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗрд╡рд▓ рдкреНрд░рджрд░реНрд╢рди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИред


AWS Strands SDK рдХреНрдпрд╛ рд╣реИ?

AWS Strands SDK рдПрдХ Python рдврд╛рдВрдЪрд╛ рд╣реИ AI рдПрдЬреЗрдВрдЯреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреЛ PyPI рдкрд░ AWS рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (strands-agents, рд▓реЗрдЦрдХ opensource@amazon.com)ред рдпрд╣ рдПрдХ Agent рд╢реНрд░реЗрдгреА рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдореЙрдбрд▓ рдФрд░ рдЯреВрд▓реНрд╕ рдХреА рд╕реВрдЪреА рдХреЛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЬрдм рддрдХ рдХрд╛рд░реНрдп рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ рддрдм рддрдХ рдзрд╛рд░рдгрд╛ тЖТ рддрд░реНрдХ тЖТ рдХреНрд░рд┐рдпрд╛ рд▓реВрдк рдЪрд▓рд╛рддрд╛ рд╣реИред

рдпрд╣ рдЧрд╛рдЗрдб SDK рдХреЗ рддреАрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рдЬреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдкреИрдХреЗрдЬ рдореЗрдВ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдХреА рдЬрд╛рддреА рд╣реИ:

  • from strands import Agent тАФ рдПрдЬреЗрдВрдЯ рд╢реНрд░реЗрдгреА рд╕реНрд╡рдпрдВред
  • from strands.models.anthropic import AnthropicModel тАФ рдПрдВрдереНрд░реЛрдкрд┐рдХ рдкреНрд░рджрд╛рддрд╛; рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╕рд┐рдЧреНрдиреЗрдЪрд░ AnthropicModel(*, client_args: dict | None = None, **model_config) рд╣реИ рдФрд░ model_id, max_tokens, params={"temperature": ...} рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред
  • from strands.tools.mcp import MCPClient тАФ MCP рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдХреЛ рд▓рдкреЗрдЯрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХрд┐рд╕реА рднреА MCP рд╕рд░реНрд╡рд░ рдХреЗ рдЯреВрд▓реНрд╕ рдХреЛ Agent(tools=...) рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
    рдПрдЬреЗрдВрдЯ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рдХрд╛рд░ strands.agent.agent_result.AgentResult рд╣реИ, рдЬреЛ рдПрдХ рдбреЗрдЯрд╛ рдХреНрд▓рд╛рд╕ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдлрд╝реАрд▓реНрдбреНрд╕ stop_reason, message, metrics, state (рдЕрддрд┐рд░рд┐рдХреНрдд рд╡реИрдХрд▓реНрдкрд┐рдХ interrupts, structured_output) рд╣реЛрддреА рд╣реИрдВред

рд▓реВрдк рдХреИрд╕реЗ рдЪрд▓рддрд╛ рд╣реИ

  1. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ agent.invoke_async(prompt) рдХреЛ рдПрдХ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИред
  2. рдореЙрдбрд▓ рд╕рдВрдХреЗрдд рдФрд░ рдЙрдкрд▓рдмреНрдз рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
  3. рдпрд╛ рддреЛ рдпрд╣ рдЕрдВрддрд┐рдо рд╕рдВрджреЗрд╢ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдпрд╛ рдЯреВрд▓ рдХреЙрд▓ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред
  4. рдпрджрд┐ рдХреЛрдИ рдЙрдкрдХрд░рдг рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реНрдЯреНрд░реИрдВрдбреНрд╕ рдЗрд╕реЗ рдЪрд▓рд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдореЙрдбрд▓ рдХреЛ рд╡рд╛рдкрд╕ рдлреАрдб рдХрд░рддрд╛ рд╣реИред
  5. рдХрджрдо 3-4 рддрдм рддрдХ рджреЛрд╣рд░рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдореЙрдбрд▓ рдЕрдВрддрд┐рдо рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ред

рд╡реЗрдм рдбреЗрдЯрд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдХреЗ рд▓рд┐рдП AWS рд╕реНрдЯреНрд░реИрдВрдбреНрд╕ рдПрд╕рдбреАрдХреЗ рдХреЛ рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рдХреЗ рдПрдорд╕реАрдкреА рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг

рдПрд▓рдПрд▓рдПрдо рд╕рднреА рдкрд░ рд╡реЗрдм рдбреЗрдЯрд╛ рдирд╣реАрдВ рд▓рд╛рддреЗ рд╣реИрдВред рд╕реНрдЯреНрд░реИрдВрдбреНрд╕ рдПрдЬреЗрдВрдЯ рдХреЛ рдпрд╣ рдХреНрд╖рдорддрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕реЗ рдПрдХ рдПрдорд╕реАрдкреА рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рд╡реЗрдм рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред scrapeless-mcp-server рдПрдХ рдРрд╕рд╛ рдПрдорд╕реАрдкреА рд╕рд░реНрд╡рд░ рд╣реИ - рдЬреЛ рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рдПрдХ рдХреНрд▓рд╛рдЙрдб-рд╣реЛрд╕реНрдЯреЗрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЬреЛ рдЖрд╡рд╛рд╕реАрдп рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИред

рдкреНрд░рдорд╛рдгрд┐рдд рд▓рд╛рдЗрд╡ (tools/list рдХреЗ рдЦрд┐рд▓рд╛рдл https://api.scrapeless.com/mcp, рдЖрдЬ): 21 рдЙрдкрдХрд░рдг, рддреАрди рд╕рдореВрд╣реЛрдВ рдореЗрдВ:

  • рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ - scrape_html, scrape_markdown, scrape_screenshotред
  • рдЦреЛрдЬ - google_search, google_trendsред
  • рдПрдХ рд╕реНрдерд╛рдпреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рддреНрд░ - browser_create, browser_goto, browser_go_back, browser_go_forward, browser_wait, browser_wait_for, browser_get_html, browser_get_text, browser_snapshot, browser_click, browser_type, browser_press_key, browser_scroll, browser_scroll_to, browser_screenshot, browser_closeред

рдЕрдкрдиреЗ рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рдореБрдлреНрдд рдпреЛрдЬрдирд╛ API рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ред рдПрдорд╕реАрдкреА рд╕рд░реНрд╡рд░ рдХрд╛ рд╕реНрд░реЛрдд github.com/scrapeless-ai/scrapeless-mcp-server рдкрд░ рд╣реИред


рдкрд╛рдпрдерди рдореЗрдВ AWS рд╕реНрдЯреНрд░реИрдВрдбреНрд╕ рдПрд╕рдбреАрдХреЗ рдХреЛ рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рдПрдорд╕реАрдкреА рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛

рдЗрд╕ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рдЖрдк AWS рд╕реНрдЯреНрд░реИрдВрдбреНрд╕ рдПрд╕рдбреАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдПрдЖрдИ рдПрдЬреЗрдВрдЯ рдмрдирд╛рдПрдВрдЧреЗ, рдЬреЛ рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рдПрдорд╕реАрдкреА рд╕рд░реНрд╡рд░ рд╕реЗ рд▓рд╛рдЗрд╡ рдбреЗрдЯрд╛ рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдФрд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рд╕реЗ рд▓реИрд╕ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдПрдХ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛рддреНрдордХ рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рдПрдЬреЗрдВрдЯ рдмрдирд╛рддреА рд╣реИ, рдЬреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдмрд╛рдЬрд╛рд░реЛрдВ рдФрд░ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдПрдЬреЗрдВрдЯ рдЕрдкрдиреЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ, рдПрдЬреЗрдВрдЯрд┐рдХ рд▓реВрдк рдХреА рд╢рдХреНрддрд┐ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИред

рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд░рдг-рджрд░-рдЪрд░рдг рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЖрдк AWS рд╕реНрдЯреНрд░реИрдВрдбреНрд╕ рдПрд╕рдбреАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ Claude + Scrapeless MCP-рд╕рдВрдЪрд╛рд▓рд┐рдд рдПрдЖрдИ рдПрдЬреЗрдВрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХреЗрдВред

рдкреВрд░реНрд╡рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ

рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕:

рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ:

  • рдкрд╛рдпрдерди 3.10 рдпрд╛ рдЙрдЪреНрдЪрддрд░ред
  • Node.js (рд▓реЗрдЯреЗрд╕реНрдЯ LTS рд╕рдВрд╕реНрдХрд░рдг рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ)ред
  • рдПрдХ рдкрд╛рдпрдерди IDE рдЬреИрд╕реЗ VS рдХреЛрдб рдЬрд┐рд╕рдореЗрдВ рдкрд╛рдпрдерди рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдпрд╛ PyCharm рд╣реЛред

рдЦрд╛рддрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ:

  • рдПрдХ рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рдЦрд╛рддрд╛ рдФрд░ API рдХреБрдВрдЬреА - рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рдкрд░ рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВред
  • рдПрдХ рдПрдВрдереНрд░реЛрдкрд┐рдХ рдЦрд╛рддрд╛ рдЬрд┐рд╕рдореЗрдВ рдХреНрд▓реЙрдб API рдкрд╣реБрдВрдЪ рдФрд░ рдХреНрд░реЗрдбрд┐рдЯ рд╣реЛред

рдкреГрд╖реНрдарднреВрдорд┐ рдЬреНрдЮрд╛рди (рд╕рд╣рд╛рдпрдХ рд▓реЗрдХрд┐рди рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ):

  • MCP рдХреИрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреА рдореВрд▓ рд╕рдордЭред
  • AI рдПрдЬреЗрдВрдЯреЛрдВ рдФрд░ рдЙрдирдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рддрддрд╛ред
  • рдкрд╛рдпрдерди рдореЗрдВ рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рдореВрд▓ рдЬреНрдЮрд╛рдиред

рдЪрд░рдг #1: рдЕрдкрдирд╛ рдкрд╛рдпрдерди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ

рдЕрдкрдиреЗ рдЯрд░реНрдорд┐рдирд▓ рдХреЛ рдЦреЛрд▓реЗрдВ рдФрд░ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВ:

bash Copy
mkdir strands-scrapeless-agent
cd strands-scrapeless-agent

рдПрдХ рдкрд╛рдпрдерди рд╡рд░реНрдЪреБрдЕрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

bash Copy
python -m venv venv

рд╡рд░реНрдЪреБрдЕрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдВ:

bash Copy
# рд▓рд┐рдирдХреНрд╕/рдореИрдХреЛрд╕ рдкрд░:
source venv/bin/activate

# рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░:
venv\Scripts\activate

рдореБрдЦреНрдп рдкрд╛рдпрдерди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:

bash Copy
touch agent.py

рдЖрдкрдХреА рдлрд╝реЛрд▓реНрдбрд░ рд╕рдВрд░рдЪрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:

Copy
strands-scrapeless-agent/
тФЬтФАтФА venv/
тФФтФАтФА agent.py

рдЕрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдкрд╛рдпрдерди рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИ рдЬреЛ рд╡реЗрдм рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдЖрдИ рдПрдЬреЗрдВрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред


рдЪрд░рдг #2: AWS рд╕реНрдЯреНрд░реИрдВрдбреНрд╕ рдПрд╕рдбреАрдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

рдЕрдкрдиреЗ рд╕рдХреНрд░рд┐рдп рд╡рд░реНрдЪреБрдЕрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ, рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

bash Copy
pip install "strands-agents>=1.0" anthropic "mcp>=1.0" python-dotenv

рдпрд╣ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ:

  • strands-agents: AI рдПрдЬреЗрдВрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП AWS рд╕реНрдЯреНрд░реИрдВрдбреНрд╕ рдПрд╕рдбреАрдХреЗред
  • anthropic: strands.models.anthropic.AnthropicModel рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреАрдпрд░ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реАред
  • mcp: рдЖрдзрд┐рдХрд╛рд░рд┐рдХ MCP рдкрд╛рдпрдерди рдПрд╕рдбреАрдХреЗ, рдЬреЛ mcp.client.streamable_http рдкрд░рд┐рд╡рд╣рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред
  • python-dotenv: рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдПред

рдЗрд╕рдХреЗ рдмрд╛рдж, рдЕрдкрдиреЗ agent.py рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдпреЗ рдЗрдореНрдкреЛрд░реНрдЯ рдЬреЛрдбрд╝реЗрдВ:

python Copy
from strands import Agent
from strands.models.anthropic import AnthropicModel
from strands.tools.mcp import MCPClient
from mcp.client.streamable_http import streamablehttp_client

рдЖрдк рдЕрдм рдПрдЬреЗрдВрдЯ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП AWS рд╕реНрдЯреНрд░реИрдВрдбреНрд╕ рдПрд╕рдбреАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдЪрд░рдг #3: рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдЕрдк рдХрд░реЗрдВ

рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд API рдХреБрдВрдЬреА рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдХ .env рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ:

bash Copy
touch .env

.env рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдкрдиреА API рдХреБрдВрдЬреА рдЬреЛрдбрд╝реЗрдВ:

ini Copy
# рдХреНрд▓реЙрдб рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдПрдВрдереНрд░реЛрдкрд┐рдХ API
ANTHROPIC_API_KEY=your_anthropic_key_here

# рдПрдорд╕реАрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реЗрдм рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕
SCRAPELESS_KEY=your_scrapeless_key_here

рдЕрдкрдиреЗ agent.py рдореЗрдВ, рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд▓реЛрдбрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░реЗрдВ:

python Copy
import os
hi Copy
from dotenv import load_dotenv

load_dotenv()

# API рдХреБрдВрдЬреА рдкрдврд╝реЗрдВ
ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY")
SCRAPELESS_KEY = os.getenv("SCRAPELESS_KEY")

рдЖрдк рдЕрдм .env рдлрд╝рд╛рдЗрд▓ рд╕реЗ API рдХреБрдВрдЬреА рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдЕрдк рдХрд░ рдЪреБрдХреЗ рд╣реИрдВред


рдЪрд░рдг #4: Scrapeless MCP рдЕрдВрдд рдмрд┐рдВрджреБ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ

рдпрд╣ рдЧрд╛рдЗрдб https://api.scrapeless.com/mcp рдкрд░ рд╣реЛрд╕реНрдЯреЗрдб рд╕реНрдЯреНрд░реАрдо рдХрд░рдиреЗ рдпреЛрдЧреНрдп HTTP рдЕрдВрдд рдмрд┐рдВрджреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рд╕реНрдерд╛рдиреАрдп рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЗрд╕рдХреА рдзреВрдореНрд░-рдкрд░реАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП curl рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

bash Copy
curl -X POST "https://api.scrapeless.com/mcp" \
  -H "x-api-token: $SCRAPELESS_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"smoke","version":"1.0"}}}'

рдПрдХ рд╕рдлрд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд▓реМрдЯрд╛рддреА рд╣реИ:

  • HTTP 200 OK Content-Type: text/event-stream рдХреЗ рд╕рд╛рде
  • рдПрдХ mcp-session-id рд╣реЗрдбрд░ тАФ рдЗрд╕рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдлреЙрд▓реЛ-рдЕрдк tools/list рдФрд░ tools/call рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ
  • рдПрдХ рдмреЙрдбреА рдЗрд╡реЗрдВрдЯ data: {"result":{"protocolVersion":"2024-11-05","capabilities":{"tools":{"listChanged":true}},"serverInfo":{"name":"scrapeless-mcp-server","version":"0.2.0",...}},...}

рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд╕рдордп рд▓рд╛рдЗрд╡ рдЕрдВрдд рдмрд┐рдВрджреБ рдХреЗ рдЦрд┐рд▓рд╛рдл рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛: 21 MCP рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП serverInfo рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдЕрдкрдиреЗ рдореБрдлреНрдд рдпреЛрдЬрдирд╛ рдкрд░ API рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ: app.scrapeless.com

рдкреВрд░реНрдг SDK рдФрд░ CLI рд╕рдВрджрд░реНрдн: scrapeless рд╡реЗрдмрд╕рд╛рдЗрдЯред


рдЪрд░рдг #5: Strands рдореЙрдбрд▓ initialize рдХрд░реЗрдВ

рдЕрдкрдиреЗ agent.py рдореЗрдВ Anthropic Claude рдореЙрдбрд▓ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:

python Copy
# Anthropic рдореЙрдбрд▓ (Strands Anthropic рдкреНрд░рджрд╛рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Claude) initialize рдХрд░реЗрдВ
model = AnthropicModel(
    client_args={"api_key": ANTHROPIC_API_KEY},
    model_id="claude-sonnet-4-6",
    max_tokens=4096,
    params={"temperature": 0.3}
)

рдпрд╣ рдЖрдкрдХреЗ рдПрдЬреЗрдВрдЯ рдХреЗ LLM рдХреЗ рд░реВрдк рдореЗрдВ Claude рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ рдирд┐рд░рдВрддрд░ рдФрд░ рдХреЗрдВрджреНрд░рд┐рдд рдмрдирд╛рдИ рдЬрд╛ рд╕рдХреЗрдВред client_args рд╢рдмреНрджрдХреЛрд╢ Anthropic рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ Strands рддрд░реАрдХрд╛ рд╣реИ (рджреЗрдЦреЗрдВ AWS Strands Anthropic рдкреНрд░рджрд╛рддрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝)ред


рдЪрд░рдг #6: Scrapeless MCP рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ

рд╣реЛрд╕реНрдЯреЗрдб рд╕реНрдЯреНрд░реАрдо рдХрд░рдиреЗ рдпреЛрдЧреНрдп HTTP рдЕрдВрдд рдмрд┐рдВрджреБ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП MCP рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдПрдВ:

python Copy
import asyncio
import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

def http_transport():
    """рд╣реЛрд╕реНрдЯреЗрдб Scrapeless MCP рдЕрдВрдд рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░реАрдо рдХрд░рдиреЗ рдпреЛрдЧреНрдп-HTTP рдкрд░рд┐рд╡рд╣рдиред"""
    return streamablehttp_client(
        url="https://api.scrapeless.com/mcp",
        headers={"x-api-token": SCRAPELESS_KEY},
    )

async def connect_mcp_tools():
    """Scrapeless MCP рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рдЙрдкрдХрд░рдг рдЦреЛрдЬреЗрдВред"""

    logger.info("Scrapeless MCP рд╕рд░реНрд╡рд░ (HTTP) рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ...")
    mcp_client = MCPClient(http_transport)

    with mcp_client:
        tools = mcp_client.list_tools_sync()
        logger.info(f"рдкрд╛рдпрд╛ рдЧрдпрд╛ {len(tools)} MCP рдЙрдкрдХрд░рдг")
        for tool in tools:
            logger.info(f"  - {tool.tool_name}")

    return mcp_client, tools

рд▓рд╛рдЗрд╡ рдЕрдВрдд рдмрд┐рдВрджреБ рдХреЗ рдЦрд┐рд▓рд╛рдл рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛: рдКрдкрд░ рдХреЗ рдХреЙрд▓ рдЕрдиреБрдХреНрд░рдо рд╕реЗ рдкрд╛рдпрд╛ рдЧрдпрд╛ 21 MCP рдЙрдкрдХрд░рдг рд▓реЙрдЧ, рдЙрд╕рдХреЗ рдмрд╛рдж рд╕рднреА 21 рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдирд╛рдо рд╕реВрдЪреАрдмрджреНрдзред

рдЙрдкрд▓рдмреНрдз Scrapeless MCP рдЙрдкрдХрд░рдг

рдиреАрдЪреЗ рд╕реВрдЪреАрдмрджреНрдз рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреА рд╣реИ рдЬреЛ Scrapeless MCP рд╕рд░реНрд╡рд░ рд╕реНрдЯреНрд░реАрдо рдХрд░рдиреЗ рдпреЛрдЧреНрдп HTTP рдкрд░рд┐рд╡рд╣рди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред list_tools_sync() рд░рдирдЯрд╛рдЗрдо рдкрд░ рд╕рдорд╛рди рд╕реЗрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдЙрдкрдХрд░рдг рдЙрджреНрджреЗрд╢реНрдп
browser_create рдПрдХ Scrapeless рдХреНрд▓рд╛рдЙрдб-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рддреНрд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд░реЗрдВ
browser_close рд╕рддреНрд░ рдХреЛ рдЬрд╛рд░реА рдХрд░реЗрдВ
browser_goto рдПрдХ URL рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░реЗрдВ
browser_go_back / browser_go_forward рд╕рддреНрд░ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧрддрд┐рд╢реАрд▓рддрд╛ рдХрд░реЗрдВ
browser_wait_for рдХрд┐рд╕реА CSS рдЪрдпрдирдХрд░реНрддрд╛ рдХреЗ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ
browser_wait рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ
browser_get_html рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрдд DOM рдкрдврд╝реЗрдВ
browser_get_text рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рдХреЗ рджреГрд╢реНрдп рдкрд╛рда рдХреЛ рдкрдврд╝реЗрдВ
browser_snapshot рдкреГрд╖реНрда рдХреА рдкрд╣реБрдВрдЪSnapshot рдХреИрдкреНрдЪрд░ рдХрд░реЗрдВ
browser_click рдЪрдпрдирдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдПрдХ рддрддреНрд╡ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
browser_type рдПрдХ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдкрд╛рда рдЯрд╛рдЗрдк рдХрд░реЗрдВ
browser_press_key PageDown рдпрд╛ Enter рдЬреИрд╕реЗ рдХреАрд╕реНрдЯреНрд░реЛрдХ рднреЗрдЬреЗрдВ
browser_scroll рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВ
browser_scroll_to рджреГрд╢реНрдп рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрддреНрд╡ рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВ
browser_screenshot рдПрдХ PNG рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреИрдкреНрдЪрд░ рдХрд░реЗрдВ
google_search рдПрдХ Google рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдЪрд▓рд╛рдПрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдПрдВ
google_trends рдХреАрд╡рд░реНрдб рдХреЗ рд▓рд┐рдП Google рдкреНрд░рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рд▓рд╛рдПрдБ
scrape_html рдХрд┐рд╕реА рднреА URL рдХреЗ рдкреНрд░рд╕реНрддреБрдд HTML рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
scrape_markdown рдПрдХ URL рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдкрдардиреАрдп Markdown рд▓реМрдЯрд╛рдПрдВ
scrape_screenshot рдХрд┐рд╕реА рднреА URL рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреИрдкреНрдЪрд░ рдХрд░реЗрдВ

рдЪрд░рдг #7: рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛рддреНрдордХ рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рдПрдЬреЗрдВрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ

рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛рддреНрдордХ рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖реАрдХреГрдд рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рдПрдХ рдПрдЬреЗрдВрдЯ рдмрдирд╛рдПрдВ:

python Copy
def create_agent(model, tools):

"""рд╡реЗрдм рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛рддреНрдордХ рдЦреБрдлрд┐рдпрд╛ рдПрдЬреЗрдВрдЯ рдмрдирд╛рдПрдВ"""

python Copy
async def connect_mcp_tools():
    """рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ MCP рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВред"""

    logger.info("рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ MCP рд╕рд░реНрд╡рд░ (HTTP) рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛ рд░рд╣рд╛ рд╣реИ...")
    mcp_client = MCPClient(http_transport)

    with mcp_client:
        tools = mcp_client.list_tools_sync()
        logger.info(f"рдЦреЛрдЬреА рдЧрдИ {len(tools)} MCP рдЙрдкрдХрд░рдг")
        for tool in tools:
            logger.info(f"  - {tool.tool_name}")

    return mcp_client, tools


def create_agent(model, tools):
    """рд╡реЗрдм рдбреЗрдЯрд╛ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛рддреНрдордХ рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рдПрдЬреЗрдВрдЯ рдмрдирд╛рдПрдБ"""

    system_prompt = """рдЖрдк рдПрдХ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛рддреНрдордХ рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╣реИрдВ рдЬреЛ рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ MCP рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реЗрдм рдбреЗрдЯрд╛ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

## рдорд┐рд╢рди
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреЗ рд╡реЗрдм рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реНрдпрд╛рдкрдХ рдмрд╛рдЬрд╛рд░ рдФрд░ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛рддреНрдордХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВред

## рдЙрдкрд▓рдмреНрдз MCP рдЙрдкрдХрд░рдг (рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕)
- google_search, google_trends
- scrape_html, scrape_markdown, scrape_screenshot
- browser_create, browser_close
- browser_goto, browser_go_back, browser_go_forward
- browser_wait_for, browser_wait
- browser_get_html, browser_get_text, browser_snapshot
- browser_click, browser_type, browser_press_key
- browser_scroll, browser_scroll_to
- browser_screenshot

## рд╕реНрд╡рд╛рдпрддреНрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣
рдЬрдм рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛рд░реНрдп рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реНрд╡рд╛рдпрддреНрдд рд░реВрдк рд╕реЗ:
1. рд▓рдХреНрд╖реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдВ рдХрд┐ рдХреМрди рд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред
2. рдХрдИ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рд╡реНрдпрд╛рдкрдХ рдбреЗрдЯрд╛ рдПрдХрддреНрд░рд┐рдд рдХрд░реЗрдВред
3. рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдХреЛ рдЙрдкрдпреЛрдЧреА рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрд╢реНрд▓реЗрд╖рд┐рдд рдХрд░реЗрдВред
4. рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рдгрдиреАрддрд┐рдХ рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред

рдЙрдкрдХрд░рдг рдЪрдпрди рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд░рд╣реЗрдВред рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд┐рд╕реА рднреА рдЙрдкрдХрд░рдг рдХрд╛ рд╕рдВрдпреЛрдЬрди рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдкреВрд░реА рд╕реНрд╡рд╛рдпрддреНрддрддрд╛ рд╣реИред"""

    return Agent(
        model=model,
        tools=tools,
        system_prompt=system_prompt
    )


async def main():
    """рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛рддреНрдордХ рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рдПрдЬреЗрдВрдЯ рдЪрд▓рд╛рдПрдБ"""

    print("AWS Strands + Scrapeless MCP рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛рддреНрдордХ рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рдПрдЬреЗрдВрдЯ")
    print("=" * 70)

    try:
        mcp_client, tools = await connect_mcp_tools()
        agent = create_agent(model, tools)

        print("\nрдПрдЬреЗрдВрдЯ рд╡реЗрдм рдбреЗрдЯрд╛ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рде рддреИрдпрд╛рд░ рд╣реИред")
        print("\nрд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреНрд░рд╛рд░рдВрдн рд╣реЛ рд░рд╣рд╛ рд╣реИ...")
        print("-" * 40)

        prompt = """
        рдЯреЗрд╕реНрд▓рд╛ рдХреА рдЗрд▓реЗрдХреНрдЯреНрд░рд┐рдХ рд╡рд╛рд╣рди рдмрд╛рдЬрд╛рд░ рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛рддреНрдордХ рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВред

        рдЕрдиреБрд╕рдВрдзрд╛рди:
        - рд╡рд░реНрддрдорд╛рди рдЙрддреНрдкрд╛рдж рд▓рд╛рдЗрдирдЕрдк рдФрд░ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рдг рд░рдгрдиреАрддрд┐ред
        - рдореБрдЦреНрдп рдкреНрд░рддрд┐рдпреЛрдЧреА рдФрд░ рдЙрдирдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ред
        - рд╣рд╛рд▓ рдХреА рд░рдгрдиреАрддрд┐рдХ рдШреЛрд╖рдгрд╛рдПрдБред
        - рдмрд╛рдЬрд╛рд░ рд╣рд┐рд╕реНрд╕реЗрджрд╛рд░реА рдФрд░ рд╕реНрдерд┐рддрд┐ред

        рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ tesla.com рдФрд░ рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдореЛрдВ рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХрд╛ рдбреЗрдЯрд╛ рдПрдХрддреНрд░рд┐рдд рдХрд░реЗрдВред
        """

        with mcp_client:
            result = await agent.invoke_async(prompt)

        print("\nрд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░рд┐рдгрд╛рдо:")
        print("=" * 50)
        print(result)

        print("\nрд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреВрд░рд╛ред")

    except Exception as e:
        logger.error(f"рддреНрд░реБрдЯрд┐: {e}")
        print(f"\nрддреНрд░реБрдЯрд┐: {e}")


if __name__ == "__main__":
    asyncio.run(main())

рдЬреИрд╕рд╛ рдХрд┐ рдЪрд░рдг #8 рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, invoke_async рдПрдХ AgentResult рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдЧреБрдг рд╣реИрдВ message, stop_reason, metrics, рдФрд░ stateред рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рд╕рд╣рд╛рдпрдХ рдкрд╛рда рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ print(result.message) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

AI рдПрдЬреЗрдВрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

bash Copy
python agent.py

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ MCP рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдЧреА, list_tools_sync() рдЪрд▓рд╛рдПрдЧреА (рдЬреЛ 21 рдЙрдкрдХрд░рдг рд▓реМрдЯрд╛рддреА рд╣реИ тАФ рд▓реЗрдЦрди рдХреЗ рд╕рдордп рд╣реЛрд╕реНрдЯреЗрдб рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд), рдПрдЬреЗрдВрдЯ рдХреЛ рдкреНрд░рдХрдЯ рдХрд░реЗрдЧреА, рдФрд░ agent.invoke_async(prompt) рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧреАред рдореЙрдбрд▓ рдирд┐рд░реНрдгрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИред рдПрдЬреЗрдВрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рднреА рджрд┐рдП рдЧрдП рд░рди рдкрд░ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдореЙрдбрд▓ рдХреНрдпрд╛ рдЪреБрдирддрд╛ рд╣реИ тАФ рд╕реНрдЯреНрд░реИрдиреНрдбреНрд╕ рдЙрдкрдХрд░рдг рдЕрдиреБрдХреНрд░рдо рдХреЛ рд╕реАрдорд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред


рдирд┐рд╖реНрдХрд░реНрд╖

рдпрд╣ рдЧрд╛рдЗрдб AWS рд╕реНрдЯреНрд░реИрдиреНрдбреНрд╕ SDK рдХреЛ рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рдХреА MCP рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреЛрдбрд╝рддреА рд╣реИ: ~100 рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдкрд╛рдЗрдерди, 21 рд╕рддреНрдпрд╛рдкрд┐рдд MCP рдЙрдкрдХрд░рдг рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдФрд░ рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдбреЗрдЯрд╛ рдкрдеред

app.scrapeless.com рдкрд░ рдПрдХ API рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред


рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ AI-рд╕рдВрдЪрд╛рд▓рд┐рдд рдбреЗрдЯрд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ?

рд╣рдорд╛рд░реЗ рд╕рдореБрджрд╛рдп рд╕реЗ рдЬреБрдбрд╝реЗрдВ рддрд╛рдХрд┐ рдПрдХ рдореБрдлреНрдд рдпреЛрдЬрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдВ рдФрд░ рдЙрди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВ рдЬреЛ AWS рд╕реНрдЯреНрд░реИрдиреНрдбреНрд╕ + рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ MCP рдПрдЬреЗрдВрдЯреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ: Discord ┬╖ Telegramред

app.scrapeless.com рдкрд░ рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВ рдореБрдлреНрдд рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд░рдирдЯрд╛рдЗрдо рдХреЗ рд▓рд┐рдП рдФрд░ рдКрдкрд░ рджрд┐рдП рдЧрдП AWS рд╕реНрдЯреНрд░реИрдиреНрдбреНрд╕ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рдХреЛ рдЙрди рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ рдЬрд┐рдирдХреА рдЖрдкрдХреА рдЯреАрдо рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкреВрд░реНрдг рд╕рдВрджрд░реНрдн docs.scrapeless.com рдкрд░ рд╣реИред рдЗрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд░рдирдЯрд╛рдЗрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЙрддреНрдкрд╛рдж рдкреГрд╖реНрда рдФрд░ рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рдХреЛ рд▓реИрдВрдЧрдЪреЗрди рдПрдЬреЗрдВрдЯреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдкрд░ рд╣рдорд╛рд░реЗ рд╕рд╣рдпреЛрдЧреА рдЧрд╛рдЗрдб рдХреЛ рджреЗрдЦреЗрдВред

рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╢реНрди

Q1: MCP рдХреНрдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ AI рдПрдЬреЗрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрдпреЛрдВ рд╣реИ?

Copy
MCP (рдореЙрдбрд▓ рдХрдВрдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓) AI рдПрдЬреЗрдВрдЯреЛрдВ рдХреЛ рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рдбреЗрдЯрд╛ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреБрд▓рд╛ рдорд╛рдирдХ рд╣реИред рдПрдХ MCP рд╕рд░реНрд╡рд░ рдПрдХ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рдЙрдкрдХрд░рдг рд╕реВрдЪреА рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХреЛрдИ рднреА MCP-рд╕рдЪреЗрдд рдХреНрд▓рд╛рдЗрдВрдЯ тАФ рдЬрд┐рд╕рдореЗрдВ AWS рд╕реНрдЯреНрд░реИрдВрдбреНрд╕ SDK рд╢рд╛рдорд┐рд▓ рд╣реИ тАФ рдХреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ MCP рдХреЗ рд╕рд╛рде, рдПрдЬреЗрдВрдЯ рдХреЛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░, рд╕рд░реНрдЪ-рдЗрдВрдЬрди рдХреНрд╡реЗрд░реА рдФрд░ рдорд╛рд░реНрдХрдбрд╛рдЙрди/HTML рд╕реНрдХреНрд░реИрдкрд░реНрд╕ рдХрд╛ рдЯрд╛рдЗрдк рдПрдХреНрд╕реЗрд╕ рдорд┐рд▓рддрд╛ рд╣реИ рдмрд┐рдирд╛ рдкреНрд░рддрд┐-API рдЧреЛрдВрдж рдХреЛрдб рд▓рд┐рдЦреЗред рдПрдЬреЗрдВрдЯ рдПрдЬреЗрдВрдЯрд┐рдХ рд▓реВрдк рдХреЗ рднреАрддрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ; MCP рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд╕реНрдХреАрдорд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд▓реЗ рдЖрддрд╛ рд╣реИред

**рдкреНрд░рд╢реНрди реи: рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП MCP рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╕реЗ рдореБрдЭреЗ рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ?**

`https://api.scrapeless.com/mcp` (рд╕рдВтАШ x-api-tokenтАЩ рд╣реЗрдбрд░ рдХреЗ рд╕рд╛рде) рдкреВрд░реНрдг 21-рдЙрдкрдХрд░рдг рд╕рддрд╣ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ рд╕реНрдЯреНрд░реИрдВрдбреНрд╕ `MCPClient` рдХреЗ рд╕рд╛рде рдПрдВрдб-рдЯреВ-рдПрдВрдб рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХрд┐рд╕реА рд╕реНрдерд╛рдиреАрдп рдиреЛрдб рд░рдирдЯрд╛рдЗрдо рдпрд╛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдкреНрд░реЛрд╕реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ тАФ `streamablehttp_client(...)` рдПрдХ рдЗрдВрдкреЛрд░реНрдЯ рдФрд░ рдПрдХ URL рд╣реИред

**рдкреНрд░рд╢реНрди рей: рдПрдЬреЗрдВрдЯрд┐рдХ рд▓реВрдк рдПрдХ рдЙрдкрдХрд░рдг рд╡рд┐рдлрд▓рддрд╛ рдпрд╛ рдПрдВрдЯреА-рдмреЙрдЯ рдЪреБрдиреМрддреА рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ?**

рд╕реНрдЯреНрд░реИрдВрдбреНрд╕ рдЙрдкрдХрд░рдг рдкрд░рд┐рдгрд╛рдо тАФ рдЬрд┐рд╕рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ тАФ рдХреЛ рдореЙрдбрд▓ рдореЗрдВ рд╡рд╛рдкрд╕ рднреЗрдЬрддрд╛ рд╣реИ, рдЬреЛ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ рдХрд┐ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рд╣реИ, рдЙрдкрдХрд░рдг рдмрджрд▓рдирд╛ рд╣реИ, рдпрд╛ рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рдХреЗ рд▓рд┐рдП, рд╕рд╛рдорд╛рдиреНрдп рд╕реБрдзрд╛рд░ `browser_close` + рдПрдХ рддрд╛рдЬрд╛ `browser_create` рд╣реИ, рдпрд╛ рдкреВрд░реНрдг рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рддреНрд░ рд╕реЗ `scrape_markdown` / `scrape_html` рдкрд░ рд╡рд╛рдкрд╕ рдЖрдирд╛ рд╣реИред рдкреНрд░рддрд┐-рдХреЙрд▓ рдкреНрд░реЙрдХреНрд╕реА рдХреНрд╖реЗрддреНрд░ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╣реАрдВ рд╣реИ рдЬреЛ MCP `browser_create` рдЙрдкрдХрд░рдг рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ тАФ `scrapeless-mcp-server/src/session-manager.ts` рдХреЗрд╡рд▓ `session_ttl`, `profile_id`, рдФрд░ `profile_persist` рдХреЛ рдлреЙрд░рд╡рд░реНрдб рдХрд░рддрд╛ рд╣реИред рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдкрд┐рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбреИрд╢рдмреЛрд░реНрдб рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рджреЗрд╢ рдХрд╛ рд╕рдорд╛рд╡реЗрд╢ рд╣реЛ рдФрд░ рдЗрд╕реЗ MCP рд╕рд░реНрд╡рд░ рдкрд░ `BROWSER_PROFILE_ID` рдПрдирд╡ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░реЗрдВред

**рдкреНрд░рд╢реНрди рек: рдХреНрдпрд╛ рдЗрд╕реЗ рдмрд┐рдирд╛ AI рдПрдЬреЗрдВрдЯ рдХреЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?**

рд╣рд╛рдБред рд╣рд░ рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ MCP рдЙрдкрдХрд░рдг рдХреЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рд╕реНрдЯреНрд░реАрдореЗрдмрд▓ HTTP рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХреЗ рдЦрд┐рд▓рд╛рдл `curl` рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЪрд░рдг #4 рд╕реЗ `curl` `serverInfo.name: "scrapeless-mcp-server"` рдФрд░ рдПрдХ `mcp-session-id` рд╣реЗрдбрд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдлреЙрд▓реЛ-рдЕрдк `tools/list` рдФрд░ `tools/call` рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рдкреБрдирдГ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ)ред AWS рд╕реНрдЯреНрд░реИрдВрдбреНрд╕ SDK рдЗрд╕рдХреЗ рдКрдкрд░ рдПрдЬреЗрдВрдЯрд┐рдХ рд▓реВрдк рдЬреЛрдбрд╝рддрд╛ рд╣реИред

**рдкреНрд░рд╢реНрди рел: Claude Sonnet рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреМрди рд╕реЗ рдЕрдиреНрдп рдореЙрдбрд▓ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ?**

рд╕реНрдЯреНрд░реИрдВрдбреНрд╕ `AnthropicModel` рдХрд┐рд╕реА рднреА рдореЙрдбрд▓ рдЖрдИрдбреА рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдВрдереНрд░реЛрдкрд┐рдХ API рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ тАФ рд╕рд╕реНрддреА рдирд┐рдХрд╛рд╕реА-рдФрд░-рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд▓реВрдк рдХреЗ рд▓рд┐рдП `claude-haiku-*`, рднрд╛рд░реА рдорд▓реНрдЯреА-рд╕реНрдЯреЗрдк рддрд░реНрдХ рдХреЗ рд▓рд┐рдП `claude-opus-*`ред рд╕реНрдЯреНрд░реИрдВрдбреНрд╕ `OpenAIModel`, `BedrockModel`, `GeminiModel`, рдФрд░ Mistral, Ollama, LiteLLM, llamacpp, рдФрд░ SageMaker рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рднреА рдЖрддрд╛ рд╣реИред рдореЙрдбрд▓ рд▓рд╛рдЗрди рдХреЛ рд╕реНрд╡реИрдк рдХрд░реЗрдВ; `agent.py` рдХрд╛ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕рд╛ рд╕рдорд╛рди рд░рд╣рддрд╛ рд╣реИред

рдХреЛрдИ рднреА OpenAI-API-рд╕рдВрдЧрдд рдПрдВрдбрдкреЙрдЗрдВрдЯ `OpenAIModel` рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ `base_url` рдУрд╡рд░рд░рд╛рдЗрдб рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдЧрд╛рдЗрдб рдХреЗ рд▓рд┐рдП OpenRouter рдХреЗ рдЦрд┐рд▓рд╛рдл рдПрдВрдб-рдЯреВ-рдПрдВрдб рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛:

```python
from strands.models.openai import OpenAIModel
model = OpenAIModel(
    client_args={
        "api_key": OPENROUTER_API_KEY,
        "base_url": "https://openrouter.ai/api/v1",
    },
    model_id="openai/gpt-4o-mini",  # рдпрд╛ anthropic/claude-3.5-sonnet, google/gemini-flash-1.5, рдЖрджрд┐ред
    params={"temperature": 0.3},
)

рдЙрд╕ рд╕реНрд╡реИрдк рдХреЗ рд╕рд╛рде, рд╡рд╣реА Agent(model=..., tools=tools, system_prompt=...) OpenRouter рдХреИрдЯрд▓реЙрдЧ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЪрд▓рддрд╛ рд╣реИред рдЗрд╕ рдЧрд╛рдЗрдб рдХреЗ рд▓рд┐рдП openai/gpt-4o-mini рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛: рдПрдЬреЗрдВрдЯ рдиреЗ рд╕реНрд╡рд╛рдпрддреНрдд рд░реВрдк рд╕реЗ google_search рдХреЛ рддреАрди рдмрд╛рд░ рдФрд░ scrape_markdown рдХреЛ рдПрдХ рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛, stop_reason: end_turn рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдл рдЙрддреНрддрд░ рд▓реМрдЯрд╛рдпрд╛, рд▓рдЧрднрдЧ $0.001 рдкреНрд░рддрд┐ рд░рди рдкрд░ред

рдкреНрд░рд╢реНрди рем: рдореИрдВ ERR_TUNNEL_CONNECTION_FAILED рдпрд╛ 503 рдЬреИрд╕реА рдЕрд╕реНрдерд╛рдпреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓реВрдВ?

рджреЛрдиреЛрдВ рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рдЕрдЧреНрд░рдЧрд╛рдореА рдкреВрд▓ рд╕реЗ рдЖрддреА рд╣реИрдВ рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдЕрд╕реНрдерд╛рдпреА рд╣реЛрддреА рд╣реИрдВред рд╕реНрдЯреНрд░реИрдВрдбреНрд╕ рдХрд╛ рд▓реВрдк рддреНрд░реБрдЯрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдореЙрдбрд▓ рдореЗрдВ рднреЗрдЬрддрд╛ рд╣реИ, рдЬреЛ рдЕрдЧрд▓реЗ рдЯрд░реНрди рдкрд░ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред рд╕рдВрдХреЗрдд рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рдХ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП, рдПрдЬреЗрдВрдЯ рдХреЛ рдирд┐рд░реНрджреЗрд╢ рджреЗрдВ: "рдпрджрд┐ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯреВрд▓ рдПрдХ рдЯрдирд▓ рдпрд╛ 503 рддреНрд░реБрдЯрд┐ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рддреЛ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ browser_close рдХреЙрд▓ рдХрд░реЗрдВ рдФрд░ рдПрдХ рддрд╛рдЬрд╛ browser_create рд╢реБрд░реВ рдХрд░реЗрдВред" рд╡рд╣ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдирд┐рд░реНрдгрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рд╕рд╛рдл рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред

рдкреНрд░рд╢реНрди рен: рдХреНрдпрд╛ рдХрдИ рдПрдЬреЗрдВрдЯ MCP рдХрдиреЗрдХреНрд╢рди рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

MCPClient рдкреНрд░рддреНрдпреЗрдХ with mcp_client: рд╕рдВрджрд░реНрдн рдкрд░ рдПрдХ рд╕рддреНрд░ рдЦреЛрд▓рддрд╛ рд╣реИред рд╕рдорд╛рдирд╛рдВрддрд░ рдПрдЬреЗрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ MCPClient рдЙрджрд╛рд╣рд░рдг рджреЗрдВ (рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЕрдкрдирд╛ рд╕рддреНрд░ рдЖрдИрдбреА рд╣реЛрд╕реНрдЯреЗрдб рдПрдВрдбрдкреЙрдЗрдВрдЯ рдкрд░) рдПрдХ рдХреЛ рдкреБрдирдГ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдпред рд╣реЛрд╕реНрдЯреЗрдб рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╕рдорд╛рдВрддрд░ рд╕рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдХреЗрд▓ рдХрд░рддрд╛ рд╣реИ; рдкреНрд░рддрд┐-рдЦрд╛рддрд╛ рд╕рдорд╛рдгреБрдкрд╛рдд рд╕реАрдорд╛ рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рдг рд╢реНрд░реЗрдгреА рдореЗрдВ рд░рд╣рддреА рд╣реИред

рдкреНрд░рд╢реНрди рео: рдореИрдВ рдЕрдкрдиреА рдЧреИрд░-рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рдЯреВрд▓ рдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╣рд╛рдБ рдкреНрд▓рдЧ рдХрд░реВрдВ?

Agent(tools=...) рдПрдХ рд╕реВрдЪреА рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред tools + my_extra_tools рдкрд╛рд╕ рдХрд░реЗрдВ рдЬрд╣рд╛рдБ my_extra_tools рдХреЛрдИ рднреА рд╕реНрдЯреНрд░реИрдВрдбреНрд╕-рд╕рдВрдЧрдд рдЙрдкрдХрд░рдг рд╣реИ (рдЬрд┐рд╕рдореЗрдВ @tool рд╕реЗ рд╕рдЬрд╛рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рдВрд╕ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп MCP рд╕рд░реНрд╡рд░ рд╕реЗ рдЙрдкрдХрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВ)ред рдореЙрдбрд▓ рд╕реНрдХреАрдорд╛ рдХрд╛ рд╕рдВрдШ рджреЗрдЦрддрд╛ рд╣реИ рдФрд░ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕рдХрд╛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИред

рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд▓рд╛рдЧреВ рдХрд╛рдиреВрдиреЛрдВ, рд╡рд┐рдирд┐рдпрдореЛрдВ рдФрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдЧреЛрдкрдиреАрдпрддрд╛ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рд╕рдЦреНрддреА рд╕реЗ рдЕрдиреБрдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдмреНрд▓реЙрдЧ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдХреЗрд╡рд▓ рдкреНрд░рджрд░реНрд╢рди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЕрд╡реИрдз рдпрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рдЗрд╕ рдмреНрд▓реЙрдЧ рдпрд╛ рддреГрддреАрдп-рдкрдХреНрд╖ рд▓рд┐рдВрдХ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕рднреА рджреЗрдпрддрд╛ рдХреЛ рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рд╕рднреА рджреЗрдпрддрд╛ рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рднреА рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЕрдкрдиреЗ рдХрд╛рдиреВрдиреА рд╕рд▓рд╛рд╣рдХрд╛рд░ рд╕реЗ рдкрд░рд╛рдорд░реНрд╢ рдХрд░реЗрдВ рдФрд░ рд▓рдХреНрд╖реНрдп рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреА рд╕реЗрд╡рд╛ рдХреА рд╢рд░реНрддреЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдпрд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд▓реЗрдЦ

рд╕реВрдЪреА