---
title: "Discover available tools on an MCP server"
method: POST
path: "/api/mcp/discover-tools"
tags: ["v2", "mcp", "mcp"]
---

# Discover available tools on an MCP server

`POST /api/mcp/discover-tools`

Connect to an MCP server and return its available tools.

If the user has a stored MCP credential for this server URL, it will be
used automatically — no need to pass an explicit auth credential.

## Request body

- DiscoverToolsRequest — Request to discover tools on an MCP server.
  - `server_url` string, required — URL of the MCP server
  - `auth_token` string, password, nullable — Optional bare Bearer token, Basic/Bearer value, or complete Authorization header. Omit the field (or send null) for an unauthenticated server; an empty string is rejected.

## Response `200`

Successful Response

- DiscoverToolsResponse — Response containing the list of tools available on an MCP server.
  - `tools` MCPToolResponse[], required
    - `name` string, required
    - `description` string, required
    - `input_schema` object, required
  - `server_name` string, nullable
  - `protocol_version` string, nullable

## Other responses

- `401` — Authentication required
- `422` — Validation Error

## Changes

- **2026-09-07** `d3946c727d24` — 2 breaking, 1 warning
  - the `auth_token/anyOf[subschema #1]/` request property's minLength was increased from `0` to `1`
  - the `auth_token/anyOf[subschema #1]/` request property format changed from no format to `password`
  - the `auth_token/anyOf[subschema #1]/` request property's maxLength was set to `8192`

[Change history](https://skmtc.dev/significant-gravitas/apis/autogpt-agent-server/changes/api/mcp/discover-tools/post.md)

---

[API](https://skmtc.dev/significant-gravitas/apis/autogpt-agent-server.md) · [All operations](https://skmtc.dev/significant-gravitas/apis/autogpt-agent-server/llms.txt) · [OpenAPI document](https://skmtc.dev/significant-gravitas/apis/autogpt-agent-server/revisions/f6cf1d85a2cd?raw)
