---
title: MCP Client Tool
description: "Connect an agent to a remote MCP server and let it call the server's tools — with an approval gate on every call."
---

Give an AI agent the tools of a remote [Model Context Protocol](https://modelcontextprotocol.io/) (MCP) server, with your approval before every call.

Optional: pick a saved connection in the **Authentication** field when the service needs one.

## What it does

MCP Client Tool is a tool provider for an agent, not a step in the flow. It has no output port: you connect it to the **Tools** slot of a [Tools Agent](/nodes/builtin/ai/aiagents/toolsagentnode/).

When the agent starts, the node connects to **Server URL**, asks the server which tools it offers, and hands each one to the agent as a separate tool, with the server's own name, description and arguments. One MCP Client Tool node can therefore add many tools at once. **Allowed Tools** narrows that list.

Every call is approved first. An approval row appears in the **Executions** pane, for example "call MCP tool search on mcp.example.com". It names the tool and server only, never the arguments or your credential. A rejected call never runs, and the model is told you declined. If nobody answers within 2 minutes, the call is rejected.

If the server can't be reached, rejects the credential or fails to list its tools, this node adds no tools and logs the error, while the agent's other tools keep working.

## When to use it

* You use a hosted MCP server (a project tracker, a docs search, your own service) and want an AWFlow agent to use its tools.
* You want to reuse existing MCP tools instead of building the same calls with [HTTP Request Tool](/nodes/builtin/ai/aidependencies/tools/http-request/).

Only remote servers reached over the web work. Servers that run as a local program on your computer can't be started from AWFlow.

## Inputs and settings

* **Server URL** is the full endpoint the server's provider gives you, for example `https://mcp.example.com/mcp`.
* **Allowed Tools** takes exact tool names as the server spells them, for example `search` and `get_issue`. Limiting the list keeps the agent focused and hides tools that change or delete data.

## Outputs

This node has no output port. It plugs into a slot on another node instead of passing items along.

* **Tools** slot of [Tools Agent](/nodes/builtin/ai/aiagents/toolsagentnode/)

Each tool's result goes back to the model, not to the next node. The agent's `steps` output lists the calls it made, and its `response` holds the final answer.

## Dependencies and credentials

* **Authentication** (connection): optional. See [Create a connection](/app/connections/).

If the server needs a key, the provider gives you an API key or access token; save it as a Bearer token credential and pick it in **Authentication**. It is sent as the `Authorization` header on every request. See [Create a credential](/app/connections/create/).

## Example workflow

1. [Get Selected Text](/nodes/extension/getselectedtext/) reads a question you highlighted, with **Output field name** `text`.
2. MCP Client Tool with **Server URL** `https://mcp.example.com/mcp`, your token in **Authentication**, and **Allowed Tools** set to `search`.
3. [Tools Agent](/nodes/builtin/ai/aiagents/toolsagentnode/) with **Prompt** `Search our docs and answer: {{ $input.text }}`, a [Chat OpenAI](/nodes/builtin/ai/aidependencies/llm/openai/) model in **Model**, and the MCP Client Tool connected to **Tools**.
4. Run it and approve "call MCP tool search on mcp.example.com" in the **Executions** pane. [Display Markdown](/nodes/extension/displaymarkdown/) then shows `{{ $input.response }}`.

## Common issues

* **The agent doesn't have the server's tools.** The connection or tool listing failed, so the node added none. Open the run's logs for the "MCP Client Tool: failed to connect" message, then check **Server URL** and **Authentication**.
* **Only some tools appear.** **Allowed Tools** is filtering them, or a name there doesn't match the server's spelling exactly.
* **Every call is refused.** You rejected it, or nobody approved it within 2 minutes.
* **A local server doesn't work.** Only servers with a web address are supported.

## Related nodes

* [Tools Agent](/nodes/builtin/ai/aiagents/toolsagentnode/): the agent this tool plugs into.
* [HTTP Request Tool](/nodes/builtin/ai/aidependencies/tools/http-request/): let the agent call any API directly.
* [Workflow as Tool](/nodes/builtin/ai/aidependencies/tools/workflow-tool/): turn one of your own workflows into a tool.
* [Action Approval](/concepts/ai/action-approval/): how the approval gate protects you.