> For the complete documentation index, see [llms.txt](https://cortex-docs.paloaltonetworks.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cortex-docs.paloaltonetworks.com/mcp-integration-contributor-guide/required-mcp-commands.md).

# Required MCP commands

This page defines the configuration and command requirements for MCP integrations.

Every MCP integration must set `script.mcp: true` in the integration YAML and use the latest `demisto:mcp` Docker image.

```yaml
script:
  mcp: true
dockerimage: demisto:mcp
```

MCP integrations must expose three core commands:

#### test-module (built-in)

* Triggered by the Test button in the integration configuration UI.
* For token/bearer/basic auth: Calls `client.test_connection()` to verify connectivity.
* For OAuth auth: Raises `DemistoException` directing users to use the `auth-test` command instead.
* Returns `ok` on success.

#### list-tools (hidden command)

* Retrieves all available tools from the MCP server.
* Takes no arguments.
* Returns a list of tool names and descriptions.
* Hidden from the UI. The system calls this periodically to discover tools.
* Results are used to auto-generate agentic actions.

#### call-tool (hidden command)

* Executes a specific tool on the MCP server.
* Arguments:
  * **name:** (Required) The tool name to execute.
  * **arguments:** (Optional) JSON string of parameters for the tool.
* Returns the tool’s execution result.
* Hidden from the UI. The system calls this when an agent uses a tool.

#### OAuth integrations

OAuth integrations add two additional commands:

`<prefix>-auth-test`

* Tests OAuth authentication after the user provides an authorization code.
* Only included when auth type is OAuth (Authorization Code, Client Credentials, or Dynamic Client Registration).

`<prefix>-generate-login-url`

* Generates the OAuth login URL for the user to authorize the integration.
* Only included when auth type is OAuth.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://cortex-docs.paloaltonetworks.com/mcp-integration-contributor-guide/required-mcp-commands.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
