<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Try to install the Cortex MCP server in Cortex XDR Discussions</title>
    <link>https://live.paloaltonetworks.com/t5/cortex-xdr-discussions/try-to-install-the-cortex-mcp-server/m-p/1250623#M9203</link>
    <description>&lt;P&gt;Hi all,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I try to use "Cortex MCP server" for testing purposes.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://docs-cortex.paloaltonetworks.com/r/Cortex/Cortex-MCP-server/Install-the-Cortex-MCP-server" target="_blank"&gt;https://docs-cortex.paloaltonetworks.com/r/Cortex/Cortex-MCP-server/Install-the-Cortex-MCP-server&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I use a Docker installation on Windows 11.&lt;/P&gt;
&lt;P&gt;What I've done so far:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000FF"&gt;- Created and copied the API URL, API key, and API key ID.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000FF"&gt;- Downloaded and extracted the MCP zip file:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2026-03-20 112535.png" style="width: 953px;"&gt;&lt;img src="https://live.paloaltonetworks.com/t5/image/serverpage/image-id/70982i9DF488ABC686686C/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2026-03-20 112535.png" alt="Screenshot 2026-03-20 112535.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000FF"&gt;- I created the .env file with the following content (name: cortex-xdr.env):&lt;/FONT&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2026-03-20 103758.png" style="width: 610px;"&gt;&lt;img src="https://live.paloaltonetworks.com/t5/image/serverpage/image-id/70981i6E953B259B43FCAF/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2026-03-20 103758.png" alt="Screenshot 2026-03-20 103758.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000FF"&gt;- Run&lt;/FONT&gt;&lt;/P&gt;
&lt;PRE&gt;&lt;FONT color="#0000FF"&gt;docker build -t cortex-mcp .&lt;/FONT&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;FONT color="#0000FF"&gt;to build the Docker image.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So far so good.&lt;/P&gt;
&lt;P&gt;However, as soon as I try to create the container:&lt;/P&gt;
&lt;PRE&gt;docker run --env-file .\cortex-xdr.env -it cortex-mcp&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The following appears&lt;/P&gt;
&lt;PRE&gt;PS C:\_source\cortex-mcp&amp;gt; docker run --env-file .\cortex-xdr.env -it cortex-mcp&lt;BR /&gt;Cortex MCP | Starting Cortex MCP Server&lt;BR /&gt;usecase.base_module | Added tool: get_issues&lt;BR /&gt;usecase.base_module | Added resource: issues_response.json&lt;BR /&gt;usecase.base_module | Added tool: get_cases&lt;BR /&gt;usecase.base_module | Added resource: cases_response.json&lt;BR /&gt;pkg.openapi.openapi | Loading main template from '/app/src/pkg/openapi/openapi.yaml'...&lt;BR /&gt;pkg.openapi.openapi | Discovering and merging specs from '/app/src/usecase/builtin_components/openapi'...&lt;BR /&gt;pkg.openapi.openapi | Merging '/app/src/usecase/builtin_components/openapi/get_vulnerabilities.yaml'&lt;BR /&gt;pkg.openapi.openapi | Merging '/app/src/usecase/builtin_components/openapi/get_assets.yaml'&lt;BR /&gt;pkg.openapi.openapi | Merging '/app/src/usecase/builtin_components/openapi/get_filtered_endpoints.yaml'&lt;BR /&gt;pkg.openapi.openapi | Merging '/app/src/usecase/builtin_components/openapi/get_assessment_results.yaml'&lt;BR /&gt;pkg.openapi.openapi | Merging '/app/src/usecase/builtin_components/openapi/get_asset_by_id.yaml'&lt;BR /&gt;pkg.openapi.openapi | Merging '/app/src/usecase/builtin_components/openapi/get_tenant_info.yaml'&lt;BR /&gt;pkg.openapi.openapi | Successfully merged 6 specification files from '/app/src/usecase/builtin_components/openapi'&lt;BR /&gt;pkg.openapi.openapi | Discovering and merging specs from '/app/src/usecase/custom_components/openapi'...&lt;BR /&gt;pkg.openapi.openapi | Successfully merged 0 specification files from '/app/src/usecase/custom_components/openapi'&lt;BR /&gt;pkg.openapi.openapi | Discovering and merging specs from '/app/src/usecase/remote_components/openapi'...&lt;BR /&gt;pkg.openapi.openapi | Successfully merged 0 specification files from '/app/src/usecase/remote_components/openapi'&lt;BR /&gt;pkg.openapi.openapi | Total: Successfully merged 6 specification files from 3 directories&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;Cortex MCP | Main loop stopped: No public API URL provided&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;Traceback (most recent call last):&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;File "/app/src/main.py", line 146, in main&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;asyncio.run(async_main(get_config().mcp_transport))&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;File "/usr/local/lib/python3.13/asyncio/runners.py", line 195, in run&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;return runner.run(main)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;~~~~~~~~~~^^^^^^&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;File "/usr/local/lib/python3.13/asyncio/runners.py", line 118, in run&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;return self._loop.run_until_complete(task)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;File "/usr/local/lib/python3.13/asyncio/base_events.py", line 725, in run_until_complete&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;return future.result()&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;~~~~~~~~~~~~~^^&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;File "/app/src/main.py", line 98, in async_main&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;mcp = await initialize_mcp_server(api_key, api_key_id, papi_url)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;File "/app/src/main.py", line 123, in initialize_mcp_server&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;PAPIClient(get_papi_url(papi_url), get_papi_auth_headers(api_key, api_key_id)))&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;~~~~~~~~~~~~^^^^^^^^^^&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;File "/app/src/pkg/util.py", line 157, in get_papi_url&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;raise ValueError("No public API URL provided")&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;ValueError: No public API URL provided&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;Cortex MCP | Cortex MCP Server has shut down.&lt;/FONT&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I've been trying to figure out exactly what a “public API URL” means in the context of this error message, but unfortunately I haven't found anything yet.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Maybe someone here can help me out?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you in advance!&lt;/P&gt;</description>
    <pubDate>Fri, 20 Mar 2026 12:05:17 GMT</pubDate>
    <dc:creator>PeterMS</dc:creator>
    <dc:date>2026-03-20T12:05:17Z</dc:date>
    <item>
      <title>Try to install the Cortex MCP server</title>
      <link>https://live.paloaltonetworks.com/t5/cortex-xdr-discussions/try-to-install-the-cortex-mcp-server/m-p/1250623#M9203</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I try to use "Cortex MCP server" for testing purposes.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://docs-cortex.paloaltonetworks.com/r/Cortex/Cortex-MCP-server/Install-the-Cortex-MCP-server" target="_blank"&gt;https://docs-cortex.paloaltonetworks.com/r/Cortex/Cortex-MCP-server/Install-the-Cortex-MCP-server&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I use a Docker installation on Windows 11.&lt;/P&gt;
&lt;P&gt;What I've done so far:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000FF"&gt;- Created and copied the API URL, API key, and API key ID.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000FF"&gt;- Downloaded and extracted the MCP zip file:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2026-03-20 112535.png" style="width: 953px;"&gt;&lt;img src="https://live.paloaltonetworks.com/t5/image/serverpage/image-id/70982i9DF488ABC686686C/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2026-03-20 112535.png" alt="Screenshot 2026-03-20 112535.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000FF"&gt;- I created the .env file with the following content (name: cortex-xdr.env):&lt;/FONT&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2026-03-20 103758.png" style="width: 610px;"&gt;&lt;img src="https://live.paloaltonetworks.com/t5/image/serverpage/image-id/70981i6E953B259B43FCAF/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2026-03-20 103758.png" alt="Screenshot 2026-03-20 103758.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000FF"&gt;- Run&lt;/FONT&gt;&lt;/P&gt;
&lt;PRE&gt;&lt;FONT color="#0000FF"&gt;docker build -t cortex-mcp .&lt;/FONT&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;FONT color="#0000FF"&gt;to build the Docker image.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So far so good.&lt;/P&gt;
&lt;P&gt;However, as soon as I try to create the container:&lt;/P&gt;
&lt;PRE&gt;docker run --env-file .\cortex-xdr.env -it cortex-mcp&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The following appears&lt;/P&gt;
&lt;PRE&gt;PS C:\_source\cortex-mcp&amp;gt; docker run --env-file .\cortex-xdr.env -it cortex-mcp&lt;BR /&gt;Cortex MCP | Starting Cortex MCP Server&lt;BR /&gt;usecase.base_module | Added tool: get_issues&lt;BR /&gt;usecase.base_module | Added resource: issues_response.json&lt;BR /&gt;usecase.base_module | Added tool: get_cases&lt;BR /&gt;usecase.base_module | Added resource: cases_response.json&lt;BR /&gt;pkg.openapi.openapi | Loading main template from '/app/src/pkg/openapi/openapi.yaml'...&lt;BR /&gt;pkg.openapi.openapi | Discovering and merging specs from '/app/src/usecase/builtin_components/openapi'...&lt;BR /&gt;pkg.openapi.openapi | Merging '/app/src/usecase/builtin_components/openapi/get_vulnerabilities.yaml'&lt;BR /&gt;pkg.openapi.openapi | Merging '/app/src/usecase/builtin_components/openapi/get_assets.yaml'&lt;BR /&gt;pkg.openapi.openapi | Merging '/app/src/usecase/builtin_components/openapi/get_filtered_endpoints.yaml'&lt;BR /&gt;pkg.openapi.openapi | Merging '/app/src/usecase/builtin_components/openapi/get_assessment_results.yaml'&lt;BR /&gt;pkg.openapi.openapi | Merging '/app/src/usecase/builtin_components/openapi/get_asset_by_id.yaml'&lt;BR /&gt;pkg.openapi.openapi | Merging '/app/src/usecase/builtin_components/openapi/get_tenant_info.yaml'&lt;BR /&gt;pkg.openapi.openapi | Successfully merged 6 specification files from '/app/src/usecase/builtin_components/openapi'&lt;BR /&gt;pkg.openapi.openapi | Discovering and merging specs from '/app/src/usecase/custom_components/openapi'...&lt;BR /&gt;pkg.openapi.openapi | Successfully merged 0 specification files from '/app/src/usecase/custom_components/openapi'&lt;BR /&gt;pkg.openapi.openapi | Discovering and merging specs from '/app/src/usecase/remote_components/openapi'...&lt;BR /&gt;pkg.openapi.openapi | Successfully merged 0 specification files from '/app/src/usecase/remote_components/openapi'&lt;BR /&gt;pkg.openapi.openapi | Total: Successfully merged 6 specification files from 3 directories&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;Cortex MCP | Main loop stopped: No public API URL provided&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;Traceback (most recent call last):&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;File "/app/src/main.py", line 146, in main&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;asyncio.run(async_main(get_config().mcp_transport))&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;File "/usr/local/lib/python3.13/asyncio/runners.py", line 195, in run&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;return runner.run(main)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;~~~~~~~~~~^^^^^^&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;File "/usr/local/lib/python3.13/asyncio/runners.py", line 118, in run&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;return self._loop.run_until_complete(task)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;File "/usr/local/lib/python3.13/asyncio/base_events.py", line 725, in run_until_complete&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;return future.result()&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;~~~~~~~~~~~~~^^&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;File "/app/src/main.py", line 98, in async_main&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;mcp = await initialize_mcp_server(api_key, api_key_id, papi_url)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;File "/app/src/main.py", line 123, in initialize_mcp_server&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;PAPIClient(get_papi_url(papi_url), get_papi_auth_headers(api_key, api_key_id)))&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;~~~~~~~~~~~~^^^^^^^^^^&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;File "/app/src/pkg/util.py", line 157, in get_papi_url&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;raise ValueError("No public API URL provided")&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;ValueError: No public API URL provided&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;Cortex MCP | Cortex MCP Server has shut down.&lt;/FONT&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I've been trying to figure out exactly what a “public API URL” means in the context of this error message, but unfortunately I haven't found anything yet.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Maybe someone here can help me out?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you in advance!&lt;/P&gt;</description>
      <pubDate>Fri, 20 Mar 2026 12:05:17 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/cortex-xdr-discussions/try-to-install-the-cortex-mcp-server/m-p/1250623#M9203</guid>
      <dc:creator>PeterMS</dc:creator>
      <dc:date>2026-03-20T12:05:17Z</dc:date>
    </item>
    <item>
      <title>Re: Try to install the Cortex MCP server</title>
      <link>https://live.paloaltonetworks.com/t5/cortex-xdr-discussions/try-to-install-the-cortex-mcp-server/m-p/1250625#M9204</link>
      <description>&lt;P&gt;Dear all,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I found the mistake...&lt;/P&gt;
&lt;P&gt;It was a copy-and-paste error. I copied from a Markdown and during the copy/paste,&amp;nbsp;a "\" was added before each "_" to escape it. This can be seen in the screenshot of the .env file above.&lt;BR /&gt;So now it looks like this (as it should):&lt;/P&gt;
&lt;P&gt;CORTEX_MCP_PAPI_URL=https://&amp;lt;your-tenant-url&amp;gt;&lt;BR /&gt;CORTEX_MCP_PAPI_AUTH_HEADER=&amp;lt;your_api_key&amp;gt;&lt;BR /&gt;CORTEX_MCP_PAPI_AUTH_ID=&amp;lt;your_api_key_id&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Perhaps documenting the error will help someone else solve the problem a few minutes faster.&lt;/P&gt;</description>
      <pubDate>Fri, 20 Mar 2026 12:32:28 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/cortex-xdr-discussions/try-to-install-the-cortex-mcp-server/m-p/1250625#M9204</guid>
      <dc:creator>PeterMS</dc:creator>
      <dc:date>2026-03-20T12:32:28Z</dc:date>
    </item>
  </channel>
</rss>

