agentcheck
by agentwares · remote · no sign-in to list tools · v0.1.1 · published by GitHub user agentwares
Synthetic checks, nightly regression replay and model-drift alerts for AI agents
11 tools: 1 can delete or cancel things, 7 change things and 3 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things7Claude Code: ask: see these tools
- Only reads3Claude Code: allow: see these tools
4 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http agentcheck https://agentwares-agentcheck.vercel.app/api/mcpFindings
Matches of fixed checks, with the text they matched.
The input schema at properties.checks.items.properties.kind.enum[2] names a tool "call" that this server does not list.
What this check looks forMatched text
inputSchema.properties.checks.items.properties.kind.enum[2]: "mcp_tool_call"
The input schema at properties.kind.enum[2] names a tool "call" that this server does not list.
What this check looks forMatched text
inputSchema.properties.kind.enum[2]: "mcp_tool_call"
The server marks "agentcheck_list_incidents" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "agentcheck_list_incidents" says "list": a word for reading.
The input schema at properties.auth.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.auth.description: "credential the prober sends to your endpoint: {typ..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
11 tools
Deletes or cancels 1Claude Code: deny
agentcheck_create_targetEnroll something to monitor: an http endpoint (JSON or OpenAI-style chat), a remote MCP server (Streamable HTTP url) or an A2A agent (origin with /.well-known/agent-card.json).2 findings
Why it is in this group
- The name "agentcheck_create_target" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Findings
- Info
The input schema at properties.auth.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.auth.description: "credential the prober sends to your endpoint: {typ..."
- Warn
The input schema at properties.checks.items.properties.kind.enum[2] names a tool "call" that this server does not list.
What this check looks forMatched text
inputSchema.properties.checks.items.properties.kind.enum[2]: "mcp_tool_call"
Description, as the server wrote it Enroll something to monitor: an http endpoint (JSON or OpenAI-style chat), a remote MCP server (Streamable HTTP url) or an A2A agent (origin with /.well-known/agent-card.json). Pass `checks` to create checks in the same call (POST /api/v1/probe proposes three). Returns the target id, the public status page, the badge SVG URL and a README snippet. The first check runs on the next scheduled tick, within five minutes; call agentcheck_run_now to run immediately. Free tier: 1 target, hourly; Starter+: 5-minute checks. Requires an API key.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
Changes things 7Claude Code: ask
agentcheck_add_checkAdd a check to one of your targets.1 finding
Why it is in this group
- The name "agentcheck_add_check" says "add": a word for a change.
Findings
- Warn
The input schema at properties.kind.enum[2] names a tool "call" that this server does not list.
What this check looks forMatched text
inputSchema.properties.kind.enum[2]: "mcp_tool_call"
Description, as the server wrote it Add a check to one of your targets. A check runs an input (http path/prompt, mcp tool call, a2a message) on a schedule and judges the answer with a golden: exact, contains, regex and json_schema cost nothing; rubric and baseline use the LLM judge (baseline = same outcome as the last known-good answer). Returns the check id. Requires an API key.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
agentcheck_api_sunsetsWhen does the API version this code pins stop working, and what happens then?No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it When does the API version this code pins stop working, and what happens then? Pass provider and version pairs as your code pins them (shopify 2025-10, meta v21.0, google-ads v22, hubspot v1, twilio-flex 2.16.2, twilio-notify v1, keap xml-rpc, exchange-online ews, stripe 2024-06-20). For each, returns every dated end the provider's own versioning, changelog or retirement page lists: status, end date (and whether the provider gives only a month), what happens after it (error, silent fall-forward to another version, app delisting, or unsupported), whether the failure is silent, the replacement version, the source URL with the date it was read, and a page with the details. Where the provider's own pages give different dates for the same end, other_dates lists each one with its page and date_note says which the counts run to. A pair with no entry comes back with the reason: older than every listed version, no end date published yet, or a provider that publishes none (Stripe). Covers Shopify, HubSpot, Meta Graph and Marketing APIs, Google Ads and Content API for Shopping, Twilio Flex UI and Notify, Thryv's Keap XML-RPC, and Exchange Web Services (EWS) in Exchange Online. No API key needed.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
agentcheck_list_incidentsOpen and recent incidents across your targets (or one target): when they opened/closed, the failing check and the cause.1 finding
Why it is in this group
- The name "agentcheck_list_incidents" says "list": a word for reading.
- The description's first verb is "open": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "agentcheck_list_incidents" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "agentcheck_list_incidents" says "list": a word for reading.
Description, as the server wrote it Open and recent incidents across your targets (or one target): when they opened/closed, the failing check and the cause. Requires an API key.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
agentcheck_model_retirementsIs this model retiring?No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Is this model retiring? Pass model IDs as your code or config names them (gpt-5-mini, claude-sonnet-4-5-20250929, gemini-2.5-flash, openai/o3-mini). For each, returns every announced shutdown on OpenAI's, Anthropic's and Google's own deprecation pages (OpenAI API, Claude API, Gemini API, Vertex AI): status, shutdown date, recommended replacement, the replacement's list-price ratio per token, the API changes the provider documents, the source URL with the date it was read, and a page with the details. retiring: false means no shutdown for that ID is on those pages. Language models only. No API key needed.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
agentcheck_promote_traceTurn an imported or recorded trace into a replayable check whose golden is the recorded outcome (tool sequence + final-answer rubric).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Turn an imported or recorded trace into a replayable check whose golden is the recorded outcome (tool sequence + final-answer rubric). The check runs daily and in the nightly replay (Pro). Returns the check. Requires an API key.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
agentcheck_recordRecord one production interaction with your agent (the prompt or messages, the final answer, the tools it called, optionally the model) as a trace on a target.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Record one production interaction with your agent (the prompt or messages, the final answer, the tools it called, optionally the model) as a trace on a target. Call it from your agent or from a proxy in front of it after each task; promote a good trace with agentcheck_promote_trace to replay it nightly and catch regressions. Requires an API key.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
agentcheck_run_nowRun every check of one of your targets immediately (outside the schedule) and return pass/fail per check with latency, judge cost and any incident opened or closed.No findings
Why it is in this group
- The name "agentcheck_run_now" says "run": a word for a change.
Description, as the server wrote it Run every check of one of your targets immediately (outside the schedule) and return pass/fail per check with latency, judge cost and any incident opened or closed. Use it right after enrolling, or to confirm a fix. Requires an API key.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Only reads 3Claude Code: allow
agentcheck_get_pricingMachine-readable pricing for agentcheck: tiers with monthly USD price, target limits, check interval and features, plus per-run add-ons.No findings
Why it is in this group
- The name "agentcheck_get_pricing" says "get": a word for reading.
Description, as the server wrote it Machine-readable pricing for agentcheck: tiers with monthly USD price, target limits, check interval and features, plus per-run add-ons. Same data as /pricing.json. No API key needed.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
agentcheck_get_statusCurrent status of a public monitored target: overall state, uptime over 24h/7d/30d, last check time, last nightly scores, open incidents and the badge/status URLs.No findings
Why it is in this group
- The name "agentcheck_get_status" says "get": a word for reading.
Description, as the server wrote it Current status of a public monitored target: overall state, uptime over 24h/7d/30d, last check time, last nightly scores, open incidents and the badge/status URLs. Use the owner (GitHub login) and target slug from the status page URL https://agentwares-agentcheck.vercel.app/<owner>/<slug>. No API key needed.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
agentcheck_statuspage_previewRead a public Atlassian Statuspage page once: its name, overall status, components (id, name, status, group) and unresolved incidents, from the page's own /api/v2/summary.json.No findings
Why it is in this group
- The name "agentcheck_statuspage_preview" says "preview": a word for reading.
Description, as the server wrote it Read a public Atlassian Statuspage page once: its name, overall status, components (id, name, status, group) and unresolved incidents, from the page's own /api/v2/summary.json. Pass any address on the page: status.example.com, https://status.example.com/history or the JSON URL. Use it before POST /api/v1/statuspage, which turns the components you give a URL into a live agentcheck status page checked by agentcheck itself, with no signup; the answer carries that request's body. Same read as /statuspage/preview: only public addresses, 5-second timeout, 512 KB cap. Private pages cannot be read. No API key needed.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.1.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http agentcheck https://agentwares-agentcheck.vercel.app/api/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__agentcheck__agentcheck_get_status",
"mcp__agentcheck__agentcheck_get_pricing",
"mcp__agentcheck__agentcheck_statuspage_preview"
],
"ask": [
"mcp__agentcheck__agentcheck_model_retirements",
"mcp__agentcheck__agentcheck_api_sunsets",
"mcp__agentcheck__agentcheck_add_check",
"mcp__agentcheck__agentcheck_run_now",
"mcp__agentcheck__agentcheck_record",
"mcp__agentcheck__agentcheck_promote_trace",
"mcp__agentcheck__agentcheck_list_incidents"
],
"deny": [
"mcp__agentcheck__agentcheck_create_target"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as agentcheck. Review it before you use it.
