---
title: "Manually run a tool from an External MCP Connection"
method: POST
path: "/v1/mcp-connections/{connectionId}/tools/call"
tags: ["Authentication"]
---

# Manually run a tool from an External MCP Connection

`POST /v1/mcp-connections/{connectionId}/tools/call`

Workspace owner/admin diagnostic runner. Executes one named MCP tool with caller-supplied JSON arguments using the Den-managed shared credential or the calling admin's connected credential. Returns an ephemeral inspection of the actual tools/call HTTP request and response with credential and session headers redacted. The caller must already be granted access to the connection. Credentials, arguments, results, and inspection payloads are never written to logs.

## Path parameters

- `connectionId` string, typeid, required

## Request body

- ExternalMcpConnectionToolRunInput
  - `toolName` string, required
  - `arguments` object, required

## Response `200`

The MCP tool completed.

- ExternalMcpConnectionToolRunResponse
  - `referenceId` string, required
  - `durationMs` number, required
  - `result` unknown, required
  - `inspection` ExternalMcpConnectionToolInspection, required
    - `request` ExternalMcpConnectionToolInspectionRequest
      - `method` string, required
      - `url` string, required
      - `startedAt` string, date-time, required
      - `headers` ExternalMcpConnectionToolInspectionHeader[], required
        - `name` string, required
        - `value` string, required
        - `redacted` boolean, required
      - `body` ExternalMcpConnectionToolInspectionBody, required
        - `text` string, required
        - `bytes` integer, required
        - `truncated` boolean, required
        - `unavailable` boolean
    - `response` ExternalMcpConnectionToolInspectionResponse
      - `status` integer, required
      - `statusText` string, required
      - `durationMs` number, required
      - `headers` ExternalMcpConnectionToolInspectionHeader[], required
        - `name` string, required
        - `value` string, required
        - `redacted` boolean, required
      - `body` ExternalMcpConnectionToolInspectionBody, required
        - `text` string, required
        - `bytes` integer, required
        - `truncated` boolean, required
        - `unavailable` boolean
    - `diagnosis` ExternalMcpConnectionToolInspectionDiagnosis, required
      - `status` 'succeeded' | 'failed', required
      - `layer` 'openwork' | 'network' | 'mcp_connection' | 'remote_http' | 'mcp_tool', required
      - `summary` string, required

## Other responses

- `400` — Invalid tool name or arguments.
- `401` — The caller must be signed in.
- `403` — The caller must be a workspace owner/admin, have access, and be allowed by tool policy.
- `404` — Unknown connection.
- `409` — The connection has no usable credential for this member.
- `413` — The tool arguments exceeded the request size limit.
- `502` — The upstream MCP tool call failed.

---

[API](https://skmtc.net/openworklabs/apis/den-api.md) · [All operations](https://skmtc.net/openworklabs/apis/den-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openworklabs/den-api/versions/073bc652adfb/schema)
