carlosofscience avatar

Bulk Url Checker

carlosofscience/bulkurlchecker-python

Need to validate thousands of URLs at scale without writing your own infrastructure? This server handles bulk URL checking jobs of up to 75,000 URLs, returning status codes, redirect chains, and response times through a streamable HTTP transport. It uses OAuth 2.1 for authentication and connects to a dedicated bulk checking service at mcp.bulkurlchecker.com. Reach for this when you're auditing large sitemaps, checking for broken links across documentation sites, or validating URL lists during migrations. The high volume limit and structured output make it a solid choice over running sequential curl commands or managing your own rate-limited checking scripts.

tools
5
transport
HTTP
last updated
Oct 17, 2026

Install

From registry metadata
$ npx add-mcp https://mcp.bulkurlchecker.com/mcp --name bulk-url-checker

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http bulk-url-checker https://mcp.bulkurlchecker.com/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 5 tools

Verified live against the running server on Nov 6, 2026.

submit_urlsSubmits a list of URLs to be checked and returns a job_id. Lists of up to about 200 URLs complete inline, waiting up to 60 seconds, and the results are returned directly. Larger lists return immediately with the job_id alone, and their results become available as the job progr...1 params

Submits a list of URLs to be checked and returns a job_id. Lists of up to about 200 URLs complete inline, waiting up to 60 seconds, and the results are returned directly. Larger lists return immediately with the job_id alone, and their results become available as the job progr...

Parameters* required
urls*array
URLs to check. Each must include http:// or https:// scheme.
get_job_statusGet the current status and progress of a job.1 params

Get the current status and progress of a job.

Parameters* required
job_id*string
get_job_resultsFetch paginated results for a job. Each result has the URL, HTTP status code (null if unreachable), response time in ms, and an error message if the check failed.3 params

Fetch paginated results for a job. Each result has the URL, HTTP status code (null if unreachable), response time in ms, and an error message if the check failed.

Parameters* required
job_id*string
limitinteger
default: 100
offsetinteger
default: 0
get_verified_domainsLists the domains this account has proven ownership of. Checks against a verified domain run substantially faster than checks against an unverified one. Verification is interactive, requiring a DNS TXT record or a meta tag, and is done in the web dashboard rather than through...

Lists the domains this account has proven ownership of. Checks against a verified domain run substantially faster than checks against an unverified one. Verification is interactive, requiring a DNS TXT record or a meta tag, and is done in the web dashboard rather than through...

No parameters. Call it with no arguments.

get_usageReturns the number of URL checks currently available on this account.

Returns the number of URL checks currently available on this account.

No parameters. Call it with no arguments.

Sponsors

Readme

bulkurlchecker

PyPI version Python versions License: MIT

Python client for the Bulk URL Checker API.

Skip the proxy-rotation, rate-limiter, soft-404 detector, and retry classifier you would otherwise spend two weeks building. Submit thousands of URLs, get status codes, redirect chains, and broken-link detection back as plain Python objects. Backed by a managed cloud service with residential proxies and per-domain throttling.

Install

pip install bulkurlchecker

5-line example

from bulkurlchecker import Client

client = Client(api_key="uck_live_...")
results = client.check_urls(["https://example.com", "https://example.org"])
for r in results.results:
    print(r.url, r.status_code, "BROKEN" if r.is_broken else "ok")

Get an API key at https://app.bulkurlchecker.com/dashboard/api-keys. First 300 URLs are free, no card required.


View the full README on GitHub

Details

Repository
github.com/carlosofscience/bulkurlchecker-python
Transport
HTTP
Registry
MCP registry, active
Tools verified
Nov 6, 2026