Custom connectors

List a remote MCP connector's tool registry

Lists the tool registry the organization keeps for one of its own remote MCP connectors: one row per tool name, decided once for every connection of the connector. A tool the server offers is usable at once. Rows carry status (active, or disabled when a manager turned it off), tier (derived from the server's annotations and following the server on every refresh), tier_source (server when the server's annotations decided the tier; default when the server sent no readOnlyHint: true and no boolean destructiveHint, so the safe default destructive applies), the full description of the latest definition (at most 64,000 characters), connection_count (connections that list it now) and can_manage (whether the caller may PATCH it). A caller with only use access sees just the active tools, whatever status they ask for. Paged by name; q is a case-insensitive substring of the name, upstream name, title or description (a space also matches _), and status, tier (one or several) and labeled filter too, all before paging. When q, tier or labeled narrows the list, the first page (no cursor) also carries match_count, the count of every tool matching those filters, to show "N of M tools" beside the detail's remote_mcp.listed_tool_count (the unfiltered count). Needs use access or better on the connector (a view grant answers 403; no access, or a connector with no remote MCP server, answers 404) and the custom_connectors plan feature. For the catalog capability listing, use GET /connector/{slug}/tools instead.

get/connector/{slug}/tool

Request

  • Base URL: https://api.elaichi.ai
  • URL: https://api.elaichi.ai/connector/{slug}/tool
  • Auth: HTTP bearer

Path parameters

slugstring required

Connector slug of an org-owned remote MCP connector.

Query parameters

limitinteger

Page size. Defaults to 50. Values above 200 are silently clamped to 200 rather than rejected; a value below 1, or a non-integer, is a 400. Ignored by the endpoints documented as unpaginated.

cursorstring

Opaque cursor — pass the next_cursor from a previous response. Ignored by unpaginated endpoints.

qstring

Substring of the name, upstream name, title or description. LIKE wildcards are matched literally. Max 200 characters.

status'active' | 'disabled'

Only tools that are on (active) or off (disabled). Managers only; a use grantee always gets active.

tierstring[]

Only tools whose stored tier is this one, or any of several: a comma list (tier=read,write) or the parameter repeated. It is the tier the gate enforces, so tier=destructive includes the tools the server left unlabeled (tier_source: "default"). Pair with labeled=true for server labels only. Empty is no filter; any value that is not read, write or destructive is a 400.

[
  "read"
]
labeled'true' | 'false'

true: only tools the server labeled itself (tier_source: "server"); false: only the ones it left unlabeled. Empty is no filter; any other value is a 400.

Headers

X-Organization-Idstring

Target organization (org_…). Required for cookie/session auth on org-scoped routes; optional for API tokens, which carry their organization, and rejected when it names a different one.

Response

OK

resultobject[] required
next_cursorstring nullable required
prev_cursorstring nullable required
match_countinteger

How many tools match this request's q / tier / labeled (and the caller's status), counted on the server. Only on a first page of a narrowed list; absent otherwise.

Changes

No recorded changes to this operation across all 1 revision of this API.