源代码安全分析工具

CodeSlick MCP Server是一款通过模型上下文协议(MCP)进行源代码全面安全分析的工具,支持306项安全检查、依赖扫描和SBOM生成,适用于多种编程语言和开发环境。

  • by VitorLourenco
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 VitorLourenco/codeslick-mcp-server

使用说明

CodeSlick MCP服务器

通过模型上下文协议(MCP)对源代码进行全面的安全分析。运行306安全检查,检测秘密,扫描依赖关系,并直接从Cursor、Claude Desktop或任何兼容MCP的AI工具生成SBOM。

特性

  • 306安全检查 跨7种格式(JavaScript、TypeScript、Python、Java、Go、Terraform、Kubernetes)
  • OWASP 2025合规性 (95%的覆盖率),CVSS评分为3.1
  • AI代码检测 164个信号(幻觉、启发式、LLM指纹)
  • 秘密检测 用于38种模式(API密钥、密码、令牌、证书)
  • 依赖关系扫描 适用于npm、pip、Maven、Gradle、Go模块
  • SBOM生成 SPDX 2.3和CycloneDX 1.4格式
  • AI物料清单 -库存任何代码库中的人工智能模型、MCP工具、代理框架和API密钥
  • 恶意包检测 66个已知包装

安装

先决条件:CodeSlick CLI必须全局安装。

npm install -g codeslick

光标

添加 ~/.cursor/mcp.json (如果不存在则创建):

{
  "mcpServers": {
    "codeslick": {
      "command": "npx",
      "args": ["-y", "codeslick-mcp-server@latest"],
      "env": {}
    }
  }
}

重新启动游标。CodeSlick工具将出现在MCP工具面板中。

克劳德桌面

添加 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "codeslick": {
      "command": "npx",
      "args": ["-y", "codeslick-mcp-server@latest"]
    }
  }
}

在Windows上: %APPDATA%\Claude\claude_desktop_config.json

重新启动克劳德桌面。单击锤子图标以确认列出了CodeSlick工具。

克劳德代码(CLI)

claude mcp add codeslick -- npx -y codeslick-mcp-server@latest

或手动添加到 ~/.claude/mcp.json:

{
  "mcpServers": {
    "codeslick": {
      "command": "npx",
      "args": ["-y", "codeslick-mcp-server@latest"]
    }
  }
}

可用工具

1. analyze_code

对源代码进行全面的安全分析。

参数:

  • code (字符串,必填):要分析的源代码
  • language (字符串,必填):其中之一 javascript, typescript, python, java, go, terraform, kubernetes
  • filename (字符串,可选):上下文的文件名

例子:

Analyze this JavaScript code for security issues:

function login(username, password) {
  const query = "SELECT * FROM users WHERE username='" + username + "'";
  // ... SQL injection vulnerability
}

输出:

  • 安全评分(0-100)
  • 包含严重性、CVSS评分、OWASP/CWE映射的漏洞列表
  • 带有前后代码示例的补救指南
  • 攻击向量描述

2. scan_dependencies

扫描项目依赖关系以查找漏洞。

参数:

  • content (string,必填):依赖文件的内容(package.json、requirements.txt等)
  • type (字符串,必填):其中之一 npm, pip, maven, gradle, go

例子:

Scan this package.json for vulnerable dependencies:

{
  "dependencies": {
    "express": "4.16.0",
    "lodash": "4.17.0"
  }
}

输出:

  • 带有CVE ID的易受攻击的软件包
  • 恶意包检测
  • 升级建议
  • 严重性细分

3. generate_sbom

生成软件物料清单。

参数:

  • content (string,必填):依赖文件的内容
  • type (字符串,必填):其中之一 npm, pip, maven, gradle, go
  • format (字符串,可选):其中之一 spdx, cyclonedx, both (默认值: both)
  • projectName (字符串,可选):元数据的项目名称
  • projectVersion (字符串,可选):元数据的项目版本

例子:

Generate SBOM for this package.json in SPDX format:

{
  "name": "my-app",
  "version": "1.0.0",
  "dependencies": {
    "react": "^18.0.0"
  }
}

输出:

  • SPDX 2.3格式的SBOM
  • CycloneDX 1.4格式的SBOM
  • 组件计数和元数据
  • 许可信息

4. detect_secrets

检测源代码中的硬编码秘密。

参数:

  • code (字符串,必填):要扫描的源代码
  • language (字符串,可选):其中之一 javascript, typescript, python, java, go, terraform, kubernetes
  • filename (字符串,可选):上下文的文件名

例子:

Check this code for hardcoded secrets:

const config = {
  awsAccessKey: "AKIAIOSFODNN7EXAMPLE",
  dbPassword: "super_secret_password_123"
};

输出:

  • 检测到具有模式类型的秘密
  • 严重性(严重、高、中)
  • 行号
  • 补救步骤
  • 风险描述

5. generate_ai_bom

生成AI物料清单(AI-BOM)——代码库中所有AI组件的结构化清单。

参数:

  • code (string):要扫描的源代码(单个文件)。使用 files 用于多文件扫描。
  • filename (string,可选):上下文的文件名(例如。, "agent.ts")
  • files (对象,可选):地图 filename → content 用于多文件扫描

检测:

  • 人工智能模型API调用:OpenAI、Anthropic、Gemini、Ollama、HuggingFace、Cohere、Mistral、Groq、Azure OpenAI、Replicate、Together AI、Vercel AI SDK、OpenRouter
  • MCP工具注册: server.tool(), FastMCP, @Tool 装饰器、McpServer、MCP SDK导入
  • 代理框架:LangChain、AutoGen、CrewAI、Mastra、LlamaIdex、DSPy、Haystack、PydanticAI、语义内核、BeeAgent、Agentkit
  • AI API密钥: OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY和其他11人

示例(单个文件):

What AI providers does this code use?

import OpenAI from 'openai';
import { ChatOpenAI } from '@langchain/openai';

const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
const response = await client.chat.completions.create({
  model: 'gpt-4o',
  messages: [{ role: 'user', content: 'Hello' }],
});

示例(多文件):

Generate an AI BOM for these files:
- app/api/chat/route.ts: [content]
- lib/agents/researcher.ts: [content]
- .env.example: [content]

输出:

  • 检测到的AI提供者和模型名称
  • 在服务器中注册的命名MCP工具
  • 代理框架和导入路径
  • 按文件和行列出的AI API关键引用

语言支持

语言 安全检查 功能
JavaScript 36项检查 XSS、注入、不安全功能、MCP安全
TypeScript 64项检查 类型安全+JS检查,MCP安全
python 51项检查 SQL注入、pickle、eval、MCP安全
Java 32次检查 XXE、反序列化、LDAP注入
去 26个检查 SQL注入、文件路径、加密
地形 22次检查 AWS配置错误、机密、PII
Kubernetes 37项检查 RBAC、pod安全、机密

安全检查类别

  • 注入攻击:SQL、XSS、命令注入、LDAP注入
  • 身份验证/授权:弱加密、不安全会话、RBAC问题
  • 敏感数据泄露:硬编码机密、PII、API密钥
  • XML/反序列化:XXE,不安全的pickle,Java反序列化
  • 安全配置错误:缺少安全标头、SSL弱、默认值不安全
  • 已知漏洞:恶意软件包、过时的依赖项
  • AI代码检测:LLM幻觉,AI生成的模式

OWASP 2025覆盖范围

  • A01:2021-访问控制中断: ✅ 100%
  • A02:2021-加密失败: ✅ 100%
  • A03:2021-注射: ✅ 100%
  • A04:2021-不安全的设计: ✅ 95%
  • A05:2021-安全配置错误: ✅ 90%
  • A06:2021-易损部件: ✅ 100%
  • A07:2021-身份验证失败: ✅ 100%
  • A08:2021-数据完整性故障: ✅ 85%
  • A09:2021-记录失败: ✅ 90%
  • A10:2021-SSRF: ✅ 100%

总体覆盖范围: 95%

例子

示例1:分析Python代码

User: Analyze this Python code for security issues:

import pickle
import os

def load_data(filename):
    with open(filename, 'rb') as f:
        data = pickle.load(f)  # Unsafe deserialization
    return data

def execute_command(user_input):
    os.system("ls " + user_input)  # Command injection

克劳德代码响应:

# CodeSlick Security Analysis Report

**Language:** python
**Security Score:** 42/100
**Total Vulnerabilities:** 2

## Vulnerability Summary

[CRITICAL]: 2

---

## Top Vulnerabilities

### 1. Unsafe Pickle Deserialization

**Severity:** CRITICAL
**CVSS Score:** 9.8/10
**OWASP:** A08:2021
**CWE:** CWE-502

**Recommendation:** Use safe alternatives like JSON or XML. Never unpickle data from untrusted sources.

**Fix:**
```python
// Before:
data = pickle.load(f)

// After:
import json
data = json.load(f)

将pickle替换为JSON以实现安全的反序列化。


2.通过os.system()进行命令注入

严重程度: 关键的 CVSS评分: 9.8/10 OWASP: A03:2021 CWE: CWE-78

建议: 使用带有shell=False和参数列表的子进程,而不是os.system()。

修复:

// Before:
os.system("ls " + user_input)

// After:
subprocess.run(["ls", user_input], shell=False, check=True)

使用带有参数数组的子进程来防止命令注入。


### Example 2: Scan Dependencies

用户:扫描这些npm依赖项:

{ “依赖关系”:{ “快递”:“4.16.0”, “矿脉”:“4.17.0”, “事件流”:“3.3.4” } }


**Claude Code Response:**

依赖性扫描报告

包管理器: npm 总漏洞数: 3

漏洞摘要


脆弱的依赖关系

1.event-stream@3.3.4

严重程度: 关键的 问题: 恶意软件包-比特币钱包窃贼(CVE-2018-3721) 修复: 立即移除-使用替代包装

2.lodash@4.17.0

严重程度: 高 问题: 原型污染(CVE-2019-10744) 修复: 升级至4.17.21版本

3.express@4.16.0

严重程度: 高 问题: 开放重定向漏洞(CVE-2018-3717) 修复: 升级到4.18.0版本


## Performance

- **Analysis Speed**: <3s for typical files (WebTool requirement)
- **Memory Usage**: Low (optimized AST traversal)
- **False Positive Rate**: <10% (context-aware filtering)

## Privacy Policy

CodeSlick MCP Server prioritizes your privacy and security:

### Data Processing
- **Local Processing Only**: All code analysis is performed locally on your machine
- **No Data Collection**: We do not collect, store, or transmit your source code
- **No Telemetry**: No usage statistics, analytics, or tracking of any kind
- **No Account Required**: The MCP server works completely offline without authentication

### Network Activity
- **Fully Offline**: Security analysis runs without internet connectivity
- **Optional External Calls**: Only for dependency scanning (OSV.dev vulnerability database) if enabled
- **No Third-Party Services**: No data sent to CodeSlick servers or any third parties

### API Key Usage
- **Your Keys, Your Control**: If using advanced AI features, your OpenRouter API key is used directly
- **No Key Storage**: API keys are not stored or logged by the MCP server
- **No Access**: CodeSlick does not see or have access to your API keys

### Open Source & Auditable
- **MIT License**: Fully open source and auditable
- **Transparent Code**: All source code available for security review
- **No Hidden Functionality**: What you see is what you get

### CodeSlick Web Service (Separate)
This MCP server is separate from the CodeSlick web service. For the web service privacy policy, see: https://codeslick.dev/privacy

### Contact
For privacy-related questions: privacy@codeslick.dev

## Support

- **Documentation**: https://codeslick.dev/docs
- **Issues**: https://github.com/VitorLourenco/codeslick2/issues
- **Email**: support@codeslick.dev

## License

MIT License - Copyright (c) 2026 CodeSlick

## Contributing

Contributions welcome! See [CONTRIBUTING.md](../../CONTRIBUTING.md) for guidelines.

## Roadmap

- [ ] C/C++ language support
- [ ] Rust language support
- [ ] CloudFormation support
- [ ] Custom rule configuration
- [ ] CI/CD integration templates
- [ ] VS Code extension

## Credits

Built with:
- [@modelcontextprotocol/sdk](https://github.com/anthropics/mcp) - MCP SDK by Anthropic
- [TypeScript](https://www.typescriptlang.org/) - Type-safe JavaScript
- [CodeSlick](https://codeslick.dev) - Security analysis engine

---

**Made by the CodeSlick team**