Repository navigation
Conversation
Add a new partner-supported pack that connects Cortex Agentic AI to the Panorays Axis MCP server (https://mcp.panoraysapp.com/mcp) via MCPApiModule. - Authentication: Bearer API token, or OAuth 2.0 Authorization Code with a client provisioned by Panorays support. - Commands: test-module, list-tools, call-tool, panorays-mcp-auth-test, panorays-mcp-generate-login-url.
|
Thank you for your contribution. Your generosity and caring are unrivaled! Make sure to register your contribution by filling the Contribution Registration form, so our content wizard @kamalq97 will know the proposed changes are ready to be reviewed. |
🤖 AI-Powered Code Review AvailableHi @kamalq97, you can leverage AI-powered code review to assist with this PR! Available Commands:
|
|
🤖 Analysis started. Please wait for results... |
|
For the Reviewer: Trigger build request has been accepted for this contribution PR. |
|
For the Reviewer: Successfully created a pipeline in GitLab with url: https://gitlab.xdr.pan.local/xdr/cortex-content/content/-/pipelines/13779395 |
🤖 AI Review DisclaimerThis review was generated by an AI-powered tool and may contain inaccuracies. Please be advised, and we extend our sincere apologies for any inconvenience this may cause. |
marketplace-ai-reviewer
left a comment
There was a problem hiding this comment.
Hi there! Thanks for contributing the PanoraysMCP integration. I've reviewed your submission and found a few areas that need minor adjustments before we can proceed.
In the Python code, please ensure Enum comparisons use .value and update the exception handling to catch Exception rather than BaseException. For the documentation, several YAML descriptions need to follow our standard phrasing (e.g., using active voice for commands and starting parameter descriptions with "The "), and the README should be regenerated using demisto-sdk generate-docs to include the missing command examples. Lastly, please provide a higher-quality integration image, fix the header hierarchy in the detailed description, and add the missing created field to your pack metadata.
Let me know if you have any questions while working on these updates!
Additionally, please address the following file-level notes:
Packs/PanoraysMCP/Integrations/PanoraysMCP/PanoraysMCP_description.md: Verifysupportlevelheaderin YAMLPacks/PanoraysMCP/Integrations/PanoraysMCP/PanoraysMCP_image.png: The integration image appears to be blurry and pixelated. Please provide a higher quality, clearer image for the integration logo to ensure it looks professional in the XSOAR UI. The recommended size is 120x50 pixels (or 240x100 for better scaling).
@MosheEichler please review and approve the results generated by the AI Reviewer by responding 👍 on this comment.
|
|
||
| client = None | ||
| try: | ||
| auth_type = params.get("auth_type", "") |
There was a problem hiding this comment.
Ensure the Python default value matches the YAML configuration.
| else: | ||
| raise NotImplementedError(f"Command {command} is not implemented") | ||
|
|
||
| except BaseException as eg: |
There was a problem hiding this comment.
- Update exception handling to catch
Exceptionand log the traceback. - Catch
Exceptioninstead ofBaseException.
| """ | ||
| if auth_type not in SUPPORTED_AUTH_TYPES: | ||
| raise ValueError(f"Unsupported authentication type: {auth_type}. Supported types: {', '.join(SUPPORTED_AUTH_TYPES)}.") | ||
| if auth_type == AuthMethods.BEARER and not token: |
There was a problem hiding this comment.
Use .value for Enum comparison to ensure consistency and prevent potential bugs.
| raise ValueError(f"Unsupported authentication type: {auth_type}. Supported types: {', '.join(SUPPORTED_AUTH_TYPES)}.") | ||
| if auth_type == AuthMethods.BEARER and not token: | ||
| raise ValueError("API Token is required for Bearer authentication.") | ||
| if auth_type == AuthMethods.AUTHORIZATION_CODE and not all((client_id, client_secret)): |
There was a problem hiding this comment.
Use .value for Enum comparison.
| demisto.debug(f"Command being called is {command}") | ||
|
|
||
| if command == "test-module": | ||
| if auth_type == AuthMethods.AUTHORIZATION_CODE: |
There was a problem hiding this comment.
Use .value for Enum comparison.
| You can execute these commands from the CLI, as part of an automation, or in a playbook. | ||
| After you successfully execute a command, a DBot message appears in the War Room with the command details. | ||
|
|
||
| ### panorays-mcp-auth-test |
There was a problem hiding this comment.
This command block is missing the required #### Command example, #### Context Example, and #### Human Readable Output sections.
Please add a command example (e.g., !panorays-mcp-auth-test) to a command_examples.txt file and regenerate the README using the SDK to ensure all standard sections are included. For more information, see Run demisto-sdk generate-docs.
demisto-sdk generate-docs --insecure -e Packs/PanoraysMCP/Integrations/PanoraysMCP/command_examples.txt -i Packs/PanoraysMCP/Integrations/PanoraysMCP/PanoraysMCP.yml|
|
||
| There is no context output for this command. | ||
|
|
||
| ### panorays-mcp-generate-login-url |
There was a problem hiding this comment.
This command block is missing the required #### Command example, #### Context Example, and #### Human Readable Output sections.
Please add a command example (e.g., !panorays-mcp-generate-login-url) to a command_examples.txt file and regenerate the README using the SDK to ensure all standard sections are included. For more information, see Run demisto-sdk generate-docs.
demisto-sdk generate-docs --insecure -e Packs/PanoraysMCP/Integrations/PanoraysMCP/command_examples.txt -i Packs/PanoraysMCP/Integrations/PanoraysMCP/PanoraysMCP.yml| @@ -0,0 +1,24 @@ | |||
| { | |||
There was a problem hiding this comment.
The mandatory created field is missing from the pack metadata.
| "TPRM", | ||
| "Supply Chain Security" | ||
| ], | ||
| "marketplaces": [ |
There was a problem hiding this comment.
Verify if "marketplacev2" should be included in the marketplaces array.
Co-authored-by: Marketplace AI reviewer <svc-mp-ai-reviewer@paloaltonetworks.com>
|
@marketplace-ai-reviewer I'm addressing the wording, metadata and documentation comments in an upcoming commit. A few points I'd like to confirm with a reviewer before changing:
Two notes on the remaining comments:
|
- Add the created field to pack_metadata.json. - Use active voice for the integration and command descriptions, and start parameter help texts with "The". - Default auth_type to Bearer to match the YAML, and compare enums by value. - Fix the header hierarchy in the description file and drop the product overview. - Add a Prerequisites section to the integration README. - Add CONTRIBUTORS.json.
|
Hi @gotenxds , Overall looks great, I have no comments. Could you just provide a short demo showing that everything works as expected—specifically that after configuring the integration using each method, the tools are fetched and displayed properly in the Agentic Assistant Hub? Feel free to share the video with me on Slack in DFIR. |
|
For the Reviewer: Trigger build request has been accepted for this contribution PR. |
|
For the Reviewer: Successfully created a pipeline in GitLab with url: https://gitlab.xdr.pan.local/xdr/cortex-content/content/-/pipelines/14587568 |
- Set the integration category to Data Enrichment & Threat Intelligence. - List all approved categories in pack_metadata.json, led by Data Enrichment & Threat Intelligence and Vulnerability Management. - Add the TPCRM, Third Party Intelligence and Axis keywords.
Note that a Panorays Admin must enable the Panorays Axis MCP product before tools can be discovered.
Tell users to ask their Panorays Admin to enable Panorays Axis MCP before configuring the integration.
|
Hi @mmhw , thanks for the response, sent on slack, also added it here in the Pr description |
Add a new partner-supported pack that connects Cortex Agentic AI to the Panorays Axis MCP server (https://mcp.panoraysapp.com/mcp) via MCPApiModule.
The Pull Request will be reviewed only after the contribution registration form is filled.
Status
Description
Panorays MCP integration pack
relates: https://jira-dc.paloaltonetworks.com/browse/CIAC-18718
Video :
https://drive.google.com/file/d/1M_E2qOyvtOWHoTDHXGCdBd5E2lklcIWR/view