Panther MCP Server (mcp-panther) is Panther's Model Context Protocol (MCP) server, providing the following capabilities:
- Write and tune detection rules in your IDE
- Interactively query security logs using natural language
- Triage, comment on, and resolve single or multiple alerts
Available Tools
The documentation does not list a specific set of tools.
Panther Configuration
Follow these steps to configure API credentials and the environment.
Create an API token in Panther:
Navigate to Settings (gear icon) → API Tokens Create a new token with the following permissions (starting read-only is recommended): View required permissions Securely store the generated token (e.g., 1Password) Copy your Panther instance URL from the browser (e.g., https://YOUR-PANTHER-INSTANCE.domain) Note: https:// must be included
MCP Server Installation
Choose one of the following installation methods:
Docker (Recommended)
The simplest approach is to use a prebuilt Docker image:
Version pinning: For production stability, pin to a specific version tag. Available tags can be found on the GitHub Container Registry.
Python (PyPI/uvx)
For Python users, you can run directly from PyPI using uvx:
Configure your MCP client:
Version pinning: For production stability, pin to a specific version. Available versions can be found on PyPI.
MCP Client Setup
Configure your project or global MCP configuration following the instructions here. Very important: do not check this file into version control.
Once configured, navigate to Cursor Settings > MCP to view the running server:
- Use the @ symbol and enter a specific directory to explicitly specify where to generate new rules.
- To improve reliability during tool use, try selecting a specific model, such as Claude 3.7 Sonnet.
- If the MCP client cannot find any tools of the Panther MCP Server, try restarting the client and ensure the MCP server is running. In Cursor, refresh the MCP server and start a new conversation.
Claude Code
Claude Code is Anthropic's official CLI tool. Add the Panther MCP server using Docker:
Alternatively, use UVX:
After adding, verify the server is configured:
Claude Desktop
To use with Claude Desktop, manually configure claude_desktop_config.json:
- Open Claude Desktop settings and navigate to the Developer tab
- Click "Edit Config" to open the configuration file
- Add the following configuration:
- Save the file and restart Claude Desktop
If you encounter any issues, try the troubleshooting steps here.
Goose CLI
To use with Goose CLI (Block's open-source AI agent):
Goose Desktop
To use with Goose Desktop (Block's open-source AI agent):
Provide your configuration information from 'Extensions' -> 'Add custom extension'.
Running the Server
The MCP Panther server supports multiple transport protocols:
STDIO (default)
For local development and MCP client integration:
Streamable HTTP
Run as a persistent web service using HTTP transport. Suitable for:
- Long-running server deployments
- Multiple clients connecting to the same server
- Testing and debugging through continuous log monitoring
Create a docker-compose.yml file:
Start the server:
Important: The server runs on HTTP (not HTTPS). Configure Claude Code using an http:// URL:
You can also test using the FastMCP client:
Port Already in Use
If you see Bind for 0.0.0.0:8000 failed: port is already allocated:
Invalid HTTP Request Warning
If you see WARNING: Invalid HTTP request received in the logs, it usually means:
- Claude Code is trying to connect via HTTPS instead of HTTP
- Check that your configuration uses http:// instead of https://
- Verify using claude mcp list
Environment Variables
- MCP_TRANSPORT: Set the transport type (stdio or streamable-http)
- MCP_PORT: HTTP transport port (default: 3000)
- MCP_HOST: HTTP transport host (default: 127.0.0.1)
- MCP_LOG_FILE: Log file path (optional)
Security Best Practices
The following MCP security best practices are strongly recommended:
- Apply strict least privilege to the Panther API token. Scope the token to the minimum permissions required, and bind it to an IP allowlist or CIDR range so that it is useless if leaked. Rotate credentials at your preferred interval (e.g.every 30 days).
- Host the MCP server in a locked-down sandbox (e.g., Docker) with read-only mounts. This limits any compromise to a minimal blast radius.
- Monitor credential access to Panther and monitor for anomalies. Write a Panther rule!
- Only run trusted, officially signed MCP servers. Verify digital signatures or checksums before running, audit the tool code, and avoid community tools from unofficial publishers.
Troubleshooting
Check the server logs for detailed error messages: tail -n 20 -F ~/Library/Logs/Claude/mcp*.log. Common issues and solutions are below.
If you receive a {"success": false, "message": "Failed to [action]: Request failed (HTTP 403): {"error": "forbidden"}"} error, it may mean your API token is missing the specific permission required by that tool.
Make sure your Panther instance URL is set correctly. You can view it from the MCP client's config://panther resource.
Contributing
Contributions to improve MCP-Panther are welcome! You can help in these ways:
- Report issues: Open an issue for any bugs or feature requests
- Submit pull requests: Fork the repository and submit PRs for bug fixes or new features
- Improve documentation: Help us make the documentation clearer and more comprehensive
- Share use cases: Tell us how you use MCP-Panther and how it can be made better
Please make sure your contributions follow our coding standards and include appropriate tests and documentation.
This project exists thanks to all its contributors. Special thanks to Tomasz Tchorz and Glenn Edwards from Block, who played a central role in the joint open-source launch of MCP-Panther with Panther.
For the full contributor list, see our CONTRIBUTORS.md.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Write detections, investigate alerts, and query logs with your favorite AI agent.