---
title: "Post Tool"
method: POST
path: "/v1/tool"
tags: ["api"]
---

# Post Tool

`POST /v1/tool`

## Request

- Base URL: `https://mcp.sentinelx.app` (the document declares no server; this is the origin it was published from)
- URL: `https://mcp.sentinelx.app/v1/tool`
- Auth: none declared

Dispatch one MCP tool through the REST bridge with request identity.

Authenticated calls always receive a Hub-generated correlation id. Supplying
``client_request_id`` additionally creates the same at-most-once/replay
boundary used by POST /v1/op, including concurrent-duplicate protection.

## Request body

- ToolRequest: Body of ``POST /v1/tool`` — call any registered MCP tool by name. ``args`` are the tool's own parameters (its JSON Schema is in GET /v1/tools). ``host_id`` is a convenience: for agent tools it's merged into ``args`` so the caller can keep it out of the args blob, matching /v1/op.
  - `tool` string, required
  - `args` object
  - `host_id` string, nullable
  - `client_request_id` string, nullable: Optional caller-generated idempotency key. Reusing it with the same effective tool invocation replays the prior result without calling the tool again; conflicting reuse is rejected.

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/sentinelx/apis/sentinelx-hub.md) · [All operations](https://skmtc.dev/sentinelx/apis/sentinelx-hub/llms.txt) · [OpenAPI document](https://skmtc.dev/sentinelx/apis/sentinelx-hub/revisions/d1f84924795e?raw)
