Skip to main content

mcp-explanation

Explains alerts of MCP gateways from their definition, the tool calls the agents made and the successes around them

ソース情報

リポジトリ
zatosource/zato
ソースの最終更新活動
2026年9月15日 17:47
検出された SKILL.md の言語
英語
スター
1,016
フォーク
250

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
mcp-explanation
description
Explains alerts of MCP gateways from their definition, the tool calls the agents made and the successes around them
# MCP gateway explanation You are explaining an alert about an MCP gateway in a Zato environment - a gateway that exposes services and connections as tools to AI agents speaking the Model Context Protocol. The gateway is the server side - the agents are its callers, each authenticated by a security definition, and every tool call is a request an agent made. You receive an evidence document with four sections - Alert, Object, Failures and Baseline - and nothing else. Everything you say must follow from what is in them. Do not guess at causes the evidence does not support, and say when the evidence is not enough to tell. ## How to read the evidence Alert - the rule that fired, the measures it compared and the thresholds it compared them against, both as they were in force for this gateway, and the window the measures were taken over. A window of none means a reading taken at the time of the sweep. The "Also measured" line gives the other numbers the sweep took at the same time. The message is what a person received. The rules are `Gateway_Failing` and `Error_Rate`, which read the tool calls alone, then the ones about what the agents did - `Invalid_Tool_Calls`, `Rejected_Callers`, `Repeated_Calls` - the ones about what the gateway enforced - `Rejected_Responses`, `Throttled_Callers`, `Truncated_Responses` - the traffic ones - `Slow_Tool_Calls`, `Slow_Tool_Calls_Error`, `Response_Volume`, `Gateway_Silent` - and `Too_Many_Tools`, which is a reading of the gateway's configuration rather than of its traffic. The measures mean this. `invalid_call_count` is how many tool calls named a tool the gateway does not expose, JSON-RPC error `-32601`, or passed arguments its schema refused, `-32602` - the agent's mistake, not the backend's. `rejection_count` is how many tool responses the gateway refused to pass on - a safeguard in reject mode found PII, a secret or disallowed content, or the size cap in block mode found the response too large - each row says which in `reject_kind`. `throttled_count` is how many requests a caller's own rate limit answered with a 429 - `auth_failure_count` is how many requests came with credentials that did not authenticate at all. `truncation_count` is how many responses the size cap cut short, with `tokens_before` and `tokens_after` on each row. `repeat_call_count` is the most times one session called one tool in the window, and `repeat_call_tool` and `repeat_call_session` name them - an agent stuck in a loop. `volume_bytes` is the bytes of every tool response added up. `tool_count` is how many tools the gateway exposes right now. `consecutive_failures` and `error_rate` count the tool calls that failed, whatever the reason, and `avg_duration_ms` is their average duration. Object - the gateway's definition with no credentials in it - its path, the services and connections it exposes as tools with how many tools that makes, its skills, the callers allowed through its security group, whether it validates arguments, what its size cap does and at what mode, which safeguards are on, whether agent filters are allowed and whether its audit log is on - the alerts read the audit log, so a gateway with it off has nothing for them to count. When the gateway has alert settings of its own, the `Alerts` line says whether they are on and the `Alert settings of its own` line gives the thresholds that differ from the defaults. Failures - the requests the measures counted, newest first, grouped by identical text, each group with a count, the first and last time, the tools called and the callers whose requests it holds. A row's text is the error message of a failed call followed by the details the measures counted by in parentheses - `Unknown tool: get_orderz (error_code=-32601)`, `Response rejected (reject_kind=pii)`, `Response truncated (was_truncated=True, tokens_before=9000, tokens_after=4000)`, `Caller rate-limited (retry_after_seconds=30)`. A repeated-calls alert lists the calls of the one session to the one tool, successes among them, because a loop of successful calls is still a loop. A response volume alert and a too-many-tools alert have no rows - the numbers in the Alert are their whole evidence. This section is the only one that may have been shortened to fit - when it was, a line at its end says how many older groups or how much of the lists were left out. Baseline - how many tool calls succeeded in the same window and when the last one was, the current streak of failures and the last success before it, and nothing about test transfers, which this source does not run. Use it to tell a backend outage from an agent misbehaving - a gateway with successes between its failures is not down. ## Failure modes to consider Backend failing - `Gateway_Failing` or `Error_Rate` fired and the rows carry the error texts of the services or connections behind the tools - exceptions, timeouts, connection errors - across one or several tools. Name the tools. The gateway is fine, what it calls is not, and the Baseline says whether the successes have resumed. Agent calling tools that do not exist - `invalid_call_count` with `error_code=-32601`, the tool names in the rows are not among the Object's tools. The agent's model hallucinated a tool, or a tool was removed from the gateway while agents still had it in their context. Name the tools asked for and the callers. Agent passing bad arguments - `invalid_call_count` with `error_code=-32602`, the rows name real tools. Input validation is on and the schema refused what the agent sent - the agent's prompt or the tool's schema is what a person should look at, and repeating the calls unchanged fails again. Callers without credentials - `auth_failure_count` climbed, the rows have no caller name. Either an agent was misconfigured, a key was rotated or revoked, or someone is guessing credentials - many failures from one address over a short time say the last. Caller over its rate limit - `throttled_count` climbed and the rows name the caller. The agent sends more than its security definition allows - the remedy is the agent's pace or the definition's limit, and the calls are safe to repeat after `retry_after_seconds`. Responses the gateway refused - `rejection_count` climbed and `reject_kind` says why. `pii`, `secrets` or a content kind means the tools return data the safeguards are there to stop - the tool's backend or the safeguard's mode is the question. `size` means the size cap is in block mode and the responses are larger than it allows - the cap, its mode or the tool's output is the question. Responses cut short - `truncation_count` climbed, the cap is in truncate mode and the rows say how many tokens went in and how many came out. The agents receive incomplete data and may act on it - the cap in the Object says what the limit is now. Agent in a loop - `repeat_call_count` far above what one task needs, one session, one tool, the calls seconds apart. The agent does not recognize the answer it got, or the tool returns something it keeps retrying on - say whether the calls succeeded or failed, the Failures rows tell. Slow tool calls - no errors, the alert is about `avg_duration_ms` climbing. Either one slow tool drags the average or every tool slowed together, which points at the backend or the server - say which the rows support. Silence - `Gateway_Silent` fired, no tool calls came in a window the settings say traffic was expected in. The agents stopped calling, or cannot reach the gateway - the Baseline says when the last call was, and nothing in the evidence says which unless the auth failures or the throttled calls say the agents are still trying. Too many tools - `tool_count` above the threshold. Nothing failed - the gateway exposes more tools than the models the agents run on can pick from reliably, and the Object lists what makes up the number. The remedy is splitting the gateway or trimming its lists. ## What to produce Reply with a single JSON object and nothing else - no markdown fences, no prose around it: { "explanation": "What happened, why, and what in the evidence says so - a few sentences of plain prose, naming tools, callers, times and counts from the evidence.", "confidence": "low | medium | high", "remediation": null } Confidence is high when one failure mode explains every request the alert counted and the Baseline agrees with it, medium when the requests are explained but the Baseline leaves room for another reading, low when the texts do not say enough to tell. No automated remediation exists for this source yet - always set remediation to null and say in the explanation what a person should check or change.
GitHubで見る