CountdownMCP
CountdownMCP is a local, read-only MCP server that gives Codex and Claude Code a plan-aware view of remaining usage and advises which tasks fit the current usage window.
Check current usage with
countdown_get_usage: plan type, used/remaining percentages, usage buckets, reset times, credits, limit state, and data source/staleness.Get work recommendations with
countdown_advise_work: provide TodoMCP WorkCandidate v1 tasks and receiverecommendedNow,deferUntilReset,executionOrder,checkpoint, usage band, and reasons.Understand capacity across windows: compares five-hour and weekly windows by estimated remaining capacity rather than equal percentages.
Fallback behavior: uses latest local Codex rate-limit metadata when the app-server is unavailable, with results explicitly marked as stale; Claude Code reads usage via its locally stored OAuth token.
Operates safely: read-only, idempotent, STDIO-only, no network port, no token writes, and keeps an active continuation-safe task eligible even at 0% remaining.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CountdownMCPWhat's my remaining usage and what should I do next?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
CountdownMCP
CountdownMCP is a local, read-only MCP server that gives Codex and Claude Code a plan-aware view of its remaining usage and helps it choose work that fits the current usage window.
It reports a percentage in the context of the actual plan (plus, pro, and other Codex plan types). It does not invent a token allowance or pretend that the same percentage means the same capacity across plans.
CountdownMCP complements TodoMCP, but both servers remain fully independent and useful on their own.
Codex should skip CountdownMCP for small, self-contained, low-risk tasks that can reasonably finish in one short turn. It should check usage once before work expected to take more than 10 minutes, require at least three meaningful execution steps, involve repeated implementation-and-test cycles, or be explicitly described as continuing across multiple substantial prompts.
What it does
Reads live ChatGPT/Codex rate-limit data through the local Codex app-server.
Under Claude Code, reads live usage from the same endpoint the
/statuscommand uses, via the OAuth token Claude Code already stores locally afterclaude login. This mirrors the approach used by community tools such asccusage, since Claude Code has no public CLI command or app-server RPC for this yet (tracked upstream: anthropics/claude-code#44328, #32796). The token is only read, never written back.Reports plan, used and remaining percentages, all returned windows, reset time, credits, and limit state.
Compares the five-hour and weekly windows by estimated remaining capacity rather than treating equal percentages as equal quota. Based on measurements after the August 2026 restoration of the Plus five-hour limit, a full five-hour allowance is estimated as 16% of the weekly allowance (about 6.25 full five-hour allowances per week).
Falls back to the latest local Codex rate-limit metadata when app-server access is unavailable. Fallback results are explicitly marked with their source and staleness. There is no equivalent local fallback for Claude Code yet, since Claude Code does not write a comparable local rate-limit snapshot.
Advises which ready tasks to run in normal, guarded, critical, and exhausted usage states.
Keeps an active, continuation-safe task eligible even at 0% remaining, because an already-running Codex turn can often continue without a new user message.
Uses STDIO only: no port, HTTP server, account token, or direct modification of another MCP server.
Related MCP server: agenticscope
Requirements
Node.js 18 or newer
For Codex: the Codex CLI available as
codexand signed in to ChatGPTFor Claude Code: signed in once via
claude login(or the desktop app), so~/.claude/.credentials.jsonholds a valid access token
Install
Clone the repository and run the installer:
git clone https://github.com/AlonTsur1601/CountdownMCP.git
Set-Location CountdownMCP
node install.mjsThe installer builds and tests the project first. It then installs a stable runtime under CODEX_HOME/mcp/countdown-mcp (normally ~/.codex/mcp/countdown-mcp) and updates only the countdown_mcp entry through the Codex CLI. Restart Codex after installation.
The installer preserves every other MCP entry. If replacing the CountdownMCP entry fails, it restores the prior Codex configuration and prior installed CountdownMCP runtime.
An installed copy is a local snapshot. New Git commits and GitHub Releases do not update it automatically. To update an existing clone, pull the newer source and rerun the installer:
Set-Location CountdownMCP
git pull --ff-only
node install.mjsRestart Codex after installing or updating.
Tools
countdown_get_usage
No input. Returns structured data similar to:
{
"planType": "plus",
"usedPercent": 31,
"remainingPercent": 69,
"effectiveLimitId": "codex",
"source": "app_server",
"stale": false
}Credits are reported separately from the plan percentage. source is app_server or session_fallback for Codex, and claude_oauth for Claude Code.
countdown_advise_work
Accepts the TodoMCP WorkCandidate v1 contract. Unknown fields are ignored for forward compatibility:
{
"currentTaskId": "task-1",
"tasks": [
{
"id": "task-1",
"title": "Run integration tests",
"priority": 5,
"estimatedMinutes": 20,
"dependenciesReady": true,
"needsUserInput": false,
"canContinueWithoutNewMessage": true,
"checkpointable": true
}
]
}The output itself is compatible with TodoMCP's advice input:
{
"recommendedNow": ["task-1"],
"deferUntilReset": [],
"executionOrder": ["task-1"],
"checkpoint": "Create a small verified checkpoint after the first recommended task.",
"source": "countdown-mcp"
}CountdownMCP does not store a queue, read TodoMCP files, import TodoMCP code, or bypass TodoMCP dependency and completion gates.
Either server continues to work normally when the other is absent.
Development
npm ci
npm run check
npm run smokenpm run smoke uses the signed-in local Codex account and prints only the plan type and remaining percentage.
Data and security
The Codex live path asks Codex app-server only for
account/rateLimits/read.The Codex fallback parser returns only the
rate_limitsobject and its timestamp. It never returns conversation text, authentication data, or token-usage details.The Claude Code path only reads the OAuth access token already stored by Claude Code and calls Anthropic's usage endpoint with it read-only; it never writes to the credentials file and never refreshes or rotates the token itself.
Both tools are advertised as read-only, non-destructive, closed-world, and idempotent.
Runtime diagnostics go to stderr; stdout is reserved for MCP protocol messages.
Releases
Pushing a tag that exactly matches the version in package.json (for example, v0.1.0) runs the release workflow. It repeats the full check and publishes a GitHub Release containing a source ZIP and SHA-256 checksum. Users extract the ZIP and run node install.mjs; no global npm publication is required.
License
Available Tools
2 toolscountdown_advise_workAdvise which work to doARead-onlyIdempotent
Use this with TodoMCP WorkCandidate v1 tasks to rank ready work against the current Codex usage window. Advisory only; it does not store tasks or override dependencies.
| Name | Required | Description | Default |
|---|---|---|---|
| tasks | Yes | ||
| currentTaskId | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| band | Yes | |
| usage | Yes | |
| source | Yes | |
| reasons | Yes | |
| checkpoint | No | |
| executionOrder | Yes | |
| recommendedNow | Yes | |
| deferUntilReset | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as read-only, idempotent, and non-destructive. The description adds behavioral context: 'Advisory only; it does not store tasks or override dependencies', clarifying it never mutates state. It doesn't cover errors, but output schema is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences totaling 28 words, front-loaded with the primary purpose and containing no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple advisory ranking tool, the description covers purpose, input type, and side-effect profile, and the output schema handles return values. However, it leaves ambiguous how the 'current Codex usage window' is obtained (given sibling countdown_get_usage) and does not clarify the role of currentTaskId, so it is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%; the description does not explain any parameters. The optional currentTaskId is completely unmentioned, and while the tasks schema has self-explanatory field names, the description only hints at the structure via 'TodoMCP WorkCandidate v1 tasks', leaving the agent without additive semantic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('rank') and resource ('ready work') against the 'current Codex usage window', and clarifies it applies to 'TodoMCP WorkCandidate v1 tasks'. It clearly differentiates from the sibling tool by noting its advisory nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to use with 'TodoMCP WorkCandidate v1 tasks' and provides context ('rank ready work against the current Codex usage window'). It lacks explicit 'when not to use' or reference to the sibling countdown_get_usage as an alternative, but the advisory-only disclaimer implies no persistence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
countdown_get_usageGet Codex usageARead-onlyIdempotent
Use this before large or multi-stage work to read the current Codex plan, remaining usage, reset window, credits, and limit state.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| stale | Yes | |
| source | Yes | |
| buckets | Yes | |
| credits | Yes | |
| planType | Yes | |
| sampledAt | Yes | |
| usedPercent | Yes | |
| sourceTimestamp | Yes | |
| effectiveLimitId | Yes | |
| remainingPercent | Yes | |
| spendControlReached | Yes | |
| rateLimitReachedType | Yes | |
| resetCreditsAvailable | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as safe and idempotent. The description adds meaningful behavioral context by specifying the exact data it returns (plan, usage, reset window, credits, limit state), which goes beyond the generic annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence beginning with the practical usage context. Every clause adds value by naming the accessible information, with no filler or redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only tool with an output schema and annotations, the description is complete. It covers why, when, and what to expect, making it fully sufficient for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the description correctly focuses on the tool's function rather than parameter details. Since there are no inputs to explain, the description fully satisfies parameter semantics without additional explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('read') and clearly identifies the resource and scope: current Codex plan, remaining usage, reset window, credits, and limit state. It also provides the timing for use, which further distinguishes it from the sibling tool countdown_advise_work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: 'before large or multi-stage work.' It gives clear context, though it does not mention when not to use it or compare with countdown_advise_work as an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v0.1.0- First observed
countdown_advise_work - First observed
countdown_get_usage
TDQS
The two tools have clearly distinct purposes: one retrieves usage information, the other provides advisory ranking for work. There is no overlap or ambiguity between them.
Both tools follow the same verb_noun pattern with the 'countdown_' prefix: countdown_get_usage and countdown_advise_work. The naming is consistent and predictable.
With only 2 tools, the server feels thin, but it is appropriately scoped for its narrow purpose of usage monitoring and work advising. It falls into the borderline category.
The tool surface covers the core needs: reading usage and advising on work. Minor gaps exist (e.g., no explicit plan management or limit adjustment), but the described advisory scope is adequately served.
Maintenance
Related MCP Connectors
A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage
MCP server for generating rough-draft project plans from natural-language prompts.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Hosted MCP server for LLM cost estimation, model comparison, and budget-aware routing.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceMCP server that provides real-time rate-limit and context budget awareness to Claude Code, enabling it to plan tasks that fit within its constraints and defer work when needed.13Apache 2.0
- AlicenseNot gradedqualityAmaintenanceA read-only MCP server that provides AI agents with live, structured workspace awareness, including project listing, git status, and budgeted context packing, minimizing token usage.152MIT
- AlicenseAqualityAmaintenanceAn MCP server that exposes Claude Code's real-time rate limit usage so that an orchestrator can check remaining capacity before launching subtasks.119MIT
- AlicenseNot gradedqualityCmaintenanceA local, read-only MCP server that lets coding agents search the complete AAS skill catalog, compose and validate agent-chosen skill stacks, and generate reproducible, reviewable plans without uploading project code.8,4261MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AlonTsur1601/CountdownMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server