Codex Reset Tracker
Codex reset tracker: usage-limit reset announcements from @thsottiaux on X. Read-only, no key.
Should I use this
Quality & Safety
Findings (3)
- HIGH
- MEDIUMin get_codex_reset_announcements
- MEDIUMin get_codex_reset_calendar
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"codex": {
"url": "https://tokenusage.dev/mcp"
}
}
}Remote endpoints
https://tokenusage.dev/mcpstreamable-httpWhat it can do
Tool inventory
Tools (2)
🟢get_codex_reset_announcements(limit)
Codex usage-limit reset announcements recorded by tokenusage.dev's Reset Alerts from @thsottiaux's public posts on X, newest first (at most 50): each post's link, when it was posted, when this site recorded it and resetType, plus when the monitor last checked X successfully. resetType is automatic, banked or both; null means recorded before Reset Alerts recorded reset types. A banked reset grant saves a reset for eligible users to apply later and does not itself refill limits. An announcement may describe a forthcoming event or one already completed; a post is not proof that any account's limit was reset. Open its url for the exact wording and eligibility. Only @thsottiaux is watched. Unofficial, not affiliated with OpenAI. Source: https://tokenusage.dev/resets
Input Schema
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10,
"description": "How many announcements to return, newest first: 1 to 50, default 10."
}
},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"source": {
"type": "string",
"description": "The fixed credit URL, https://tokenusage.dev/resets. When showing the data to other people, show Data: tokenusage.dev linked to this URL on the same screen or in the same message. Personal use needs no visible credit. API and MCP relays must retain source and pass on this credit condition."
},
"generatedAt": {
"type": "string",
"description": "When tokenusage.dev read this data, ISO 8601 UTC. The server caches it for up to 15 seconds."
},
"lastPolledAt": {
"type": [
"string",
"null"
],
"description": "The monitor's latest successful fetch of @thsottiaux's X timeline, checks that found no new posts included, ISO 8601 UTC; null before the first, or when an older record lacks it. It is not a sign that classification or alert delivery is working."
},
"resets": {
"type": "array",
"maxItems": 50,
"description": "Newest first.",
"items": {
"type": "object",
"properties": {
"postId": {
"type": "string",
"description": "The X post's id."
},
"url": {
"type": "string",
"description": "The post on X."
},
"postedAt": {
"type": "string",
"description": "When the post was published, ISO 8601 UTC."
},
"detectedAt": {
"type": "string",
"description": "When this site recorded the post, ISO 8601 UTC; posts recorded when the monitor started share one time."
},
"resetType": {
"type": [
"string",
"null"
],
"enum": [
"automatic",
"banked",
"both",
null
],
"description": "The monitor's classification of the post: automatic is a direct usage-limit reset with no saved reset; banked is a reset grant saved for eligible users to apply later; both announces both types. Both classifier calls must give the same type. Null means recorded before Reset Alerts recorded reset types. This is not proof that any account's limit was reset."
}
},
"required": [
"postId",
"url",
"postedAt",
"detectedAt",
"resetType"
]
}
}
},
"required": [
"source",
"generatedAt",
"lastPolledAt",
"resets"
]
}🟢get_codex_reset_calendar(month)
Codex usage-limit reset announcements recorded by tokenusage.dev's Reset Alerts from @thsottiaux's public posts on X, grouped by UTC calendar date, newest dates first, with posts within each date newest first (at most 50 announcements in total). Optional month selects a UTC month written YYYY-MM. Dates are UTC; only dates with recorded announcements are returned. Only announcements this monitor recorded from @thsottiaux are shown, at most the 50 newest; this is not a complete history. A date without an entry does not mean no reset was announced. Each item has postId, url, postedAt and resetType. resetType is automatic, banked or both; null means recorded before Reset Alerts recorded reset types. A banked reset grant saves a reset for eligible users to apply later and does not itself refill limits. An announcement may describe a forthcoming event or one already completed; a post is not proof that any account's limit was reset. Open its url for the exact wording and eligibility. Unofficial, not affiliated with OpenAI. Source: https://tokenusage.dev/resets
Input Schema
{
"type": "object",
"properties": {
"month": {
"type": "string",
"pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
"description": "An optional UTC calendar month, YYYY-MM. Omit it to return every recorded date in the cached response."
}
},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"source": {
"type": "string",
"description": "The fixed credit URL, https://tokenusage.dev/resets. When showing the data to other people, show Data: tokenusage.dev linked to this URL on the same screen or in the same message. Personal use needs no visible credit. API and MCP relays must retain source and pass on this credit condition."
},
"generatedAt": {
"type": "string",
"description": "When tokenusage.dev read this data, ISO 8601 UTC. The server caches it for up to 15 seconds."
},
"lastPolledAt": {
"type": [
"string",
"null"
],
"description": "The monitor's latest successful fetch of @thsottiaux's X timeline, checks that found no new posts included, ISO 8601 UTC; null before the first, or when an older record lacks it. It is not a sign that classification or alert delivery is working."
},
"timeZone": {
"type": "string",
"enum": [
"UTC"
],
"description": "Calendar dates are UTC dates."
},
"coverage": {
"type": "string",
"enum": [
"Only announcements this monitor recorded from @thsottiaux are shown, at most the 50 newest; this is not a complete history. A date without an entry does not mean no reset was announced."
],
"description": "What this recorded-announcement calendar covers; missing dates do not establish that no reset was announced."
},
"month": {
"type": [
"string",
"null"
],
"pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
"description": "The requested UTC month, YYYY-MM; null when no month filter was supplied."
},
"days": {
"type": "array",
"maxItems": 50,
"description": "Only dates with recorded announcements, newest dates first; at most 50 announcements in total.",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$",
"description": "The UTC calendar date of postedAt, YYYY-MM-DD."
},
"resets": {
"type": "array",
"maxItems": 50,
"description": "Announcements on this UTC date, in source order, newest first.",
"items": {
"type": "object",
"properties": {
"postId": {
"type": "string",
"description": "The X post's id."
},
"url": {
"type": "string",
"description": "The post on X."
},
"postedAt": {
"type": "string",
"description": "When the post was published, ISO 8601 UTC."
},
"resetType": {
"type": [
"string",
"null"
],
"enum": [
"automatic",
"banked",
"both",
null
],
"description": "The monitor's classification of the post: automatic is a direct usage-limit reset with no saved reset; banked is a reset grant saved for eligible users to apply later; both announces both types. Both classifier calls must give the same type. Null means recorded before Reset Alerts recorded reset types. This is not proof that any account's limit was reset."
}
},
"required": [
"postId",
"url",
"postedAt",
"resetType"
]
}
}
},
"required": [
"date",
"resets"
]
}
}
},
"required": [
"source",
"generatedAt",
"lastPolledAt",
"timeZone",
"coverage",
"month",
"days"
]
}Community
Evidence