Search / com.402cron/402cron
402cron
R0· no sign-inPaid cron for AI agents: we call your https URL on schedule, signed. No account, paid with x402.
v1.0.1 · active · repository · website · descriptor JSON · versions
Search / com.402cron/402cron
R0· no sign-inPaid cron for AI agents: we call your https URL on schedule, signed. No account, paid with x402.
v1.0.1 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"402cron": {
"type": "http",
"url": "https://402cron.com/mcp"
}
}
}claude mcp add --transport http 402cron https://402cron.com/mcp[mcp_servers.402cron]
url = "https://402cron.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"402cron": {
"type": "remote",
"url": "https://402cron.com/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"402cron": {
"type": "http",
"url": "https://402cron.com/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=402cron&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vNDAyY3Jvbi5jb20vbWNwIn0%3D"
}{
"servers": {
"402cron": {
"type": "http",
"url": "https://402cron.com/mcp"
}
}
}{
"mcpServers": {
"402cron": {
"httpUrl": "https://402cron.com/mcp"
}
}
}extensions:
"402cron":
enabled: true
name: "402cron"
type: streamable_http
uri: "https://402cron.com/mcp"
timeout: 300
protocol.modernsupports 2026-07-28 (server/discover)protocol.statelessanswers without a sessionprotocol.transportstreamable HTTPprotocol.list_ttltool list is cacheable (ttlMs 3600000)auth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_length1 tools have descriptions over 1,024 characters, which crowds the contexttools.schemasevery tool has an object input schematools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky onestools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: list_destinations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_pricing (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_service_status (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …tools.token_costabout 2,553 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changesno tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo +dns-namespace +website +reachable +uptime-96% +updated-29d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://402cron.com/mcp streamable-http | none | yes | 96% | 206 ms | 2026-07-28 | 2026-10-20 |
create_task | Register a schedule against a destination you have already verified. Idempotent on "name": the same name updates the existing task instead of creating a second one. Creating costs nothing; each delivery ATTEMPT costs one credit. |
delete_destination | Remove a claimed URL. Refused while a task still points at it — delete the task first. |
delete_task | Move the task to the recycle bin. It stops firing immediately and can be restored for 30 days with restore_task; after that it is unrecoverable. Credits already spent are not refunded. |
get_docs | One section of the machine documentation: quickstart, headers, signature, notice, errors, billing or limits. Omit `section` to get the whole document. |
get_pricing | What a delivery costs, which packs exist, and the exact x402 payment requirements for each. Balance is counted in DELIVERIES, not money, and packs never expire. Call this before buying. |
get_service_status | Whether the service is currently selling, on which network, and if not — why not. This is configuration, not liveness: the full health endpoint is at /health. |
get_task | A single task: schedule, destination, state, next run, and how many failures in a row it carries. |
list_destinations | The URLs you have claimed and whether each is verified. The signing secrets are never shown again. |
list_tasks | Your tasks and their state. Needs your management token as an Authorization header on this connection. |
pause_task | Stop firing until you resume. Nothing is charged while a task is paused. |
register_destination | Claim an https:// URL you control. We answer with a challenge and a SIGNING SECRET that is shown ONCE and never again — store it before you do anything else; it is what lets you verify that a delivery really came from us. The permission covers that path and everything beneath it, nothing above. Verification is one request from us to the exact URL you registered: POST, headers X-402cron-Challenge: <value> and X-402cron-Event: verify, JSON body {"challenge":"<value>"}. Reply within 5 seconds, without a redirect, with a body that is the bare value or {"challenge":"<value>"}; we read the first 512 bytes and do not check the HTTP status (2xx is fine). Then call POST /api/destinations/{id}/verify within 15 minutes of registering. A fixed-response webhook cannot pass: you need an endpoint you can program. Registering a URL that is still pending issues a new challenge and a new signing secret every time — the old secret immediately stops verifying deliveries; a verified URL is left untouched unless you add ?rotate=1. The daily verification allowance (10 per destination, 40 per client, UTC day) does not reset on re-registration. |
restore_task | Bring a task back from the recycle bin within 30 days. It comes back PAUSED — resume it explicitly. |
resume_task | Start firing again on the schedule. Refused if your balance is empty — buy deliveries first. |
run_task_now | Deliver immediately, outside the schedule. THIS COSTS ONE CREDIT per attempt, exactly like a scheduled firing, and a timeout or unreachable host is retried up to three times — so one call can cost up to three credits. Use it to test a destination. |
update_task | Change the schedule, destination, method, timeout, headers or body of an existing task. Omit a field to leave it unchanged — sending null is refused, because "unchanged" and "cleared" must not look the same. State is NOT editable here: use pause_task and resume_task. |
verify_destination | Verification is one request from us to the exact URL you registered: POST, headers X-402cron-Challenge: <value> and X-402cron-Event: verify, JSON body {"challenge":"<value>"}. Reply within 5 seconds, without a redirect, with a body that is the bare value or {"challenge":"<value>"}; we read the first 512 bytes and do not check the HTTP status (2xx is fine). Then call POST /api/destinations/{id}/verify within 15 minutes of registering. A fixed-response webhook cannot pass: you need an endpoint you can program. Registering a URL that is still pending issues a new challenge and a new signing secret every time — the old secret immediately stops verifying deliveries; a verified URL is left untouched unless you add ?rotate=1. The daily verification allowance (10 per destination, 40 per client, UTC day) does not reset on re-registration. Until this passes, no task may point at the destination. |
Schemas: list_tools.
{
"name": "com.402cron/402cron",
"title": "402cron",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://402cron.com/mcp",
"type": "streamable-http"
}
],
"version": "1.0.1",
"repository": {
"url": "https://github.com/402cron/402cron",
"source": "github"
},
"websiteUrl": "https://402cron.com",
"description": "Paid cron for AI agents: we call your https URL on schedule, signed. No account, paid with x402."
}