[{"data":1,"prerenderedAt":400},["ShallowReactive",2],{"\u002Fblog\u002Fmcp-scheduler-give-your-agent-a-clock":3,"\u002Fblog\u002Fmcp-scheduler-give-your-agent-a-clock-surround":390},{"id":4,"title":5,"authors":6,"badge":11,"body":13,"date":380,"description":381,"extension":382,"image":383,"meta":384,"navigation":385,"path":386,"seo":387,"stem":388,"__hash__":389},"posts\u002Fblog\u002Fmcp-scheduler-give-your-agent-a-clock.md","MCP scheduler: how to schedule a task from Claude Desktop or Cursor (2026)",[7],{"name":8,"avatar":9},"Omniyond Team",{"src":10},"\u002Fimages\u002Flogo.png",{"label":12},"Guide",{"type":14,"value":15,"toc":369},"minimark",[16,21,30,33,38,49,57,61,76,79,82,86,95,111,118,122,125,128,135,139,254,257,261,269,292,295,302,315,319,325,331,337,343,347,350,365],[17,18,20],"h1",{"id":19},"mcp-scheduler-how-to-schedule-a-task-from-claude-desktop-or-cursor","MCP scheduler: how to schedule a task from Claude Desktop or Cursor",[22,23,24,25,29],"p",{},"You ask your agent to check a page every morning and message you if the price drops. It says yes. Nothing happens the next morning. This is the gap an ",[26,27,28],"strong",{},"MCP scheduler"," fills: a tool your agent can call to set up work that fires later, on time, without you sitting in the session waiting for it.",[22,31,32],{},"There are three real ways to do this in 2026, and they are not interchangeable. One runs on your laptop, one is built into your client, and one lives on a server you don't own. Which you pick depends on a single question: does the job need to run when your machine is off?",[34,35,37],"h2",{"id":36},"why-mcp-itself-cant-schedule-anything","Why MCP itself can't schedule anything",[22,39,40,41,48],{},"The Model Context Protocol has no timer. It's a request-response protocol: the client calls a tool, the server answers, the exchange ends. The ",[42,43,47],"a",{"href":44,"rel":45},"https:\u002F\u002Fblog.modelcontextprotocol.io\u002Fposts\u002F2026-07-28\u002F",[46],"nofollow","2026-07-28 spec"," pushed further in that direction and made MCP stateless by default, dropping the initialize handshake and tying most notifications to the response stream of the request they belong to. A server can stream progress back during a call. It cannot wake your agent up at 8am tomorrow.",[22,50,51,52,56],{},"So \"scheduling over MCP\" never means MCP holding the clock. It means the agent making one normal tool call that hands the waiting to something durable somewhere else. Every option below is a different answer to ",[53,54,55],"em",{},"where else",".",[34,58,60],{"id":59},"option-1-a-local-scheduler-mcp-server","Option 1: a local scheduler MCP server",[22,62,63,64,69,70,75],{},"Several community MCP servers do this on your own machine. ",[42,65,68],{"href":66,"rel":67},"https:\u002F\u002Fgithub.com\u002FPhialsBasement\u002Fscheduler-mcp",[46],"scheduler-mcp"," takes cron expressions and runs shell commands, API calls, AI tasks, and desktop notifications, with a history of past runs. ",[42,71,74],{"href":72,"rel":73},"https:\u002F\u002Fgithub.com\u002Fphildougherty\u002Fclaudecron",[46],"claudecron"," and mcp-cron are similar in shape. You clone the repo, run the process, point your client's MCP config at it.",[22,77,78],{},"What you get: full control, no cost per run, and access to everything on your box. Shell commands, local files, private network. Nothing leaves the machine.",[22,80,81],{},"What you give up: the machine. The scheduler is a process on your laptop, so the job runs when your laptop is awake and that process is alive, and not otherwise. You're also now the operator. If a target endpoint 500s at 3am, retry behaviour, alerting, and a record of what failed are yours to build or live without. Fine for personal automation. Thin ice for anything a user is depending on.",[34,83,85],{"id":84},"option-2-your-clients-built-in-scheduling","Option 2: your client's built-in scheduling",[22,87,88,89,94],{},"Some clients now ship this themselves, which changes the calculus. Claude Code Desktop has a Routines page with two kinds of scheduled work, and the ",[42,90,93],{"href":91,"rel":92},"https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fdesktop-scheduled-tasks",[46],"docs are clear about the trade",":",[96,97,98,105],"ul",{},[99,100,101,104],"li",{},[26,102,103],{},"Local scheduled tasks"," run on your machine, get your files and your MCP servers, and fire at a one-minute minimum interval. They only run while the app is open and the computer is awake. Sleep through a scheduled time and the run is skipped, though Desktop starts one catch-up run when you wake up.",[99,106,107,110],{},[26,108,109],{},"Cloud routines"," run on Anthropic-managed infrastructure whether your computer is on or not, with a one-hour minimum interval and no access to your local files.",[22,112,113,114,117],{},"If your client has this and it covers your case, use it. It's free, it's already there, and no third-party tool beats \"already installed.\" The honest limit is that it schedules ",[53,115,116],{},"an agent session",", not an arbitrary HTTP call, and it's tied to that client. If the thing that needs to run on a timer is a feature inside an app you're shipping, your users don't have your Claude Desktop.",[34,119,121],{"id":120},"option-3-a-hosted-scheduler-behind-an-mcp-tool","Option 3: a hosted scheduler behind an MCP tool",[22,123,124],{},"The third shape moves the clock off your machine entirely. Your agent calls a tool, a server records the schedule, and that server fires the call at the right time. Your laptop is irrelevant. Your session ended hours ago. The job still runs.",[22,126,127],{},"This is the only one of the three where the agent can set up work that outlives both the conversation and the machine it happened on. It's also the only one that works when the \"agent\" is a product you're shipping rather than an assistant you're using. The cost is that you're paying someone for uptime, and that the call goes over the network to a service you don't run.",[22,129,130,131,56],{},"For the wider version of this argument, including the do-it-yourself cron plus queue plus worker path, see ",[42,132,134],{"href":133},"\u002Fblog\u002Fcron-for-ai-agents","cron for AI agents",[34,136,138],{"id":137},"comparing-the-three","Comparing the three",[140,141,142,160],"table",{},[143,144,145],"thead",{},[146,147,148,151,154,157],"tr",{},[149,150],"th",{},[149,152,153],{},"Local MCP server",[149,155,156],{},"Client-native (Desktop)",[149,158,159],{},"Hosted MCP scheduler",[161,162,163,178,189,203,215,229,240],"tbody",{},[146,164,165,169,172,175],{},[166,167,168],"td",{},"Runs when your machine is off",[166,170,171],{},"No",[166,173,174],{},"Cloud routines only",[166,176,177],{},"Yes",[146,179,180,183,185,187],{},[166,181,182],{},"Needs an open session",[166,184,171],{},[166,186,171],{},[166,188,171],{},[146,190,191,194,197,200],{},[166,192,193],{},"Minimum interval",[166,195,196],{},"Cron-level",[166,198,199],{},"1 min local, 1 hr cloud",[166,201,202],{},"Minutes",[146,204,205,208,210,213],{},[166,206,207],{},"Local file and shell access",[166,209,177],{},[166,211,212],{},"Local tasks only",[166,214,171],{},[146,216,217,220,223,226],{},[166,218,219],{},"Retries and failure handling",[166,221,222],{},"You build it",[166,224,225],{},"Session-level",[166,227,228],{},"Built in",[146,230,231,234,236,238],{},[166,232,233],{},"Works for an app you ship to users",[166,235,171],{},[166,237,171],{},[166,239,177],{},[146,241,242,245,248,251],{},[166,243,244],{},"Cost",[166,246,247],{},"Free, you host it",[166,249,250],{},"Included",[166,252,253],{},"Per run",[22,255,256],{},"The rows that decide it are usually the first and the last. Everything else is preference.",[34,258,260],{"id":259},"using-omniyond-as-your-mcp-scheduler","Using Omniyond as your MCP scheduler",[22,262,263,268],{},[42,264,267],{"href":265,"rel":266},"https:\u002F\u002Fomniyond.com",[46],"Omniyond"," is the third shape. It's a pay-per-use HTTP API with a scheduler as its keystone, and it ships an MCP server so your agent can reach it directly. Add it to Claude Desktop, Cursor, or any MCP client in one line:",[270,271,276],"pre",{"className":272,"code":273,"language":274,"meta":275,"style":275},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx omniyond-mcp\n","bash","",[277,278,279],"code",{"__ignoreMap":275},[280,281,284,288],"span",{"class":282,"line":283},"line",1,[280,285,287],{"class":286},"sBMFI","npx",[280,289,291],{"class":290},"sfazB"," omniyond-mcp\n",[22,293,294],{},"From there the agent has the scheduler as a normal tool. It gives a URL, a method, headers, a body, and a cadence (every 5 minutes, hourly, daily, or a single future run), and Omniyond owns the rest. Retries back off on a 30s, then 5m, then 30m ladder. Calls that keep failing land in a dead-letter queue with a notification instead of vanishing. Every run is recorded, and the result is either stored for you to read or POSTed to a callback URL.",[22,296,297,298,301],{},"A scheduled run costs $0.01. There's no subscription and no monthly floor: you prepay a credit pack ($9, $29, or $99) and the credits never expire. If your agent holds a wallet, it can pay per call with x402 in USDC on Base instead, which means a ",[277,299,300],{},"402"," challenge and a signature rather than a signup, an API key, and a human. Scheduling is also not the only thing on the balance. Page extraction, PDFs, OG images, QR codes, and short links come out of the same credits and the same MCP server.",[22,303,304,305,309,310,314],{},"Omniyond is live. If you're weighing it against the heavier background-job platforms rather than against a local cron script, ",[42,306,308],{"href":307},"\u002Fblog\u002Fomniyond-vs-inngest","Omniyond vs Inngest"," and ",[42,311,313],{"href":312},"\u002Fblog\u002Fomniyond-vs-trigger-dev","Omniyond vs Trigger.dev"," go through those trade-offs in detail.",[34,316,318],{"id":317},"common-questions","Common questions",[22,320,321,324],{},[26,322,323],{},"Can the agent create the schedule itself, or do I have to?"," The agent can. That's the point of exposing it over MCP: the scheduler is a tool it discovers and calls like any other, so \"check this every morning and ping me\" becomes one tool call instead of a task for you.",[22,326,327,330],{},[26,328,329],{},"Do I need the MCP server at all?"," No. It's a plain HTTP API underneath. The MCP server is there so agents and MCP clients can use it without glue code, but you can call the endpoints from any app or script.",[22,332,333,336],{},[26,334,335],{},"What if my client already schedules tasks?"," Then start there. Native scheduling in your client is free and closer to your files. Reach for a hosted scheduler when the job has to run with your machine off, or when it belongs to something you're shipping to other people.",[22,338,339,342],{},[26,340,341],{},"What happens if the target endpoint is down?"," It retries on the 30s, 5m, 30m ladder, then drops to a dead-letter queue and notifies you. Nothing is silently lost, and every attempt is recorded.",[34,344,346],{"id":345},"the-takeaway","The takeaway",[22,348,349],{},"MCP has no clock, so an MCP scheduler is always a tool call that hands the waiting to something durable. A local server keeps everything on your machine and ties the schedule to it. Client-native scheduling is free and already installed, and it schedules agent sessions rather than arbitrary calls. A hosted scheduler survives your laptop, your session, and the end of the conversation, which is what you need the moment real users depend on the job firing.",[22,351,352,353,357,358,361,362,364],{},"If that's the one you want, ",[42,354,356],{"href":265,"rel":355},[46],"grab a $9 starter pack",", add ",[277,359,360],{},"npx omniyond-mcp"," to your client, and have your agent schedule its first job. Or point your wallet at the endpoint and pay the ",[277,363,300],{}," with no account at all.",[366,367,368],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":275,"searchDepth":370,"depth":370,"links":371},2,[372,373,374,375,376,377,378,379],{"id":36,"depth":370,"text":37},{"id":59,"depth":370,"text":60},{"id":84,"depth":370,"text":85},{"id":120,"depth":370,"text":121},{"id":137,"depth":370,"text":138},{"id":259,"depth":370,"text":260},{"id":317,"depth":370,"text":318},{"id":345,"depth":370,"text":346},"2026-07-30","An MCP scheduler lets your agent set up work that runs later. Here are the three ways to do it, what each one costs you, and when a hosted scheduler beats a local one.","md",{"src":10},{},true,"\u002Fblog\u002Fmcp-scheduler-give-your-agent-a-clock",{"title":5,"description":381},"blog\u002Fmcp-scheduler-give-your-agent-a-clock","YPJsLCfYmOiRxeXFrYbX1lIrB_Toc7rhRbh2aME2ag8",[391,396],{"title":392,"path":393,"stem":394,"description":395,"children":-1},"Introducing Omniyond: the API your AI agent can pay for","\u002Fblog\u002Fintroducing-omniyond","blog\u002Fintroducing-omniyond","A pay-per-use HTTP API for AI agents. A job scheduler with automatic retries and delivery, utility tools, and x402 (USDC on Base) or prepaid-credit billing. No plan, no subscription.",{"title":397,"path":307,"stem":398,"description":399,"children":-1},"Omniyond vs Inngest: scheduling and background jobs for AI agents (2026)","blog\u002Fomniyond-vs-inngest","Omniyond vs Inngest compared. Durable code workflows at a $99\u002Fmo floor versus $0.01-per-run HTTP scheduling your agent can pay for itself.",1785395270918]