Quay lại blog

Cách Kết Nối Scrapeless với Grok: Cài Đặt Kết Nối MCP

Olivia Patel
Olivia Patel

Senior Cybersecurity Analyst

21-Sep-2026

TL;DR:

  • CLI của Grok nói tiếng MCP, vì vậy việc kết nối Scrapeless là một bảng TOML: một url và một tiêu đề x-api-token.
  • grok mcp doctor trả lời liệu nó có hoạt động hay không — ✓ server started (1.0s), ✓ handshake OK (protocol 2025-06-18), ✓ 25 tools discovered.
  • Phạm vi quyết định liệu máy chủ có chạy hay không. Một .grok/config.toml địa phương trong kho chứa không tin cậy báo cáo ✗ folder untrusted và được tính là 0 máy chủ; bảng tương tự ở phạm vi người dùng bắt đầu.
  • Tiêu đề là x-api-token, không phải Authorization: Bearer. Một tiêu đề Bearer làm thất bại quá trình bắt tay: grok mcp doctor báo cáo ✗ handshake failed với HTTP 401.
  • grok mcp add --header "..." viết cấu hình đúng và đưa khóa của bạn vào lịch sử shell; tự viết bảng không làm điều đó.
  • 25 tools discovered chứng minh rằng tiêu đề đã đến, không phải rằng khóa là hợp lệ — Scrapeless liệt kê tất cả 25 công cụ cho bất kỳ giá trị khóa nào. Một tools/call thực tế duy nhất trả về nội dung trang là bằng chứng duy nhất cho thấy thông tin xác thực hoạt động.
  • Đầu tiên hãy lấy một khóa trên gói miễn phí của Scrapeless.

Một tác nhân trong một terminal rất giỏi trong việc đọc tệp và chạy lệnh, và mù mờ đối với bất cứ điều gì trên web mở. MCP là cách mà khoảng cách đó thu hẹp lại: khách hàng tạo ra định nghĩa công cụ từ một máy chủ, mô hình chọn một cái giữa chừng, và "trang này nói gì ngay bây giờ" trở thành một cuộc gọi thay vì sao chép-dán.

CLI của Grok mang đến một triển khai MCP đẳng cấp đầu tiên, bao gồm một lệnh phụ chẩn đoán báo cáo giai đoạn nào của kết nối bị thất bại chứ không phải chỉ là một thất bại đỏ hay xanh. Thiết lập bộ kết nối là hai bảng TOML; đọc chẩn đoán đó là phần giúp tiết kiệm thời gian sau này.

What You Get

Hai mươi lăm công cụ, được liệt kê từ một tools/list trực tiếp chứ không phải sao chép từ tài liệu:

Nhóm Công cụ
Nội dung trang scrape_markdown, scrape_html, scrape_screenshot
Trình duyệt đám mây browser_create, browser_goto, browser_click, browser_type, browser_get_text, browser_get_html, browser_snapshot, browser_screenshot, browser_scroll, browser_scroll_to, browser_wait, browser_wait_for, browser_press_key, browser_go_back, browser_go_forward, browser_close
Quét crawl_start, crawl_result, crawl_cancel
Tìm kiếm google_search, google_trends
Câu trả lời trợ lý AI ai_scraper

scrape_markdown bao gồm hầu hết những gì một tác nhân yêu cầu — một cuộc gọi, một tài liệu. Nhóm browser_* là một phiên mà mô hình điều khiển qua nhiều lần, đó là những gì bất kỳ thứ gì phía sau một cú nhấp chuột hoặc đăng nhập cần.

Prerequisites

  • CLI của Grok. Phiên bản được sử dụng trong suốt ở đây là grok 0.2.118 (1e1687c1cf).
  • Một khóa API Scrapeless.
  • Không cần cài đặt gì cho máy chủ. Nó được lưu trữ, vì vậy không có gói và không có quá trình địa phương — khách hàng kết nối đến một URL qua HTTP có thể truyền tải, một trong hai phương tiện mà đặc tả Giao thức Ngữ cảnh Mô hình định nghĩa.

Step 1: Add the Server

CLI có một lệnh phụ cho nó:

bash Copy
grok mcp add -t http -s user scrapeless https://api.scrapeless.com/mcp \
  --header "x-api-token: YOUR_SCRAPELESS_API_KEY"
text Copy
Added HTTP MCP server 'scrapeless' with URL: https://api.scrapeless.com/mcp to user config
File modified: ~/.grok/config.toml

-t http chọn phương tiện truyền tải (các lựa chọn khác là stdiosse đã lỗi thời), và -s user ghi vào ~/.grok/config.toml thay vì vào kho lưu trữ.

Những gì nó ghi là một cặp TOML:

toml Copy
[mcp_servers.scrapeless]
url = "https://api.scrapeless.com/mcp"
enabled = true

[mcp_servers.scrapeless.headers]
x-api-token = "YOUR_SCRAPELESS_API_KEY"

Biết rằng hình dạng quan trọng, vì cờ --header đưa khóa của bạn vào lịch sử shell và trong danh sách tiến trình trong khi lệnh đang chạy. Tự viết sáu dòng này tránh cả hai, và cho phép bạn thêm các giới hạn thời gian mà CLI không thiết lập:

toml Copy
[mcp_servers.scrapeless]
url = "https://api.scrapeless.com/mcp"
startup_timeout_sec = 30
tool_timeout_sec = 120

[mcp_servers.scrapeless.headers]
x-api-token = "YOUR_SCRAPELESS_API_KEY"

Tên tiêu đề là chi tiết cần chính xác. Scrapeless đọc x-api-token; hầu hết các ví dụ MCP cho thấy Authorization: Bearer vì đó là những gì khung xác thực HTTP quy định cho thông tin xác thực bearer. Một tiêu đề Bearer ở đây thất bại trước khi quá trình bắt tay hoàn tất — yêu cầu initialize trở lại HTTP 401 Unauthorized: Missing x-api-token header, và bác sĩ tính máy chủ là thất bại.

Step 2: Read the Diagnostic

Đây là phần đáng học. grok mcp doctor báo cáo từng giai đoạn một cách riêng biệt:

text Copy
MCP Doctor

  Config sources
    ~/.grok/config.toml                      1 server
    ~/.claude.json                           not found
    .mcp.json                                not found
    grok.com                                 skipped (not logged in)

  scrapeless (http: https://api.scrapeless.com/mcp)
    ✓ server started (1.0s)
    ✓ handshake OK (protocol 2025-06-18)
    ✓ 25 tools discovered

Bốn thông tin độc lập trong đầu ra đó. Các tệp cấu hình nào đã được đọc và có bao nhiêu máy chủ mỗi tệp đóng góp. Liệu kết nối đã mở, và mất bao lâu. Liệu quá trình bắt tay MCP đã hoàn tất, và ở phiên bản giao thức nào. Và có bao nhiêu công cụ quay trở lại từ phát hiện.

Hai điều cuối cùng là các trao đổi JSON-RPC 2.0 thông thường — một yêu cầu initialize theo sau bởi một tools/list — đó là lý do tại sao chúng có thể thành công hoặc thất bại độc lập với nhau.
Một thất bại ở bất kỳ điểm nào trong số đó dẫn đến một nguyên nhân khác, đó là lý do tại sao đầu ra được sắp xếp tốt hơn một đèn đỏ hoặc xanh đơn. Cũng có chế độ --json khi bạn muốn khẳng định điều này trong một tập lệnh thay vì đọc nó.

grok mcp list là kiểm tra nhanh hơn khi nó hoạt động:

text Copy
  scrapeless: https://api.scrapeless.com/mcp

Bước 3: Hiểu Phạm Vi, Nếu Không Nó Sẽ Không Bắt Đầu

Grok đọc cấu hình MCP từ phạm vi người dùng và từ .grok/config.toml địa phương của repo. Cái thứ hai có một điều kiện đính kèm tạo ra một lần chạy đầu tiên gây nhầm lẫn.

Bảng máy chủ tương tự, được đặt trong một thư mục dự án:

text Copy
  Config sources
    ~/.grok/config.toml                      not found
    /root/verify-grok-proj/.grok/config.toml 0 servers

  scrapeless (http: https://api.scrapeless.com/mcp)
    ✗ folder untrusted (repo-local (project-scoped) server not started for an untrusted folder)

Hai điều cần lưu ý. Máy chủ không bắt đầu — một máy chủ MCP được giới hạn theo dự án sẽ không được khởi động cho đến khi thư mục được tin cậy, vì một tệp cấu hình trong một kho lưu trữ đã được kiểm tra có thể chỉ định đại lý của bạn đến bất kỳ điểm cuối nào mà tác giả đã chọn. Và dòng cấu hình nguồn đọc 0 máy chủ mặc dù tệp định nghĩa một, vì vậy việc đếm nguồn là không đủ để cho bạn biết cấu hình đã được chấp nhận.

Sử dụng phạm vi người dùng cho một khóa là của bạn. Sử dụng phạm vi dự án để chia sẻ một máy chủ với một nhóm, và mong đợi bước tin cậy thư mục trên mỗi máy.

Bước 4: Xác Nhận Năng Lực, Không Phải Huy Hiệu

25 tools discovered là kết quả của tools/list, và cuộc gọi đó được trả lời bởi chính máy chủ MCP — nó không bao giờ đến được API thượng nguồn. Vì vậy, việc phát hiện thành công bất kể thông tin xác thực phía sau có tốt hay không.

Đó không phải là một sự phân biệt lý thuyết. Một cổng định tuyến đứng trước cùng một điểm cuối này với một mã thông báo đã lưu cũ đã phát hiện toàn bộ bộ công cụ của nó và sau đó trả về lỗi mã thông báo không hợp lệ khi gọi thực sự đầu tiên, trong khi cùng một điểm cuối với một khóa hoạt động đã trả về HTTP 200.

Cuộc kiểm tra quyết định điều đó là một cuộc gọi công cụ:

text Copy
initialize   HTTP 200   server=scrapeless-mcp-server v0.2.0
tools/list   HTTP 200   25 tools
tools/call scrape_markdown  HTTP 200  8940 chars of page content

Nội dung trang trong kết quả đó là bằng chứng. Mọi thứ trước nó đều là báo cáo thiết lập về chính nó: với một khóa sai cuộc gọi vẫn trả về HTTP 200, không có cờ isError, và văn bản của nó bắt đầu bằng Failed to fetch data.

Lưu ý: việc thực hiện cuộc gọi đó từ bên trong một lượt Grok cần xác thực xAI, mà môi trường của hướng dẫn này không có — grok -p "..." trả về Not signed in. Bộ kết nối, bắt tay, phát hiện và cuộc gọi công cụ ở trên đều được xác minh; lượt cuối do mô hình tạo ra là bước duy nhất được thực hiện dựa trên niềm tin ở đây. Đăng nhập bằng grok login hoặc đặt XAI_API_KEY và cùng một công cụ có sẵn cho mô hình.

Bước 5: Nhắc Nhở Nó

Khi các công cụ đã được phát hiện, mô hình chọn trong số chúng. Đặt tên cho công cụ loại bỏ một lần đoán:

text Copy
Use the scrapeless scrape_markdown tool on
https://books.toscrape.com/catalogue/category/books/mystery_3/index.html
and give me the first five titles with their prices as a table.

Hai thói quen giúp ích. Đặt tên cho công cụ khi công việc chỉ là một lần lấy, và mô tả trình tự khi không phải như vậy — các công cụ browser_* chia sẻ một phiên, vì vậy "tạo một phiên, đi đến URL, nhấp vào bộ lọc, sau đó đọc văn bản" là một hướng dẫn khác với bốn hướng dẫn không liên quan.

Và yêu cầu hình dạng đầu ra mà bạn muốn. scrape_markdown trả về một tài liệu; việc bạn nhận được một bảng hay một đoạn văn được quyết định bởi lời nhắc, không phải công cụ.

Thiết lập điều này ngay bây giờ? Kế hoạch miễn phí Scrapeless bao phủ đủ cuộc gọi để vượt qua bắt tay và vài cuộc gọi công cụ đầu tiên.

Những Gì Trở Lại

scrape_markdown trả về trang dưới dạng Markdown trong khối nội dung:

text Copy
Response:  "-   [Home](https://books.toscrape.com/index.html)
-   [Books](https://books.toscrape.com/catalogue/category/books_1/index.html)
...

Markdown thay vì HTML là mặc định đúng cho một mô hình. Trang giống nhau có 8.940 ký tự từ scrape_markdown so với 53.800 từ scrape_html, vì vậy scrape_html tiêu tốn khoảng sáu lần ngữ cảnh cho đánh dấu mà không ai đọc. Sử dụng scrape_html khi mã của riêng bạn sẽ phân tích kết quả, và scrape_markdown khi mô hình là người tiêu dùng.

Một Bộ Định Tuyến Thay Đổi Số Lượng Công Cụ

Nếu khách hàng chỉ vào một cổng định tuyến đứng trước một số máy chủ MCP qua một URL, danh sách được phát hiện là các công cụ phân phối của bộ định tuyến đó chứ không phải của nhà cung cấp. Cùng một khách hàng, cùng lệnh: 3 công cụ thông qua một cổng định tuyến thông minh, 25 chống https://api.scrapeless.com/mcp trực tiếp.

Cả hai cách sắp xếp đều hợp pháp. Một bộ định tuyến giữ một thông tin xác thực và một dấu vết kiểm toán qua nhiều nhà cung cấp; một kết nối trực tiếp đưa cho mô hình bề mặt công cụ thực sự. Số lượng công cụ của grok mcp doctor cho bạn biết cái nào bạn đang chạy, điều này đủ lý do để đọc nó sau bất kỳ thay đổi cấu hình nào.
Đối với cùng một sản phẩm được điều khiển từ mã thay vì một đại lý, hướng dẫn thu thập dữ liệu web Grok của chúng tôi đề cập đến mẫu mô hình-cộng-fetch, và bài viết ra mắt máy chủ MCP đề cập đến những gì máy chủ tiết lộ. Trang API thu thập dữ liệu mô tả gia đình diễn viên đứng sau những công cụ này, tài liệu chứa tham chiếu theo từng diễn viên, và giá cả liệt kê những gì một cuộc gọi tốn kém.

Kết luận

Hai bảng TOML và một tên tiêu đề là toàn bộ bộ kết nối. grok mcp doctor sau đó cho bạn biết giai đoạn nào trong bốn giai đoạn đã hoạt động, và dòng 25 tools discovered của nó là dòng cần kiểm tra sau bất kỳ thay đổi nào — vì 3 có nghĩa là bạn đang giao tiếp với một bộ định tuyến và 0 máy chủ từ một tệp có một nghĩa là thư mục không đáng tin cậy.

Hai sai lầm cần tránh đều rẻ tiền. Sử dụng x-api-token thay vì tiêu đề Bearer, vì phiên bản Bearer bị từ chối với mã 401 trong quá trình bắt tay và grok mcp doctor đánh dấu nó ngay lập tức. Và coi việc phát hiện như báo cáo thiết lập về bản thân: một tools/call trả về nội dung trang thực sự là điều thực sự chứng minh rằng thông tin đăng nhập hoạt động.

Sẵn sàng để Grok thực hiện một cuộc gọi fetch mà nó có thể gọi? Bắt đầu với gói miễn phí Scrapeless và thêm máy chủ.

Câu hỏi thường gặp

Q: Grok có hỗ trợ máy chủ MCP không?

Có. CLI có một grok mcp lệnh con chuyên dụng với add, list, remove, enable, disabledoctor, và nó hỗ trợ stdio, httpsse giao thức. HTTP từ xa là một cái nên sử dụng cho một máy chủ được lưu trữ như thế này, vì nó không cần bất kỳ quy trình cục bộ nào.

Q: Tôi làm thế nào để thêm máy chủ Scrapeless MCP vào Grok?

grok mcp add -t http -s user scrapeless https://api.scrapeless.com/mcp --header "x-api-token: ...", hoặc viết các bảng tương đương [mcp_servers.scrapeless][mcp_servers.scrapeless.headers] vào ~/.grok/config.toml tự bạn. Đường dẫn viết tay giữ khóa khỏi lịch sử shell và cho phép bạn thiết lập startup_timeout_sectool_timeout_sec.

Q: Tại sao máy chủ MCP phạm vi dự án của tôi không khởi động?

Bởi vì thư mục không đáng tin cậy. Một .grok/config.toml cục bộ không được khởi động cho đến khi bạn tin tưởng thư mục, và chẩn đoán nói rõ điều đó: ✗ folder untrusted (repo-local (project-scoped) server not started for an untrusted folder). Dòng config-source cũng tính nó là 0 máy chủ, điều này khiến tệp trông trống rỗng khi nó không phải. Chuyển mục đến phạm vi người dùng tránh cổng khi khóa là của bạn.

Q: Tiêu đề có nên là x-api-token hay Authorization: Bearer?

x-api-token. Một yêu cầu không có nó trả về 401 Unauthorized: Missing x-api-token header. Một tiêu đề Bearer bị từ chối theo cách tương tự trong quá trình bắt tay, vì vậy grok mcp doctor hiển thị ✗ handshake failedFound 0 healthy, 1 failing — bác sĩ phát hiện lỗi một từ trước khi bất kỳ công cụ nào được gọi.

Q: Tôi làm thế nào để kiểm tra những công cụ nào Grok có thể thấy?

grok mcp doctor in ra số lượng được phát hiện trên mỗi máy chủ, và --json cung cấp cùng một thứ theo cách máy tính đọc được. Chống lại điểm cuối này, nó báo cáo 25. Nếu bạn thấy 3, khách hàng đang chỉ vào một cổng chuyển tiếp thay vì máy chủ, và ba cái đó là công cụ phân phối của bộ định tuyến.

Q: Liệu 25 tools discovered có đủ để biết nó hoạt động không?

Không. Việc phát hiện là một tools/list, mà máy chủ MCP trả lời cục bộ mà không liên hệ với API upstream, vì vậy nó thành công ngay cả khi thông tin đăng nhập bị từ chối. Thực hiện một cuộc gọi công cụ và tìm nội dung trang thực sự; một khóa xấu trả về văn bản bắt đầu bằng Failed to fetch data, và Scrapeless không thiết lập isError trên nó.

Q: Tôi có cần phải đăng nhập vào xAI để bộ kết nối hoạt động không?

Bộ kết nối tự nó không cần: quá trình bắt tay và phát hiện công cụ hoạt động mà không cần bất kỳ thông tin xác thực xAI nào. Việc thực sự gọi một công cụ đòi hỏi, vì đó là một lượt suy diễn Grok — nếu không có nó, grok -p "..." trả về Not signed in. Chạy grok login hoặc đặt XAI_API_KEY.

Q: Tôi có thể giới hạn những công cụ mà mô hình có thể gọi không?

Có, ở phía khách hàng. CLI hiển thị các quy tắc cấp phép cho phép và từ chối cộng với --tools--disallowed-tools cho các công cụ tích hợp sẵn, vì vậy một thiết lập chỉ cần nội dung trang có thể cho phép scrape_markdown và để lại các công cụ phiên trình duyệt không khả dụng. Thu hẹp nó đến công việc.

Tại Scrapless, chúng tôi chỉ truy cập dữ liệu có sẵn công khai trong khi tuân thủ nghiêm ngặt các luật, quy định và chính sách bảo mật trang web hiện hành. Nội dung trong blog này chỉ nhằm mục đích trình diễn và không liên quan đến bất kỳ hoạt động bất hợp pháp hoặc vi phạm nào. Chúng tôi không đảm bảo và từ chối mọi trách nhiệm đối với việc sử dụng thông tin từ blog này hoặc các liên kết của bên thứ ba. Trước khi tham gia vào bất kỳ hoạt động cạo nào, hãy tham khảo ý kiến ​​cố vấn pháp lý của bạn và xem xét các điều khoản dịch vụ của trang web mục tiêu hoặc có được các quyền cần thiết.

Bài viết phổ biến nhất

Danh mục