Snyk MCP Server
Provides tools for listing Snyk projects, querying security issues by severity, filtering by project or scope (Frontend/Backend), and obtaining normalized issue data with CVEs, dependencies, and fix information.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Snyk MCP Servershow critical security issues"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Snyk MCP Server
A Model Context Protocol (MCP) server that integrates Snyk security scanning with Claude Code and other MCP clients.
Features
š List all Snyk projects in your organization
š Query security issues by severity (critical, high, medium, low)
šÆ Filter issues by project name or ID
š§ Scope filtering (Frontend/Backend)
š Get normalized issue data with CVEs, dependencies, and fix information
Related MCP server: Snyk MCP REST
Prerequisites
Node.js 18+
A Snyk account with API access
Snyk organization ID
Installation
Clone the repository:
git clone https://github.com/ozturkaburak/snyk-mcp-server.git
cd snyk-mcp-serverInstall dependencies:
npm installCreate
.envfile from template:
cp .env.example .envConfigure your Snyk credentials in
.env:
SNYK_TOKEN=your_snyk_token_here
SNYK_ORG_ID=your-org-id_hereUsage
Build the project
npm run buildRun in production mode
npm startRun in development mode
npm run devMCP Tools
This server provides three MCP tools:
1. list_snyk_projects
Lists all projects in your Snyk organization.
Parameters: None
Example:
list_snyk_projects()2. get_project_issues
Get all issues for a specific project.
Parameters:
projectId(required): The Snyk project IDseverity(optional): Filter by severity - "critical", "high", "medium", or "low"
Example:
get_project_issues({
projectId: "abc-123-def-456",
severity: "critical"
})3. get_snyk_issues
Get issues across multiple projects with advanced filtering.
Parameters:
projectIds(optional): Array of project IDsprojectNames(optional): Array of project names (fuzzy matching)severity(optional): Filter by severityscope(optional): "FE" (Frontend), "BE" (Backend), or "UNKNOWN"
Examples:
// Get all critical backend issues across multiple microservices
get_snyk_issues({
projectNames: [
"api-gateway",
"auth-service",
"payment-service",
"user-service",
"notification-service"
],
severity: "critical",
scope: "BE"
})
// Get high severity frontend issues
get_snyk_issues({
projectNames: ["web-app", "mobile-app"],
severity: "high",
scope: "FE"
})
// Get all critical issues without filtering by project
get_snyk_issues({
severity: "critical"
})Integration with Claude Code
Add this to your Claude Code MCP settings (.claude/mcp_settings.json):
{
"mcpServers": {
"snyk-local": {
"command": "node",
"args": ["/path/to/snyk-mcp-server/dist/index.js"],
"env": {
"SNYK_TOKEN": "your-snyk-token",
"SNYK_ORG_ID": "your-org-id"
}
}
}
}Configuration
The server uses environment variables for configuration:
Variable | Description | Required |
| Your Snyk API token | Yes |
| Your Snyk organization ID | Yes |
Getting Your Credentials
SNYK_TOKEN: Get from Snyk Account Settings
SNYK_ORG_ID: Find in your org settings URL:
https://app.snyk.io/org/your-org-id/manage/settings
Project Structure
snyk-mcp-server/
āāā src/
ā āāā index.ts # MCP server implementation
ā āāā snyk.ts # Snyk API client
ā āāā types.ts # TypeScript type definitions
āāā dist/ # Compiled JavaScript
āāā .env.example # Environment template
āāā package.jsonDevelopment
TypeScript Development
npm run devBuilding
npm run buildAPI Documentation
See API_DOCUMENTATION.md for detailed Snyk REST API documentation.
Troubleshooting
Common Issues
"SNYK_TOKEN not set"
Make sure you created
.envfile with your token
"No projects found"
Verify your
SNYK_ORG_IDis correctCheck your token has access to the organization
"Critical issues not showing"
Some issues may not be synced to REST API yet
Check the issue in Snyk UI to verify it exists
See FINDINGS_REPORT.md for analysis
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see the LICENSE file for details.
Related Resources
Author
Built with ā¤ļø for secure software development
Available Tools
3 toolsget_project_issuesD
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | ||
| severity | No | ||
| projectName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_snyk_issuesD
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | ||
| severity | No | ||
| projectIds | No | ||
| projectNames | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_snyk_projectsD
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v1.0.0- First observed
get_project_issues - First observed
get_snyk_issues - First observed
list_snyk_projects
TDQS
Scored across 3 tools
The names 'get_project_issues' and 'get_snyk_issues' are very similar and lack descriptions, making it difficult for an agent to distinguish them. 'list_snyk_projects' is distinct, but the overlap between the first two harms clarity.
All tool names follow a consistent verb_noun pattern in snake_case (get_project_issues, get_snyk_issues, list_snyk_projects), demonstrating strong naming consistency.
With only 3 tools, the server feels minimal for a security-focused service, but it may represent a focused subset. The count is borderline but not extreme.
Based on the tool names, the server only provides some 'get' and 'list' operations. Missing critical actions like creating, updating, or deleting projects or issues, leading to severe incompleteness for a typical security workflow.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Zero-config MCP security scanner for AI-generated apps. 25K+ vulnerability patterns.
Generate SBOMs, scan vulnerabilities, and analyze dependencies from local projects or Git repos.
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Security & DLP proxy for MCP: tool-poisoning scans, PII redaction on tool args/results. Beta.
Related MCP Servers
AlicenseBqualityDmaintenanceAllows developers to query security findings (SAST issues, secrets, patches) using natural language within AI-assisted tools like Claude Desktop, Cursor, and other MCP-compatible environments.179MIT- AlicenseNot gradedqualityFmaintenanceProvides security scanning capabilities through Snyk CLI tools and REST API, enabling AI assistants to test projects for vulnerabilities, retrieve security issues, and manage Snyk projects with comprehensive SAST, container, and infrastructure as code scanning.2MIT
- FlicenseNot gradedqualityNot gradedmaintenanceAn MCP server that provides Claude Code with access to Black Duck SCA for managing vulnerabilities, licenses, and policy violations through natural language. It enables users to query component risks and execute Black Duck Detect scans directly within their workspace.-

@repomend/mcpofficial
AlicenseNot gradedqualityDmaintenanceSecurity scanning MCP server that connects Claude to RepoMend findings, enabling vulnerability management and automated fix drafting.MIT