---
title: "Dashboard test surface: invoke an MCP tool by slug (FEATHER_MCP_CLIENT)"
method: POST
path: "/v1/integrations/connections/{connection_id}/test-mcp-call"
tags: ["integrations"]
---

# Dashboard test surface: invoke an MCP tool by slug (FEATHER_MCP_CLIENT)

`POST /v1/integrations/connections/{connection_id}/test-mcp-call`

Fire a real ``FEATHER_MCP_CLIENT`` invocation from the Integrations dashboard.

Verifies the parent connection is owned by the caller's org (404
otherwise), resolves the slug to ``(connection, tool)`` via
``ToolService.resolve_by_slug``, then dispatches through our MCP client →
the customer's MCP server (decrypt creds → open session → ``call_tool``).
This is the only non-agent way to exercise ``FEATHER_MCP_CLIENT``, so a
green result here is strong evidence the whole custom-MCP invoke path works
end-to-end. Returns the raw MCP result and emits an ``integration_tool_call``
Tinybird row with ``mode=feather_mcp_client`` / ``reason="ui_mcp_test_call"``.
An unresolved/disabled slug surfaces as ``ToolUnavailableError`` (400).

## Path parameters

- `connection_id` string, uuid, required

## Request body

- ConnectionTestMcpCallRequest — Body for the dashboard ``FEATHER_MCP_CLIENT`` test surface (Step 8). Lets an operator fire a real ``custom_mcp`` MCP ``tools/call`` from the Integrations page to confirm the customer-MCP invoke path end-to-end (decrypt creds → open MCP session → ``call_tool``). It's the only non-agent way to exercise ``FEATHER_MCP_CLIENT``. ``input`` matches the resolved tool's ``input_schema``.
  - `slug` string, required
  - `input` object

## Response `200`

Successful Response

- ConnectionTestMcpCallResponse — Raw MCP ``tools/call`` result echoed back to the dashboard test surface.
  - `result` object, required

## Other responses

- `400` — Bad request
- `401` — Authentication required
- `404` — Resource not found
- `422` — Validation Error

---

[API](https://skmtc.net/oneloop-hq/apis/feather-api.md) · [All operations](https://skmtc.net/oneloop-hq/apis/feather-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/oneloop-hq/feather-api/versions/888bdd5c076e/schema)
