
Anh Tuan
Data Science Expert
Đã xuất bản Oct 28, 2026
Đã cập nhật Oct 28, 2026 · đọc tối thiểu

capsolver-mcp 0.1.3 đã kiểm thử, detect_captchas và solve_on_page nhận page_url; cả hai đều không cho phép truyền vào một trang hiện có hoặc phiên trình duyệt sẵn có.Tác nhân trình duyệt của bạn đã điền một biểu mẫu và gặp CAPTCHA. Nó gọi một công cụ MCP thứ hai với URL của trang, nhận về phản hồi, rồi quay lại tab vẫn trông như chưa hề thay đổi. Mắt xích còn thiếu có thể chính là phiên trình duyệt.
MCP giúp một công cụ có thể được gọi; nó không khiến mọi máy chủ kết nối chia sẻ các đối tượng trình duyệt đang sống. Trình duyệt chuẩn bị biểu mẫu và trình duyệt được mở bởi một công cụ dựa trên URL có thể là hai thực thể khác nhau. CapSolver cung cấp cả công cụ MCP lẫn Python Core SDK, nên việc chọn đúng giao diện rất quan trọng khi CAPTCHA xuất hiện giữa chừng một tác vụ hiện có.
Hướng dẫn này chẩn đoán đúng tình huống bàn giao đó. Nó bao gồm một bước kiểm tra schema MCP thực và các quan sát từ một fixture trình duyệt cục bộ do chính chúng tôi sở hữu. Không có thử thách trả phí nào được giải, và cũng không có tuyên bố nào về việc biểu mẫu sản xuất được chấp nhận.
Các công cụ trình duyệt MCP đã kiểm thử tự tạo trình duyệt của riêng chúng từ một URL thay vì nhận trang đang hoạt động của tác nhân.
Tài liệu tham chiếu dịch vụ MCP mô tả việc phát hiện dựa trên URL và giải captcha trên trang. Chúng tôi đã kiểm tra các schema được quảng bá của gói đã cài đặt và cách triển khai khởi chạy trình duyệt, rồi quan sát các yêu cầu của nó đến một fixture cục bộ. Những kiểm tra đó đều thống nhất về ranh giới: cung cấp URL không gắn công cụ vào một tab đang chạy sẵn.
Sự khác biệt đó quan trọng ngay cả khi cả hai trang đều hiển thị cùng địa chỉ. Một trường biểu mẫu có thể chứa giá trị chưa gửi ở một tab trong khi lại trống rỗng ở tab khác. Một cookie khả dụng trong một ngữ cảnh trình duyệt không tự động xuất hiện trong ngữ cảnh khác. Tài liệu hướng dẫn browser-context của Playwright giải thích rõ sự cô lập giữa các context.
Đừng suy ra trạng thái dùng chung chỉ vì hai máy chủ công cụ xuất hiện trong cùng thanh bên của trợ lý. Công cụ của chúng có thể khả dụng với cùng một mô hình trong khi các tiến trình trình duyệt của chúng vẫn độc lập.
Hãy kiểm tra schema đang chạy để xác định trạng thái nào công cụ thực sự có thể nhận.
Dùng Python 3.12 cho kiểm thử có thể tái lập dưới đây. Môi trường đã kiểm thử chứa capsolver-mcp 0.1.3, capsolver-core 0.1.1, MCP Python SDK 1.30.0 và Playwright 1.64.1. Kho MCP chính thức chỉ ra gói máy chủ; MCP Python SDK cung cấp client dùng cho chẩn đoán này.
Chạy các lệnh này với trình thông dịch Python sẽ khởi chạy máy chủ:
python -m pip install "capsolver-mcp[browser]==0.1.3" "capsolver-core==0.1.1" "mcp==1.30.0" "playwright==1.64.1"
python -m playwright install chromium
Lưu đoạn chẩn đoán nhỏ này thành inspect_mcp.py và chạy nó bằng chính Python đó. Nó khởi tạo kết nối stdio thực, đọc schema và gọi registry kiểu được hỗ trợ. Nó cố ý truyền giá trị API-key rỗng và không bao giờ gọi các phương thức solve hay balance. Một lần solve trả phí thực sự yêu cầu khóa hợp lệ và mục tiêu được ủy quyền; chẩn đoán này không kiểm tra đường dẫn đó.
import asyncio
import json
import sys
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
async def main():
server = StdioServerParameters(
command=sys.executable,
args=["-m", "capsolver_mcp"],
env={"CAPSOLVER_API_KEY": ""},
)
async with stdio_client(server) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
result = await session.list_tools()
for tool in result.tools:
if tool.name in {"detect_captchas", "solve_on_page"}:
print(json.dumps({
"tool": tool.name,
"arguments": sorted(tool.inputSchema.get("properties", {})),
"required": tool.inputSchema.get("required", []),
}))
registry = await session.call_tool("get_supported_captchas", {})
print("registry_is_error:", bool(registry.isError))
asyncio.run(main())
Với phiên bản đã kiểm thử, đầu ra có ý nghĩa là:
{"tool": "detect_captchas", "arguments": ["page_url"], "required": ["page_url"]}
{"tool": "solve_on_page", "arguments": ["autofill", "page_url", "polling_interval", "timeout"], "required": ["page_url"]}
registry_is_error: False
Việc thiếu một tham số phiên là lý do để kiểm tra cách triển khai, chứ không phải khẳng định chung cho mọi máy chủ MCP. Ở đây, việc kiểm tra gói xác nhận rằng với mỗi lệnh gọi trình duyệt dựa trên URL, một trình duyệt headless và trang mới được tạo. Hãy kiểm tra lại schema và hành vi khi thay đổi phiên bản.
Bài kiểm thử cục bộ đã chứng minh ranh giới phiên mà không giả vờ giải một CAPTCHA.
Chúng tôi mở một fixture HTTP thuộc sở hữu trong một context Playwright, đặt một cookie vô hại fixture_session và nhập một truy vấn danh mục vào một ô văn bản. Fixture ghi nhận liệu mỗi yêu cầu có mang cookie đó không. Sau đó, chúng tôi gọi công cụ MCP thực detect_captchas với cùng URL.
Yêu cầu từ trình duyệt ban đầu có chứa cookie đánh dấu. Yêu cầu từ trình duyệt MCP thì không. Trang gốc vẫn giữ nguyên truy vấn đã nhập sau khi công cụ trả về. Việc phát hiện trả về danh sách rỗng trên fixture trơ này; đây không phải thử thách nhà cung cấp thực và bài kiểm thử không đo độ bao phủ phát hiện.
Những quan sát này thiết lập một điều hẹp hơn nhưng hữu ích: lệnh gọi MCP đã tải URL một cách độc lập, trong khi trang đầu tiên vẫn nguyên vẹn. Chúng không khẳng định việc solve trả phí, truyền token hay việc chấp nhận từ phía site mục tiêu. Không cookie sản xuất, thông tin xác thực hay bản ghi riêng tư nào được dùng.
Đối với ứng dụng của bạn, hãy tái tạo sự khác biệt tương tự với một dấu hiệu vô hại trên một trang staging do bạn kiểm soát. Ghi lại trang nào công cụ trình duyệt sở hữu và trang nào solver nhận. Tránh ghi nội dung cookie thực hoặc token CAPTCHA trong log chẩn đoán.
Nhập Mã Thưởng CapSolver Của Bạn
Tăng ngân sách tự động hóa ngay lập tức!
Dùng mã thưởng CAP26 khi nạp tiền vào tài khoản CapSolver để nhận thêm 5% bonus cho mỗi lần nạp — không giới hạn.
Hãy đổi ngay trong Bảng điều khiển CapSolver
Hãy chọn cách bàn giao dựa trên việc ứng dụng của bạn có thể truy cập đối tượng trang đang hoạt động hay không.
Core SDK chấp nhận một trang Playwright hiện có cho các phương thức hướng trình duyệt. Các phương thức detect(page) và get_captcha_info(page) được ghi lại sẽ kiểm tra trang đó; solve_on_page(page) thực hiện chuỗi solve và điền lại đã được ghi tài liệu cho những thử thách được hỗ trợ. Tài liệu Core SDK mô tả các giao diện và trường kết quả này.
Giữ trang trong chính ứng dụng của bạn và truyền đối tượng hiện có tại điểm chạm CAPTCHA. Việc tạo một trang mới bên trong handler làm thay đổi thao tác bạn đang chẩn đoán. Đây là lựa chọn triển khai cho những ứng dụng tự sở hữu mã trình duyệt, chứ không phải cờ cấu hình có thể khiến công cụ MCP chỉ nhận URL gắn vào một tab.
Hướng dẫn này xác minh ranh giới MCP, chứ không phải solve Core SDK trả phí. Trước khi áp dụng solve dựa trên trang trong môi trường sản xuất, hãy kiểm thử riêng loại thử thách được hỗ trợ và điều kiện hoàn thành của ứng dụng trên một mục tiêu được ủy quyền.
Khi một máy chủ khác sở hữu trình duyệt, hãy dùng các khả năng đã được ghi lại của máy chủ đó để kiểm tra trang hiện tại và quyết định liệu nó có thể áp dụng kết quả bên ngoài không. Đừng tự tạo một session_id, tham số CDP hay handle trang mà schema của solver không chấp nhận.
Giải dạng token có thể trả về kết quả từ các tham số thử thách đã được ghi lại, nhưng ứng dụng của bạn vẫn cần một cách được hỗ trợ để đưa nó vào trang gốc. Nếu chủ sở hữu trình duyệt không làm được điều đó, hãy ghi nhận khoảng trống khả năng hoặc chuyển tác vụ cho con người. Việc kết nối cả hai máy chủ không tự sinh ra thao tác bị thiếu.
Một công cụ dựa trên URL có thể phù hợp với phép kiểm tra độc lập nơi một trang mới đúng là điều bạn mong muốn. Hãy đặt tên tác vụ đó tách biệt với biểu mẫu mà tác nhân đang tạm dừng. Một lần kiểm tra thành công trên trang mới không nên được báo cáo là đã hoàn tất biểu mẫu ban đầu.
Hướng dẫn tái sử dụng context Playwright hiện có của CapSolver giải thích về snapshot lưu trữ và các trang đang sống. Vấn đề MCP cụ thể ở đây nằm sớm hơn trong chuỗi: trình duyệt nào thực sự nhận lệnh gọi.
Chỉ tiếp tục tác vụ gốc sau khi trang dự định và phản hồi ứng dụng xác nhận bước tiếp theo là hợp lệ.
Giữ chủ sở hữu trình duyệt, thao tác hiện tại và điều kiện hoàn thành ở cùng một chỗ. Sau khi một lần solve được hỗ trợ kết thúc, hãy kiểm tra lại trang gốc. Xác nhận rằng biểu mẫu hoặc truy vấn vẫn đại diện cho cùng một tác vụ, rồi thực hiện việc gửi hoặc điều hướng được phép thông qua giao diện bình thường của chủ sở hữu trình duyệt.
Đối với tác nhân dữ liệu, thành công có thể nghĩa là các định danh bản ghi mong đợi và trường bắt buộc có trong dữ liệu trả về. Đối với một luồng biểu mẫu, thành công có thể là một xác nhận từ ứng dụng gắn với đầu vào đã gửi. Một kết quả phát hiện CAPTCHA rỗng không phải là bất cứ kết quả nào trong số đó.
Nếu trang đã điều hướng hoặc thử thách đã thay đổi trong khi gọi, hãy kiểm tra tác vụ hiện tại trước khi tái sử dụng bất kỳ kết quả trước đó. Tránh việc lặp đi lặp lại solve trả phí chỉ vì một tab không liên quan vẫn hiển thị widget. Hãy giữ các trạng thái chưa giải quyết ở dạng tường minh thay vì để mô hình tóm tắt chúng thành “thành công”.
Hãy coi việc sở hữu trình duyệt là một phần của hợp đồng tích hợp CAPTCHA. CapSolver có thể cung cấp các khả năng solve được ghi tài liệu, trong khi ứng dụng của bạn vẫn giữ trách nhiệm đối với trang dự định và tác vụ cuối cùng. Hãy bắt đầu bằng cách kiểm tra schema MCP thực tế, rồi kiểm thử cách bàn giao mà môi trường trình duyệt của bạn hỗ trợ.
Hỏi: Việc đưa cho công cụ CAPTCHA MCP cùng một URL có tái sử dụng tab trình duyệt của tôi không?
Không, không trong các công cụ dựa trên URL capsolver-mcp 0.1.3 đã kiểm thử. Schema đang chạy và bài kiểm thử yêu cầu cục bộ cho thấy một yêu cầu trình duyệt riêng biệt.
Hỏi: Tôi có thể truyền ID phiên của máy chủ trình duyệt cho solve_on_page không?
Schema công cụ đã kiểm thử không chấp nhận tham số đó. Chỉ dùng các đầu vào được máy chủ đã cài đặt quảng bá; một session ID từ công cụ khác không tự động có ý nghĩa ở đây.
Hỏi: autofill có cập nhật tab gốc của tác nhân không?
Đừng giả định như vậy. Công cụ dựa trên URL thao tác trên trang mà nó tự mở. Việc điền lại trên trang đó không khẳng định một thay đổi ở tab được sở hữu riêng biệt.
Hỏi: Ví dụ có giải một CAPTCHA thực không?
Không. Nó xác minh kết nối MCP, schema công cụ và sự tách biệt phiên trình duyệt bằng một fixture trơ thuộc sở hữu. Việc solve trả phí và được ứng dụng chấp nhận đòi hỏi các kiểm thử riêng.
Hỏi: Nếu công cụ trình duyệt của tôi không thể áp dụng kết quả từ solver thì sao?
Hãy dùng một tích hợp dựa trên trang được hỗ trợ trong một ứng dụng sở hữu trình duyệt, hoặc tạm dừng để con người xử lý. Đừng khẳng định rằng chỉ hai kết nối MCP là đủ để cung cấp một khả năng trình duyệt còn thiếu.

Anh Tuan
Data Science Expert
Turning task outcomes into actionable insights.
GIỚI THIỆU TÁC GIẢ
Kết nối các công cụ MCP giải CAPTCHA với Qwen Code, phê duyệt máy chủ dự án, kiểm tra kết nối của nó và chọn đúng token hoặc quy trình làm việc trên trình duyệt phù hợp với nhiệm vụ của bạn.

Thêm một công cụ kiểm tra CAPTCHA vào Haystack, đọc các tham số reCAPTCHA bằng SDK chính thức và xác minh kết nối trước khi bước giải riêng biệt.
