Serveur MCP

agentcheck

io.github.agentwares/agentcheck
IA et agents Outils développeur Public et accessible MCP 2025-11-25

Ce que fait ce MCP

Monitors HTTP endpoints, MCP servers, and A2A agents with scheduled checks, trace replay, regression detection, and incident reporting.

agentcheck_add_check
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.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name', 'kind', 'golden', 'targetId'], 'properties': {'kind': {'enum': ['http', 'mcp_tools_list', 'mcp_tool_call', 'a2a_task', 'custom'], 'type': 'string', 'description': 'what to run: http (GET path or POST prompt), mcp_tools_list, mcp_tool_call (tool + args), a2a_task (message)'}, 'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'short name shown on the status page'}, 'input': {'type': 'object', 'default': {}, 'description': 'http: { path?, method?, body?, prompt? } · mcp_tool_call: { tool, args } · a2a_task: { message }', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'golden': {'type': 'object', 'required': ['kind'], 'properties': {'kind': {'enum': ['exact', 'contains', 'regex', 'json_schema', 'rubric', 'baseline'], 'type': 'string', 'description': 'how the answer is judged; exact/contains/regex/json_schema cost nothing, rubric/baseline use the LLM judge'}, 'tools': {'type': 'array', 'items': {'type': 'string'}, 'description': 'expected tool-call sequence (replay checks)'}, 'value': {'type': 'string', 'description': 'exact / contains: the expected text'}, 'rubric': {'type': 'string', 'description': 'rubric: what a passing answer must do, in plain language'}, 'schema': {'type': 'object', 'description': 'json_schema: JSON Schema (draft 2020-12 subset)', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'pattern': {'type': 'string', 'description': 'regex: pattern source without slashes'}, 'expected': {'type': 'string', 'description': 'rubric: a reference answer, when there is one'}, 'caseInsensitive': {'type': 'boolean'}}, 'description': 'how the answer is judged. exact / contains / regex / json_schema are free and deterministic; rubric and baseline call the LLM judge, and baseline compares against the last known-good answer.'}, 'targetId': {'type': 'string', 'minLength': 1, 'description': 'id from agentcheck_create_target or GET /api/v1/targets'}, 'intervalSec': {'type': 'integer', 'default': 3600, 'maximum': 604800, 'minimum': 60, 'description': "seconds between runs; the tier's interval is the floor (Free hourly, Starter+ 5 min)"}}, 'additionalProperties': False}
agentcheck_create_target
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 minute tick; call agentcheck_run_now to run immediately. Free tier: 1 target, hourly; Starter+: 5-minute checks. Requires an API key.
Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['kind'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': "endpoint URL (http/mcp) or the agent's origin (a2a)"}, 'auth': {'anyOf': [{'type': 'object', 'required': ['type', 'token'], 'properties': {'type': {'type': 'string', 'const': 'bearer'}, 'token': {'type': 'string'}}}, {'type': 'object', 'required': ['type', 'name', 'value'], 'properties': {'name': {'type': 'string'}, 'type': {'type': 'string', 'const': 'header'}, 'value': {'type': 'string'}}}], 'description': "credential the prober sends to your endpoint: {type:'bearer',token} or {type:'header',name,value}. Stored encrypted and never returned or logged."}, 'kind': {'enum': ['http', 'mcp', 'a2a'], 'type': 'string', 'description': 'http (JSON or chat endpoint), mcp (Streamable HTTP url, or npx/uvx package spec), a2a (agent card)'}, 'name': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'display name; defaults to the host'}, 'slug': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9-]{0,62}$', 'description': 'URL slug for /<owner>/<slug>; defaults to a slug of the name'}, 'alerts': {'type': 'object', 'properties': {'emails': {'type': 'array', 'items': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}}, 'slackWebhookUrl': {'type': 'string', 'format': 'uri'}, 'discordWebhookUrl': {'type': 'string', 'format': 'uri'}}, 'description': 'where to send an incident when a check starts failing. Any combination; omit it and incidents are visible only on the status page.'}, 'checks': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'kind', 'golden'], 'properties': {'kind': {'enum': ['http', 'mcp_tools_list', 'mcp_tool_call', 'a2a_task', 'custom'], 'type': 'string', 'description': 'what to run: http (GET path or POST prompt), mcp_tools_list, mcp_tool_call (tool + args), a2a_task (message)'}, 'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'short name shown on the status page'}, 'input': {'type': 'object', 'default': {}, 'description': 'http: { path?, method?, body?, prompt? } · mcp_tool_call: { tool, args } · a2a_task: { message }', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'golden': {'type': 'object', 'required': ['kind'], 'properties': {'kind': {'enum': ['exact', 'contains', 'regex', 'json_schema', 'rubric', 'baseline'], 'type': 'string', 'description': 'how the answer is judged; exact/contains/regex/json_schema cost nothing, rubric/baseline use the LLM judge'}, 'tools': {'type': 'array', 'items': {'type': 'string'}, 'description': 'expected tool-call sequence (replay checks)'}, 'value': {'type': 'string', 'description': 'exact / contains: the expected text'}, 'rubric': {'type': 'string', 'description': 'rubric: what a passing answer must do, in plain language'}, 'schema': {'type': 'object', 'description': 'json_schema: JSON Schema (draft 2020-12 subset)', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'pattern': {'type': 'string', 'description': 'regex: pattern source without slashes'}, 'expected': {'type': 'string', 'description': 'rubric: a reference answer, when there is one'}, 'caseInsensitive': {'type': 'boolean'}}, 'description': 'how the answer is judged. exact / contains / regex / json_schema are free and deterministic; rubric and baseline call the LLM judge, and baseline compares against the last known-good answer.'}, 'intervalSec': {'type': 'integer', 'default': 3600, 'maximum': 604800, 'minimum': 60, 'description': "seconds between runs; the tier's interval is the floor (Free hourly, Starter+ 5 min)"}}}, 'maxItems': 20, 'description': 'checks to create right away (the probe proposes three)'}, 'format': {'enum': ['openai_chat', 'json', 'get'], 'type': 'string', 'description': 'http: openai_chat (POST /chat/completions body), json (raw POST), get (plain fetch)'}, 'headers': {'type': 'object', 'description': 'extra request headers', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'isPublic': {'type': 'boolean', 'default': True, 'description': 'public status page + badge (default true)'}, 'modelVar': {'type': 'string', 'description': 'the model your agent runs on (e.g. claude-sonnet-5); enables model-drift re-runs'}, 'corpusUrl': {'type': 'string', 'format': 'uri', 'description': 'RAG targets: public corpus URL for the nightly groundedness scorer (Pro)'}, 'modelHeader': {'type': 'string', 'description': 'request header your endpoint accepts to override the model (drift re-runs try the new model)'}, 'packageSpec': {'type': 'string', 'description': 'mcp only: `npx @org/server` / `uvx server` — runs on the mcpcheck runner, not the minute checks'}, 'agentCardUrl': {'type': 'string', 'format': 'uri', 'description': 'a2a: explicit agent card URL when it is not at /.well-known/agent-card.json'}}, 'additionalProperties': False}
agentcheck_get_pricing
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.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}, 'additionalProperties': False}
agentcheck_get_status
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.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['owner', 'slug'], 'properties': {'slug': {'type': 'string', 'minLength': 1, 'description': 'target slug, e.g. demo'}, 'owner': {'type': 'string', 'minLength': 1, 'description': "GitHub login of the target's owner, e.g. demo"}}, 'additionalProperties': False}
agentcheck_list_incidents
Open and recent incidents across your targets (or one target): when they opened/closed, the failing check and the cause. Requires an API key.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'targetId': {'type': 'string', 'description': 'narrow to one target; omit for incidents across every target on the account'}}, 'additionalProperties': False}
agentcheck_promote_trace
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.
Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['traceId'], 'properties': {'traceId': {'type': 'string', 'minLength': 1, 'description': 'trace id from agentcheck_record or POST /api/v1/targets/{id}/traces'}}, 'additionalProperties': False}
agentcheck_record
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.
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['targetId', 'input', 'output'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'description': "short label, e.g. 'refund for order A-1029'"}, 'input': {'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'object', 'required': ['role', 'content'], 'properties': {'role': {'type': 'string'}, 'content': {'type': 'string'}}}}, {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}], 'description': 'the prompt, the messages array, or an object with prompt/messages'}, 'model': {'type': 'string', 'description': 'the model that produced this answer, so drift re-runs can compare across models'}, 'output': {'type': 'string', 'minLength': 1, 'description': "the agent's final answer"}, 'targetId': {'type': 'string', 'minLength': 1, 'description': 'id from agentcheck_create_target or GET /api/v1/targets'}, 'toolCalls': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'args': {}, 'name': {'type': 'string'}}}, 'description': 'tool calls in order'}}, 'additionalProperties': False}
agentcheck_run_now
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.
Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['targetId'], 'properties': {'targetId': {'type': 'string', 'minLength': 1, 'description': 'target id'}}, 'additionalProperties': False}
Ajouté
agentcheck_list_incidents
17 September 2026 12:40
Ajouté
agentcheck_promote_trace
17 September 2026 12:40
Ajouté
agentcheck_record
17 September 2026 12:40
Ajouté
agentcheck_run_now
17 September 2026 12:40
Ajouté
agentcheck_add_check
17 September 2026 12:40
Ajouté
agentcheck_create_target
17 September 2026 12:40
Ajouté
agentcheck_get_pricing
17 September 2026 12:40
Ajouté
agentcheck_get_status
17 September 2026 12:40