Upstream Status Pages
The public status of the services that the platform depends on: the AI providers, and AWS in the platform’s region.
Many problems that users report start upstream: an AI provider that is slow or down makes prompts fail,
and an AWS outage in the platform’s region can stop its nodes or its cluster. The Smarter Operations MCP
server’s platform_status and eks_status tools
(smarter.apps.mcpserver.status.tools) use this module to check the providers’ own public status
pages, so that a help desk answer can say “the problem is upstream” with evidence. It reads:
the AI providers’ status pages of
STATUS_PAGES. Each is an Atlassian Statuspage, whose/api/v2/status.jsongives an overall indicator,none,minor,majororcritical, and a description, e.g. “All Systems Operational”.provider_statuses()reads them.the AWS service status feeds of
AWS_SERVICESin the platform’s region, e.g. EKS inca-central-1. Each is an RSS feed athttps://status.aws.amazon.com/rss/<service>-<region>.rss, whose items are the service’s recent events.aws_service_events()reads them. They need no AWS account, unlike the AWS Health api, which requires a paid support plan, and they cost nothing.
Every feed is fetched with smarter.apps.llmtool.plugin.safe_http.fetch(), the platform’s guarded
HTTP client, which refuses private addresses and limits the size of a response. A feed is cached for
FEED_CACHE_TTL seconds, so that several tool calls in a row fetch it once. A feed that cannot be
read is reported as unknown, never as healthy, and the failure is not cached.
The text of a feed is written by its provider, and is passed to an LLM: the tools mark their results as data, not instructions.
Note
Experimental. The MCPServer was designed and coded by Claude Code (Anthropic’s Claude Opus 5.5), with Lawrence McDaniel as co-author. It is experimental, and will be documented.
- smarter.apps.mcpserver.status.feeds.AWS_SERVICES: tuple[tuple[str, str], ...] = (('eks', 'EKS'), ('ec2', 'EC2'))
each one’s name in its feed’s url, and its name for people.
EKS runs the cluster’s control plane, and EC2 runs its nodes.
(('eks', 'EKS'), ('ec2', 'EC2'))
- Type:
The AWS services whose status feeds are read
- class smarter.apps.mcpserver.status.feeds.AwsEvent(service, published, title, description)[source]
Bases:
objectAn event of an AWS service in the platform’s region, e.g. “Increased API error rates”, from its RSS feed.
- __init__(service, published, title, description)
- class smarter.apps.mcpserver.status.feeds.ProviderStatus(name, url, indicator='unknown', description='the status page could not be read')[source]
Bases:
objectAn AI provider’s status, as its status page reports it, for
platform_status.provider_statuses()builds it. A page that cannot be read keeps theunknownindicator, so that it is never mistaken for a provider that works.- __init__(name, url, indicator='unknown', description='the status page could not be read')
- description: str = 'the status page could not be read'
The status in words, from the page, or why it is unknown.
- indicator: str = 'unknown'
none,minor,majororcritical, from the page, orunknownif it could not be read.
- smarter.apps.mcpserver.status.feeds.STATUS_PAGES: tuple[tuple[str, str], ...] = (('OpenAI', 'https://status.openai.com/api/v2/status.json'), ('Anthropic', 'https://status.claude.com/api/v2/status.json'), ('Mistral', 'https://status.mistral.ai/api/v2/status.json'))
each one’s name, and the url of its status.
Add a provider here when its status page offers
/api/v2/status.json. Google’s status page does not: it publishes its incidents in another format, so Gemini is not checked.( ('OpenAI', 'https://status.openai.com/api/v2/status.json'), ('Anthropic', 'https://status.claude.com/api/v2/status.json'), ('Mistral', 'https://status.mistral.ai/api/v2/status.json'), )
- Type:
The AI providers whose status page is an Atlassian Statuspage
- smarter.apps.mcpserver.status.feeds.aws_service_events(region, now=None)[source]
Read the recent events of the AWS services of
AWS_SERVICESin a region.An event older than
AWS_EVENT_PERIODis left out. An event without a date is kept, rather than hidden, and is listed first, as if it were current, because it may be. It never raises: a feed that cannot be read is named in the second list, and logged.Side effects: one HTTPS GET per service, unless its feed is cached (see
fetch_aws_feed()).- Parameters:
- Return type:
- Returns:
The recent events of every service, newest first, and the names of the services whose feed could not be read, e.g.
["EC2"]. An empty first list means that AWS reports no events.
- smarter.apps.mcpserver.status.feeds.provider_statuses()[source]
Read the status of each AI provider of
STATUS_PAGES.It never raises: a page that cannot be read is reported as
unknown, and logged.Side effects: one HTTPS GET per provider, unless its page is cached (see
fetch_statuspage()).- Return type:
- Returns:
Each provider’s status, in the order of
STATUS_PAGES.