---
title: "Report that one MCP tool fired. Fire-and-forget; records which tool and whether it succeeded, nothing else."
method: POST
path: "/api/v1/connection/tool-call"
tags: ["connection"]
---

# Report that one MCP tool fired. Fire-and-forget; records which tool and whether it succeeded, nothing else.

`POST /api/v1/connection/tool-call`

Called automatically by @pathmode/mcp-server once per tool invocation, in connected (cloud) mode ONLY — a keyless local-mode server makes no network request at all. Emits exactly one event, mcp_tool_called, carrying the tool name and outcome; deliberately touches NO api_keys column, so a tool firing never moves last_used_at and the activation series stays comparable across the day this shipped. Accepts only tool and outcome; both are normalised against fixed sets before anything is recorded. Clients must treat failures, including 429, as non-fatal.

## Request body

- object
  - `tool` string, required — Name of the tool that ran, e.g. check_intent_readiness. Checked against the server's registered tool list; an unrecognised name is recorded as "unknown" rather than stored as given, so this field cannot carry spec content, paths, or anything else from the caller's repo.
  - `outcome` string, required — "ok" or "error". Anything else is recorded as "unknown".

## Response `200`

OK — invocation recorded

- object

## Other responses

- `401` — Invalid/expired API key, or no Bearer key and no valid session cookie
- `429` — Rate limited (2000 pings per user per hour). Clients drop the datapoint and carry on.

---

[API](https://skmtc.dev/pathmode/apis/pathmode-api.md) · [All operations](https://skmtc.dev/pathmode/apis/pathmode-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/pathmode/pathmode-api/revisions/e419abb0a327/schema)
