What is a Required Argument?

2 min read Updated

A policy rule enforcing that a specific argument must be present in a tool call. Required argument constraints prevent tools from being called with missing critical parameters that the MCP server might otherwise silently default or ignore.

WHY IT MATTERS

MCP tool schemas define which arguments are optional and which are required. But schema-level validation and policy-level requirements are different things. A tool might technically accept a call without a reason field, but the organisation's governance policy might mandate that every write operation includes a justification.

Required argument constraints at the policy layer enforce organisational rules that go beyond schema validation. They ensure that audit-critical metadata is always present — who requested the action, why, what ticket it relates to. This metadata is essential for compliance, debugging, and forensic analysis.

For AI agents, required argument constraints also catch a common LLM failure mode: dropping optional parameters. When an LLM generates a tool call, it sometimes omits parameters it considers unimportant. A policy-level required constraint catches these omissions before they reach the server, ensuring consistent, well-formed tool calls.

HOW POLICYLAYER USES THIS

Intercept supports required argument rules in YAML policies. The required: true flag on an argument constraint ensures the field is present and non-empty in the tool call. If the argument is missing, Intercept denies the call with a clear message stating which required argument was absent. This enforcement is independent of the MCP tool's own schema validation.

FREQUENTLY ASKED QUESTIONS

How is this different from the MCP tool schema's required fields?
MCP schema validation happens at the server. Policy-level required arguments are enforced at the proxy, before the call reaches the server. They can mandate fields the schema considers optional — e.g. requiring a reason field for audit purposes.
Does required mean non-empty?
Yes. Intercept treats a required argument as both present and non-empty. An argument set to an empty string or null is treated as absent and triggers a denial.
Can I require arguments conditionally?
Yes. Combined with policy conditions, you can require certain arguments only when other conditions are met — e.g. requiring a reason field only for write operations above a certain threshold.

FURTHER READING

Enforce policies on every tool call

Intercept is the open-source MCP proxy that enforces YAML policies on AI agent tool calls. No code changes needed.

npx -y @policylayer/intercept
github.com/policylayer/intercept →
// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.