Skip to main content
Version: 1.1.x

Tool Customization

Tool Customization, or tool hardening, lets you create hardened variants of existing tools with fixed input values, rewritten descriptions, or both. These customized tools appear alongside the original tool and can be used to enforce constraints, improve security, and guide AI agents toward the correct tool behavior.

custom tool


Why Tool Customization Matters

When AI agents call tools, unrestricted flexibility can lead to unintended results, data exposure, or policy violations. Tool Customization provides a way to secure and clarify tool usage through:

  • Security Hardening: Lock or override parameter values.
  • Clarity for Models: Rewrite or append tool and parameter descriptions.
  • Governance and Compliance: Maintain an approved catalog of hardened tools aligned with internal policies.
  • Operational Consistency: Ensure every customized tool behaves predictably across agents and workflows.

Common Use Cases

  • Enforce fixed parameters (for example, always use a specific timezone or endpoint).
  • Add or rewrite tool descriptions to reflect security or compliance rules.
  • Expose only hardened tool variants to agents using Agent Access.
  • Help LLMs choose the right tool by making descriptions clear, contextual, and policy-aware.
  • Create a variant to automate secure actions such as changing a GitHub repository from public to private.

Configuration

You can create a custom tool within the MCPX UI.

  1. Go to Tools
  2. Select from an existing tool from one of your connected servers
  3. Click "Customize"
  4. Select the input you wish to harden:
    • Parameter Value
    • Tool Description
    • Parameter Description
  5. Save!

You will now see your custom tool added to the list of tools within the connected server and the app.yaml will be updated accordingly.

For Example: If you want to create a new tool called Custom_add_issue_comment_private_repo which overrides the value of the parameter repo to always be my-public-repo and updates the description of the tool to add the phrase in my-public-repo GitHub repository to the the description the following will be added to the configuration:

custom_tool_example_yaml
toolExtensions:
services:
github:
add_issue_comment:
childTools:
- name: Custom_add_issue_comment_private_repo
description:
action: rewrite
text: Add a comment to a specific issue in my-public-repo GitHub repository.
Use this tool to add comments to pull requests as well (in this case pass pull
request number as issue_number), but only if user is not asking specifically
to add review comments.
overrideParams:
repo:
value: my-public-repo
description:
action: rewrite
text: Repository name

Description Customization

Tool and parameter descriptions give LLMs the context they need to use a tool effectively. Clear and custom descriptions allow for correct, context-aware tool use. When you customize the text of a description, you have the choice to completely rewrite it, overwriting any descriptions for that tool or parameter, or you can choose to append.

Given the original tool description:

Add a comment to a specific issue in my-public-repo GitHub repository. Use this tool to add comments to pull requests as well (in this case pass pull request number as issue_number), but only if user is not asking specifically to add review comments.

You can use rewrite or append to change the description to explain what exactly this new, custom tool should do.

Rewrite Example

description:
action: rewrite
text: "Add a comment to a specific issue in my-public-repo GitHub repository. Use this tool to add
comments to pull requests as well (in this case pass pull request number as issue_number),
but only if user is not asking specifically to add review comments."

This will result in the description of the tool being changed to the text you choose, completely overwriting the original text.

Append Example

If you wish to append the description, add the content you want to be at the end of the default description:

description:
action: append
text: "Only add comments to the Github repository my-public-repo."

This will create an updated description, taking the original text and attaching the new text to the end of it:

Add a comment to a specific issue in a GitHub repository. Use this tool to add comments to pull requests as well (in this case pass pull request number as issue_number), but only if user is not asking specifically to add review comments. Only add comments to the Github repository my-public-repo.

Append allows you to add customization to descriptions even if the original description changes. For example, if GitHub changed the description of the tool above, but you want to make sure it always knows only to add comments to my-public-repo you would use append. The original part of the description stays flexible but you control what is added.

note

Currently, in order to append a description you have to do so manually in the app.yaml or by editing the yaml configuration file in the UI.

Parameter Overrides

Use overrideParams to lock specific inputs:

overrideParams:
repo:
value: my-public-repo
description:
action: rewrite
text: Repository name

When set the stated value is always used, even if others are provided.

note
  • Tool Customization is configured via the MCPX Control Plane.
  • After configuring a custom tool, you must add it to the tool groups that your agent has access to.
  • Original servers must already exist (in mcp.json or added through the Control Plane).
  • Customized tools will appear in the UI with a special label.