---
title: "Get Mcp Clients"
method: GET
path: "/organization/surfaces/mcp/clients"
---

# Get Mcp Clients

`GET /organization/surfaces/mcp/clients`

Traversal MCP connections by harness, with distinct people, the last 7 days unless
bounded.

The organization is always the caller's. Harnesses are self-reported, so
everything behind an old ``mcp-remote`` reads as Other, and a shared API
key attributes every connection to the key owner.

## Query parameters

- `start_time` string, date-time, nullable — Start timestamp (inclusive), ISO 8601 with timezone. Defaults to 7 days before end_time.
- `end_time` string, date-time, nullable — End timestamp (exclusive), ISO 8601 with timezone. Defaults to now.

## Response `200`

Successful Response

- McpClientsResponse — Which harnesses an organization connects to Traversal MCP from, in the requested window.
  - `unique_user_count` integer, required — Distinct people across every harness, each counted once.
  - `harnesses` McpHarnessConnections[], required — Most connections first. A person who connects from two harnesses counts under both.
    - `harness` 'claude_desktop' | 'claude_code' | 'cursor' | 'opencode' | 'vs_code' | 'windsurf' | 'chatgpt' | 'codex' | 'gemini_cli' | 'other', required — The client an MCP user connected from. Append-only — the FE keys off these values.
    - `connection_count` integer, required — Handshakes, including reconnects and service accounts.
    - `unique_user_count` integer, required — Distinct people behind those handshakes. Zero when only CI connected.

## Other responses

- `422` — Validation Error

## Changes

> 57 revisions in range; 9 not diffed.

- **2026-09-26** `75b9e4398c46` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/traversal/apis/fastapi/changes/organization/surfaces/mcp/clients/get.md)

---

[API](https://skmtc.dev/traversal/apis/fastapi.md) · [All operations](https://skmtc.dev/traversal/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc.dev/traversal/apis/fastapi/revisions/c3bd9dec6c16?raw)
