Getting Started with the MCPCaller: List Tools and Call Tools

Sanae Mendoza
Sanae Mendoza
  • Updated

Introduction

The MCPCaller transformer allows an FME workspace to connect to a Model Context Protocol (MCP) server, discover the tools available on that server, and call a selected tool using structured JSON input.

This article introduces the two core MCPCaller operations:

  • List Tools: Connect to an MCP server and return the tools it exposes.
  • Call Tool: Send JSON input to a selected tool and return the result to FME.

These two operations are significant because they separate discovery from execution. With List Tools, the workspace author can see what an MCP server currently provides, including each tool’s name, description, and input schema. With Call Tool, the workspace can execute one of those tools using valid JSON input and bring the result back into FME.

This is what makes MCP useful in an FME workflow. Instead of building a custom connector for every external service, FME can connect to an MCP server, inspect the tools it exposes, and call those tools in a consistent way. The result can then be parsed, transformed, written, routed, or combined with other data using standard FME transformers.

The example uses the Microsoft Learn MCP Server because it is a publicly available remote MCP server that does not require local installation or authentication. The Microsoft Learn documentation content is only used as a simple example. The main goal is to learn how MCPCaller works.

In this article, you will learn how to:

  • Configure MCPCaller to connect to a remote MCP server
  • Use List Tools to inspect available tools
  • Review a tool’s input schema
  • Configure MCPCaller to call a selected tool
  • Build JSON input using FME attributes
  • Inspect the returned MCP response in Visual Preview

 

Requirements

  • FME Form 2026.1 or later with the MCPCaller transformer installed
  • Internet access from the machine running FME Form
  • Access to the Microsoft Learn MCP endpoint: https://learn.microsoft.com/api/mcp

No Microsoft account, API key, local MCP server, or additional software installation is required.

 

Step-by-Step Instructions

This workflow is divided into two parts. In Part 1, we will use MCPCaller to list the tools available on the MCP server. In Part 2, we will call one of those tools using JSON input.

 

Part 1: List Tools

The List Tools method is the best place to start when working with an MCP server. It confirms that FME can connect to the server and returns the tool names, descriptions, and schemas that are currently available.

This matters because MCP tools are self-describing. The server tells FME which tools exist and what input each tool expects. As a workspace author, you do not need to manually look up a separate API reference before building the first request. You can inspect the available tools directly in FME and use that information to configure the next step.

 

1. Start FME Workbench and Create a Blank Workspace

Start FME Workbench and click New to open a blank workspace.

 

Add a Creator transformer to the canvas. The Creator generates a single feature that will trigger the MCPCaller request.

 

2. Add an MCPCaller Transformer

Add an MCPCaller transformer to the canvas and connect it to the Creator.

This first MCPCaller will connect to the MCP server and list the tools that are available.

In the MCPCaller parameters, set:

  • Credential Source: None
  • MCP Server URL: https://learn.microsoft.com/api/mcp
  • MCP Method: List Tools
  • Include Response JSON: Yes

Click OK.

 

3. Run the Workspace

Run the workspace.

Open Visual Preview and inspect the output from MCPCaller. The transformer should return one output feature for each tool available from the MCP server.

The key output attributes are:

  • _name: The unique tool name used when calling the tool
  • _title: A user-friendly title, if provided by the server
  • _description: A description of what the tool does
  • _inputSchema: The JSON schema that defines the expected input for the tool
  • _outputSchema: The JSON schema that defines the output structure, if provided
  • _json_response: The full MCP response, if Include Response JSON is enabled

 

4. Review the Tool Name and Input Schema

Select a documentation search tool from the Visual Preview output. The tool name may appear as:

  • microsoft_docs_search

Review the _inputSchema attribute for that tool. The input schema tells you what JSON input is required when the tool is called.

For a search-style tool, the schema will typically include a text field for the search query.

The values returned by List Tools should be treated as the current source of truth. MCP servers can change their tool names, descriptions, and schemas over time. Before configuring a tool call, check the current List Tools output.

 

Part 2: Call Tool

The Call Tool method sends JSON input to a selected MCP tool and returns the result to the workspace. In this part, we will use the tool name and input schema from Part 1 to configure a tool call.

This matters because it turns tool discovery into action. Once FME knows which tool to call and what JSON input it expects, the workspace can pass attribute values into that tool and use the returned result like any other workspace data. This is the practical MCPCaller pattern: discover the tool, call the tool, then continue processing the response in FME.

1. Add an AttributeCreator

Add an AttributeCreator transformer to the canvas and connect it to the Creator.

We will use this transformer to create a search query attribute. This attribute will be inserted into the MCPCaller JSON input.

In the AttributeCreator parameters, create the following attribute:

  • Attribute Name: search_query
  • Value: Azure Blob Storage lifecycle management

Click OK.

 

This value can be changed later to test other MCP tool inputs. For example:

  • "Azure Functions HTTP trigger"
  • "Microsoft Graph authentication"
  • "Power BI REST API"

 

2. Add a Second MCPCaller Transformer

Add a second MCPCaller transformer to the canvas and connect it to the AttributeCreator.

This MCPCaller will call a specific tool instead of listing all available tools.

In the MCPCaller parameters, set:

  • Credential Source: None
  • MCP Server URL: https://learn.microsoft.com/api/mcp
  • MCP Method: Call Tool
  • Tool Name: microsoft_docs_search
  • JSON Input: Text or Attribute
  • Include Response JSON: Yes

If the tool browse button is available, use it to select the tool from the MCP server instead of typing the tool name manually.

 

Click OK after configuring the transformer.

When a tool is selected, MCPCaller displays the tool’s Input Schema and may populate the JSON Text parameter with a template based on that schema. Use this template as the starting point, then replace static values with FME attribute references where needed.

 

3. Configure the JSON Input

In the JSON Text parameter, the input must be valid JSON and must match the schema expected by the selected MCP tool (as seen in Part 1).

For this example, use:

{
  "query": "@Value(search_query)"
}

The @Value(search_query) expression inserts the value from the search_query attribute created earlier.

 

Click OK.

 

4. Run the Workspace

Run the workspace.

The second MCPCaller sends the JSON input to the selected MCP tool and returns the tool result through the Output port.

For this example, the main output attribute is:

  • _data: The JSON data returned by the tool

Open Visual Preview and inspect the feature from the Output port. The _data attribute contains the response from the Microsoft Docs Search tool. This is the data you will usually continue processing in the workspace.

 

Depending on the MCP tool and server response, additional content attributes may also be present, such as _content{} or _content{}.text. These attributes are used for MCP content blocks, such as text or other content returned by a tool. For this example, focus on _data.

If Include Response JSON is set to Yes, MCPCaller also returns _json_response, which contains the complete raw JSON response. This can be useful for troubleshooting or for inspecting fields that are not exposed directly as attributes.

 

5. Review the Server Information Port

MCPCaller also outputs a feature through the Server Information port when it successfully connects to the MCP server.

The Server Information port does not contain the tool result. Instead, it contains metadata about the MCP server connection. This output is useful for confirming which MCP server responded and what capabilities it reported during initialization.

Server Information output attributes may include:

  • _name: The name of the MCP server
  • _version: The server version
  • _protocolVersion: The MCP protocol version used by the server
  • _instructions: Instructions provided by the server, if available
  • _capabilities: JSON describing the server’s declared capabilities
  • _json_response: The full server information response, if Include Response JSON is enabled

Open Visual Preview and inspect the feature from the Server Information port.

 

In most workflows, the Output port is the stream used for downstream processing. The Server Information port is mainly useful for validation and troubleshooting.

 

6. Parse the Tool Response with JSONFragmenter

The MCPCaller Output port returns the tool result in the _data attribute. In this example, _data contains a JSON object with a results array. Each item in the results array is one Microsoft Learn search result.

To make these results easier to use in FME, add a JSONFragmenter after the MCPCaller Output port.

Configure the JSONFragmenter parameters as follows:

  • JSON Attribute: _data
  • JSON Query: json["results"][*]
  • Flatten Query Result into Attributes: Yes
  • Recursively Flatten Objects/Arrays: Yes
  • Attributes to Expose: content, contentUrl, title

The JSON query tells FME to look inside the _data attribute, find the results array, and create one output feature for each result in that array.

 

Click OK.

Run to the JSONFragmenter.

In this example, the Microsoft Docs Search tool returns 10 results, so the JSONFragmenter creates 10 output features.

Each output feature represents one documentation search result. The useful values from each result include:

  • title: The title of the documentation result
  • content: The returned content excerpt or page content
  • contentUrl: The URL of the source documentation page

 

This completes the basic List Tools and Call Tool workflow. At this point, the workspace has completed the basic MCPCaller pattern:

List Tools → review schema → Call Tool → parse response

This pattern can be reused with other MCP servers. The MCP server may provide documentation search, data enrichment, file processing, system actions, or internal business logic. From the FME side, the workflow remains consistent: discover the tool, build JSON input, call the tool, and use the returned result downstream.

 

Additional Resources

FME and MCP: Learn more about FME’s support for Model Context Protocol and how MCP fits into the FME Platform.

Microsoft Learn MCP Server overview: Provides information about the Microsoft Learn MCP Server, including the endpoint and supported remote MCP access pattern.

Microsoft Learn MCP Server developer reference: Provides developer-oriented details about tools, request formats, and response behavior.

MCPCaller transformer documentation: Provides information about MCPCaller parameters, output attributes, and rejected feature handling.

 

Data Attribution

This article uses documentation search results returned by the Microsoft Learn MCP Server. Refer to Microsoft Learn’s terms and documentation for usage requirements.

Was this article helpful?

We're sorry to hear that.

Please tell us why.

As of January 14th, 2026, comments on knowledge base articles have been closed. To make sure questions don’t get missed and to enable more community support, we’ve moved discussions to the FME Community. If you have a question or a comment about this article, please create a new post or create a support ticket.