# HeadlessMCPGuardMiddleware

> **Class** in `deepagents_code`

📖 [View in docs](https://reference.langchain.com/python/deepagents-code/auto_mode/HeadlessMCPGuardMiddleware)

Reject dynamically gated MCP calls when no approval UI exists.

## Signature

```python
HeadlessMCPGuardMiddleware(
    self,
    tool_names: set[str],
)
```

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `tool_names` | `set[str]` | Yes | Mutating, contradictory, malformed, or unannotated MCP names. |

## Extends

- `HumanInTheLoopMiddleware[AgentState[Any], Any, Any]`

## Constructors

```python
__init__(
    self,
    tool_names: set[str],
) -> None
```

| Name | Type |
|------|------|
| `tool_names` | `set[str]` |


## Properties

- `trace_policy`

## Methods

- [`wrap_tool_call()`](https://reference.langchain.com/python/deepagents-code/auto_mode/HeadlessMCPGuardMiddleware/wrap_tool_call)
- [`awrap_tool_call()`](https://reference.langchain.com/python/deepagents-code/auto_mode/HeadlessMCPGuardMiddleware/awrap_tool_call)

---

[View source on GitHub](https://github.com/langchain-ai/deepagents/blob/e4c1ffe9ee63d7854147de490ca27495ef157a7b/libs/code/deepagents_code/auto_mode.py#L4392)