Skip to main content
Version: 1.1.x

Tool Customization

Tool Customization is a new feature in Lunar MCPX that lets you create restricted or extended versions of existing tools. This is especially useful when you want to fix input parameters (e.g. always call a tool with a specific timezone), clarify or override descriptions, or tightly control how tools are used by AI agents.

You can think of this as creating "child tools" from a parent tool. A similar interface, but locked-down behavior.

This can be used in combination with ACLs to restrict access to only the customized tools in your organization.

Overview​

With Tool Customization, you can:

  • Create child tools based on existing tools
  • Fix specific argument values (overriding user-provided input)
  • Rewrite the tool’s description

The main purpose of Tool Customization is to prevent LLMs from calling tools with undesired or unsafe input. While tools can be called directly, the typical usage pattern in an Agentic AI system is for the LLM to choose which tools to call and how. Tool Customization helps guide that behavior by exposing only safe, pre-configured versions of tools.

Calling a custom (child) tool is equivalent to calling the original tool β€” but with one or more parameters fixed to pre-defined values. Any attempt to override those values will be ignored.

Tool Customization is configured in your app.yaml under the toolExtensions section. The original tools remain unmodified, the child tools are added alongside them.

Example Configuration​

toolExtensions:
services:
time:
get_current_time:
childTools:
- name: get_current_time_in_paris
description:
append: "This version always uses the Paris timezone."
overrideParams:
timezone: Europe/Paris

In this example:

  • A new tool get_current_time_in_paris is created from get_current_time.
  • The timezone parameter is hardcoded to Europe/Paris.
  • The tool description is extended with a clarifying sentence.

Description Modification​

Child tools can modify the parent tool's description in two ways:

  • append: Adds extra text to the end of the existing description.
  • rewrite: Replaces the description entirely.
description:
action: "append"
text: "Only works for Paris."

or

description:
action: rewrite
text: "Returns the current time in Paris."

Overriding Parameters​

You can fix any input parameter to a constant value using overrideParams. When you do this:

  • The parameter value will always be passed to the tool as specified β€” even if the user or agent provides a different value.
  • The parameter’s original description will be updated with a note that it is hardcoded with an appended note.

To ensure LLMs understand which parameters are fixed, the original parameter descriptions are automatically annotated. For example:

Original description for timezone. Note: This parameter is ignored – it is hardcoded to be Europe/Paris. Pass an empty string for this parameter. This helps LLMs understand that this parameter does not need to be provided.

note
  • Tool Customization is currently configured via app.yaml. or the MCPX UI.
  • The original service and tool name must already exist (in mcp.json or added via MCPX UI).