Skip to main content
Glama
semwalajay83-sem

salesforce-metadata-mcp

Call Tool

sf_call_tool
Destructive

Invoke any Salesforce metadata tool by name, even if not loaded or listed. Retrieve the argument schema with sf_tool_schema or sf_find_tool, then call with validated, permission-checked arguments.

Instructions

Invokes any of this server's 228 tools by name, including tools whose toolset is not loaded and tools that do not appear in your tool list. Use this whenever a Salesforce tool you need is not directly callable — it works even on clients that do not refresh their tool list after sf_load_toolset. Get the argument shape first with sf_tool_schema or sf_find_tool. Arguments are validated and permission-checked exactly as they are on a direct call.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toolYesExact tool name, e.g. "sf_execute_anonymous_apex".
argumentsNoArguments object for that tool, matching its inputSchema. Omit for a tool that takes none.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv3.2.0

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful context beyond the annotations by explaining that arguments are validated and permission-checked exactly as on a direct call, and that the tool works even for unloaded or hidden tools. This aligns with destructiveHint, openWorldHint, and readOnlyHint: false, with no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences with no wasted words. Each sentence serves a distinct purpose: what it does, when to use it, how to prepare arguments, and the validation/permission behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity as a dynamic dispatcher with no output schema, the description covers the essential workflow: why to use it, how to find argument shapes, and what validation behavior to expect. It does not explicitly describe the return/result shape, but that output varies by invoked tool, so the omission is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both tool and arguments adequately. The description's advice to retrieve the argument shape via sf_tool_schema or sf_find_tool is helpful workflow guidance, but it does not add new semantic detail about the parameters themselves.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Invokes') and a specific resource ('this server's 228 tools by name'). It clearly distinguishes itself from direct Salesforce tools by explaining that it can invoke tools whose toolset is not loaded and tools absent from the tool list, making its dispatcher role unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly instructs the agent to use this tool when a Salesforce tool is not directly callable, and calls out the specific client-refresh scenario. It also directs the agent to sf_tool_schema or sf_find_tool first, providing concrete route guidance before invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.