mcp__describe_tools result in search mode, the default, or the authenticated
MCP tools/list result in full mode. It is the authority for the deployment, account, exact wire name, and current
input schema you are connected to.
Provider summary
Tools from
ontology and metric appear only after your
account installs that app with POST /registry/v1/apps/{app}/install.
The gateway’s own tool is named mcp__<tool>. Registry tools are named
registry__<tool>. Every other first-party tool is named
extension__<provider>__<tool>.
Gateway tools
tools/list shows the session opener as mcp__initialise. Its earlier name,
registry__initialise, is no longer listed, but a call to it still opens a
session, so a client that saved the old name keeps working.
By default, a connection to https://api.atlan.com/mcp is in search mode and
lists five other gateway tools instead of this catalog: mcp__search_tools,
mcp__describe_tools, and the runners mcp__call_read_tool,
mcp__call_write_tool, and mcp__call_tool. They find, describe, and run the
tools on this page. See Search mode tools.
A connection with ?tools=full lists this catalog by name.
Registry tools
Agent tools
Skill tools
Eval tools
Ontology tools
Metric tools
Repository tools
Downstream tools
Registered downstream MCP servers contribute a dynamic, account-specific catalog. Gateway advertises each tool as<server-name>__<tool-name>, where
<server-name> is the server’s name folded to lowercase letters, digits, and
dashes, such as linear__save_issue for a server named Linear. A server with
no usable name, or one whose name another server you can see also uses, keeps
remote__<server-id>__<tool-name>, where <server-id> is its mcp_server_…
artifact ID. Every server’s tools also answer to that remote__ form. Copy the
name from tools/list rather than constructing it.
Gateway serves each downstream server’s tools from a stored catalog.
tools/list returns the server’s cataloged tools, with the input schema the
server listed when each tool was last cataloged, and tools/call reaches only
a cataloged tool. A call to any other tool on that server fails with JSON-RPC
invalid params (-32602) and data.reason set to uncatalogued. A server that
has not been cataloged yet contributes no tools.
A server installed from a Store definition whose release lists reviewed tools
is held to them: tools/list offers only the ones the release’s review left
on, and only while the server describes each exactly as reviewed — the same
title, description, input schema, and behaviour hints. A call to any other tool
on that server fails with the same error and data.reason set to unreviewed.
A release that lists no reviewed tools leaves its server serving what it
lists, and a server registered by hand serves what it lists.
Gateway catalogs a server when it is registered, enabled, or pointed at a new
endpoint. It refreshes the catalog hourly and when you test the server’s
connection with POST /mcp/v1/servers/{server_id}/test. The hourly refresh
pauses for a server that keeps failing to answer — after three days of
failures, or sooner when only a configuration change can fix it — and resumes
when someone who may edit the server refreshes or tests it, or its
configuration changes. A server that each user signs in to with their own
account is not part of the hourly refresh. A tool the server adds reaches
agents after the next refresh. On a server installed from a Store definition
whose release lists reviewed tools, it waits until a release that reviews it
is installed: until then the gateway holds it back.
A server that supports MCP Apps marks UI helper tools in each tool’s own
_meta: ui.visibility names who sees the tool (model, app, or both), and
ui.resourceUri names the tool’s interface. Gateway catalogues this metadata,
and a tool that declares a visibility list without model is app-only: it
stays out of tools/list and search results, so agents never see it. UI
metadata in any other shape hides the tool too.
Provenance metadata on each tool
Gateway also writes its own_meta keys on every downstream tool, so an agent
reads provenance instead of parsing the advertised name:
Gateway sets these keys itself and sets or removes each one: a value the
downstream server supplies in its own
_meta never survives to the tool list,
so a server cannot name another product. The customer’s own endpoint host,
com.atlan/server-host, never appears in a tool list.
Refresh server catalog
To apply what a server lists now, callPOST /mcp/v1/servers/{server_id}/refresh. Send {"is_dry_run": true} to
preview the difference — no tool is written — or {} to apply it. A successful
listing by a caller who may edit the server also releases a paused catalogue
sync, preview or apply. The response
lists the tool names in added, updated, and removed, with
unchanged_count and failed_count. Applying adds new tools, updates changed
ones, and archives tools the server no longer lists, so it changes which tools
every agent sees and can call. Applying needs update permission on the
server’s workspace. If failed_count is not 0, refresh again.
A refresh returns 409 when the server is disabled, or when it lists no tools
while it has a catalog: an empty listing does not replace a cataloged set.
GET /mcp/v1/tools reads the stored tool records. Its first-party rows are
named <provider>:<tool>, such as agent:create_bulk, not by wire name. Each
row carries the tool’s catalogued argument and result schemas and its MCP Apps
linkage in meta. Use authenticated protocol tools/list for the exact names
an agent can call.
The projection has no row for the gateway’s own tools, the session opener and
mcp__retrieve_artifacts. Gateway answers both itself, so they appear in
tools/list but not in GET /mcp/v1/tools or a catalog search.
Skill metadata versus tool declarations
A Skill’sallowed-tools frontmatter records dependencies. It does not
register those tools with Gateway. A tool named in Skill metadata is callable
only when Registry, an installed extension, or a registered downstream server
advertises it.