# Black Duck MCP
Black Duck MCP brings Signal's AI-powered security analysis directly into your development environment. It enables code scanning through leading coding assistants – including Claude, Gemini, Cursor, Copilot, and others – so you can detect security issues, receive actionable insights, and apply recommended fixes quickly and consistently.
## Key Features & Benefits
- **Changes Scan**:
- Performs fast, incremental security scans focused only on the code changes introduced by the developer.
- Ideal for early-stage detection of issues as code is written
- **File Scan**:
- Runs a targeted security analysis on specific files or directories.
- Best suited for projects that do not use Git or for developers who want to analyze specific portions of the codebase
- **Cross-Platform Support**:
- Works on Windows, macOS, and Linux
## Requirements
- [Signal License](https://www.blackduck.com/signal-ai-appsec/early-access.html)
- [Node.js](https://nodejs.org/) v24.0.0 or newer
## Getting started
### Step 1: Add to your MCP client
Add the following configuration to your MCP client (using Claude user level config as example):
```json
{
"mcpServers": {
"black-duck-signal": {
"command": "npx",
"args": ["-y", "@black-duck/mcp-server"],
"env": {
"BLACKDUCK_MCP_GATEWAY_KEY": "your-api-key-here"
}
}
}
}
```
### Step 2: Your first scan
Use one of following prompts in your MCP client to get you started:
```
Scan my code changes for security vulnerabilities
```
Your MCP client should execute a security scan and report any vulnerabilities found on the **code changes made**. Requires that the project is git based to determine what files have changed.
```
Scan the changed files with respect to the main branch
```
Your MCP client should execute a security scan taking into account **only code changes in the current branch** vs the main branch and report any vulnerabilities found on the code changes made. Requires that the project is git based to determine what files have changed.
```
Scan all files under folder foobar for security vulnerabilities
```
Your MCP client should execute a security scan and report any vulnerabilities found.
## Tools
| Tool | Parameters | Returns | Best Use Cases |
|------|------------|---------|----------------|
| **`run_changes_security_scan`** | **`projectPath`** (required): Absolute path to git project
**`gitPatchMode`** (required):
• `all-uncommitted`: Scan staged + unstaged changes
• `reference-branch`: Scan changes since branching
**`referenceBranch`** (optional): Reference branch name (e.g., `main`)
**`scanEntireFileContent`** (optional): When `true`, scans entire content of changed files instead of just changed lines. Default: `false` | • `sarifFilePath`: Path to SARIF report
• `status`: `success` or `failure`
• `resourceUris`: MCP resource URIs
• `issueCounts`: Counts by severity
• `analysisGuidance`: Analysis steps | • **Faster**: Analyzes only changed code
• **Focused**: Shows issues from your changes
• **Iterative**: Perfect for dev workflows & CI/CD
• **Efficient**: Reduces scan cost and time |
| **`run_security_scan`** | **`projectPath`** (required): Absolute path to project
**`filePaths`** (required): Array of file/directory absolute paths to scan | • `sarifFilePath`: Path to SARIF report
• `status`: `success` or `failure`
• `resourceUris`: MCP resource URIs
• `issueCounts`: Counts by severity
• `analysisGuidance`: Analysis steps | • Analyzing specific files/directories
• Focused security review of critical paths
• Quick checks during development
• Non-git projects |
## Optional Configuration
The Black Duck Signal MCP server supports the following environment variables:
| Variable | Default | Description |
|----------|---------|-------------|
| `BLACKDUCK_MCP_GATEWAY_KEY` | None (required) | API key for enhanced AI analysis |
| `BLACKDUCK_HOME` | User's home directory | Override the default `.blackduck` folder location |
| `BLACKDUCK_MCP_TOOL_TIMEOUT` | `1800000` (30 min) | Scan timeout in milliseconds |
| `BLACKDUCK_MCP_LOG_LEVEL` | `info` | Log level: `error`, `warn`, `info`, or `debug` |
You can set these variables in your MCP client configuration:
```json
{
"mcpServers": {
"black-duck": {
"command": "npx",
"args": ["-y", "@black-duck/mcp-server"],
"env": {
"BLACKDUCK_MCP_GATEWAY_KEY": "your-api-key-here",
"BLACKDUCK_MCP_LOG_LEVEL": "debug"
}
}
}
}
```
## Logging and Troubleshooting
### Log Location
All MCP logs are written to `/Users//.blackduck/mcp/logs/` for linux/mac and `C:\Users\\AppData\Roaming\BlackDuck\mcp\logs\` (customizable via `BLACKDUCK_HOME`):
- `black-duck-mcp.log` - Combined log (all levels)
- `black-duck-mcp-error.log` - Error-only log
## IP Allowlist
The following URLs and IP addresses must be accessible for the MCP server to function properly:
| URL | IP Address |
|-----|------------|
| `repo.blackduck.com` | `34.149.5.115` |
| `llm.core.blackduck.com` | `104.18.36.253` |
> Ensure your firewall allows outbound HTTPS (port 443) connections to these endpoints
## License
This project is licensed under the [MIT License](LICENSE).
## Resources
- [Documentation](https://documentation.blackduck.com/bundle/signal/page/topics/c_signal_overview.html)
- [Black Duck Signal](https://www.blackduck.com/signal-ai-appsec.html)
- [Contact Us](https://www.blackduck.com/signal-ai-appsec/early-access.html)
- [Request SBOM](mailto:sbom_request@blackduck.com)