🚀 Socket MCP Server
Socket MCP Server 是一个用于 Socket 集成的模型上下文协议(MCP)服务器,可让 AI 助手高效地检查依赖项的漏洞评分和安全信息。
✨ 主要特性
- 🔍 依赖项安全扫描:获取 npm、PyPI 等其他包生态系统的全面安全评分。
- 🌐 公共托管服务:使用我们的公共服务器
https://mcp.socket.dev/,无需任何设置。
- 🚀 多种部署选项:可以通过标准输入输出、HTTP 进行本地运行,也可以使用我们的服务。
- 🤖 AI 助手集成:可与 Claude、VS Code Copilot、Cursor 等其他 MCP 客户端无缝协作。
- 📊 批量处理:在单个请求中检查多个依赖项。
- 🔒 无需身份验证:公共服务器无需 API 密钥或注册。
🛠️ 此项目处于早期开发阶段,正在快速发展。
🚀 快速开始
选项 1:使用公共 Socket MCP 服务器(推荐)
最简单的开始方式是使用我们的公共 Socket MCP 服务器。无需 API 密钥或身份验证! 点击下面的按钮,在你喜欢的 AI 助手中安装公共服务器。
手动安装说明及更多 MCP 客户端
在 Claude Desktop 或 Claude Code 中安装
⚠️ 重要提示
并非所有付费版本的 Claude 都支持自定义集成。请查看此处以获取更多信息。
要在 Claude Desktop 中使用公共 Socket MCP 服务器:
- 在 Claude Desktop 中,转到“设置”>“开发者”>“编辑配置”。
- 添加 Socket MCP 服务器配置:
{
"mcpServers": {
"socket-mcp": {
"type": "http",
"url": "https://mcp.socket.dev/"
}
}
}
- 保存配置并重启 Claude Desktop。
- 现在你可以向 Claude 询问诸如“检查 express 4.18.2 版本的安全评分”之类的问题。
Claude Code 的过程类似。有关更多详细信息,请参阅 Claude Code 文档。以下是添加 Socket MCP 服务器的示例命令:
claude mcp add --transport http socket-mcp https://mcp.socket.dev/
在 VS Code 中安装
你可以使用 VS Code CLI 安装 Socket MCP 服务器:
```bash
# 对于带有 GitHub Copilot 的 VS Code
code --add-mcp '{"name":"socket-mcp","type":"http","url":"https://mcp.socket.dev/}'
```
安装后,Socket MCP 服务器将可在 VS Code 中与你的 GitHub Copilot 代理一起使用。
或者,你可以手动将其添加到 .vscode/mcp.json 中的 VS Code MCP 配置中:
{
"servers": {
"socket-mcp": {
"type": "http",
"url": "https://mcp.socket.dev/"
}
}
}
在 Cursor 中安装
转到 `Cursor 设置` -> `MCP` -> `添加新的 MCP 服务器`。将其命名为“socket-mcp”,使用 `http` 类型,URL 为 `https://mcp.socket.dev/`。
```json
{
"mcpServers": {
"socket-mcp": {
"type": "http",
"url": "https://mcp.socket.dev/"
}
}
}
```
在 Windsurf 中安装
⚠️ 重要提示
Windsurf 目前不支持 http 类型的 MCP 服务器。请使用下面的 标准输入输出模式配置。
要在 Windsurf 中使用 Socket MCP 服务器:
- 打开 Windsurf 设置。
- 导航到 MCP 服务器部分。
- 添加一个新服务器,配置如下:
{
"mcpServers": {
"socket-mcp": {
"serverUrl": "https://mcp.socket.dev/mcp"
}
}
}
- 保存配置,如有必要,重启 Windsurf。
选项 2:在本地机器上部署 Socket MCP 服务器
如果你想运行自己的实例,可以使用标准输入输出或 HTTP 模式在本地部署 Socket MCP 服务器。
获取 API 密钥
要使用本地 Socket MCP 服务器,你需要创建一个 API 密钥。你可以按照这些步骤进行操作。唯一需要的权限范围是 packages:list,它允许 MCP 服务器查询包元数据以获取依赖项评分。
对于本地部署,你有两个选项:
选项 2a:标准输入输出模式(默认)
点击下面的按钮,在你喜欢的 AI 助手中安装自托管的标准输入输出服务器。
Claude Code(标准输入输出模式)可以使用以下命令进行设置:
claude mcp add socket-mcp -e SOCKET_API_KEY="your-api-key-here" -- npx -y @socketsecurity/mcp@latest
这是大多数 MCP 客户端的配置示例:
{
"mcpServers": {
"socket-mcp": {
"command": "npx",
"args": ["@socketsecurity/mcp@latest"],
"env": {
"SOCKET_API_KEY": "your-api-key-here"
}
}
}
}
这种方法会自动使用最新版本,无需全局安装。
选项 2b:HTTP 模式
- 使用 npx 在 HTTP 模式下运行服务器:
MCP_HTTP_MODE=true SOCKET_API_KEY=your-api-key npx @socketsecurity/mcp@latest --http
- 配置你的 MCP 客户端以连接到 HTTP 服务器:
{
"mcpServers": {
"socket-mcp": {
"type": "http",
"url": "http://localhost:3000"
}
}
}
💻 使用示例
基础用法
Socket MCP 服务器暴露了 depscore 工具,以下是使用该工具的示例:
{
"packages": [
{
"ecosystem": "npm",
"depname": "express",
"version": "4.18.2"
},
{
"ecosystem": "pypi",
"depname": "fastapi",
"version": "0.100.0"
}
]
}
示例响应:
pkg:npm/express@4.18.2: supply_chain: 1.0, quality: 0.9, maintenance: 1.0, vulnerability: 1.0, license: 1.0
pkg:pypi/fastapi@0.100.0: supply_chain: 1.0, quality: 0.95, maintenance: 0.98, vulnerability: 1.0, license: 1.0
高级用法
如何使用 Socket MCP 服务器
- 向你的 AI 助手询问 以检查依赖项:
- “检查 express 4.18.2 版本的安全评分”
- “分析我的 package.json 依赖项的安全性”
- “react、lodash 和 axios 的漏洞评分是多少?”
- 获取全面的安全洞察,包括供应链、质量、维护、漏洞和许可证评分。
使用自定义规则调整工具使用方式
你可以通过修改客户端规则来进一步自定义 Socket MCP 服务器与 AI 助手的交互方式。规则通常是一个 Markdown 文件,其位置取决于你使用的 AI 助手。
| MCP 客户端 |
规则文件位置 |
| Claude Desktop/Code |
CLAUDE.md |
| VSCode Copilot |
.github/copilot-instructions.md |
| Cursor |
.cursor/rules |
可以添加到客户端规则文件的规则示例如下:
Always check dependency scores with the depscore tool when you add a new dependency. If the score is low, consider using an alternative library or writing the code yourself. If you are unsure about the score, ask for a review from someone with more experience. When checking dependencies, make sure to also check the imports not just the pyproject.toml/package.json/dependency file.
你可以根据需要调整规则。例如,你可以添加规则以包含特定的清单文件,或指导 AI 助手如何处理低分情况。规则是灵活的,可以根据你的工作流程进行定制。
🔧 技术细节
开发
普通用户
对于大多数用户,我们建议使用以下两种方式之一:
- 公共服务器:
https://mcp.socket.dev/(无需设置)
- NPX 命令:
npx @socketsecurity/mcp@latest(始终使用最新版本)
贡献者
如果你想为 Socket MCP 服务器的开发做出贡献:
健康检查端点
在 HTTP 模式下运行时,服务器为 Kubernetes 和 Docker 部署提供了一个健康检查端点:
GET /health
响应:
{
"status": "healthy",
"service": "socket-mcp",
"version": "0.0.3",
"timestamp": "2025-06-17T20:45:22.059Z"
}
此端点可用于:
- Kubernetes 活性和就绪性探测
- Docker 健康检查
- 负载均衡器健康监测
- 一般服务监测
前提条件
- Node.js v16 或更高版本
- npm 或 yarn
安装
克隆仓库并安装依赖项:
git clone https://github.com/SocketDev/socket-mcp.git
cd socket-mcp
npm install
构建
此项目是一个可直接运行的 Node.js 项目,使用 类型剥离。
如果你使用的是 Node.js 22,使用 node --experimental-strip-types index.ts 运行。
在任何更高版本的 Node.js 中,你可以直接运行 node index.ts。
在任何版本中,你也可以运行包含正确标志的 npm 运行脚本。
运行 npm publish 时会自动构建 js 文件,并在之后使用 npm run clean 清理。
如果你想预览构建,可以运行:
npm run build
从源代码运行
要从源代码运行 Socket MCP 服务器:
export SOCKET_API_KEY=your_api_key_here
node --experimental-strip-types index.ts
或者在 HTTP 模式下运行:
MCP_HTTP_MODE=true SOCKET_API_KEY=your_api_key_here node --experimental-strip-types index.ts --http
🔧 故障排除
常见问题
问题:公共服务器无响应
- 检查你使用的 URL 是否正确:
https://mcp.socket.dev/
- 验证你的 MCP 客户端配置是否正确
- 尝试重启你的 MCP 客户端
问题:本地服务器无法启动
- 确保你已安装 Node.js v16 或更高版本
- 检查你的
SOCKET_API_KEY 环境变量是否已设置
- 验证 API 密钥是否具有
packages:list 权限
问题:本地服务器出现身份验证错误
- 仔细检查你的 Socket API 密钥是否有效
- 确保密钥具有所需的
packages:list 范围
- 尝试从 Socket 仪表板重新生成你的 API 密钥
问题:AI 助手找不到 depscore 工具
- 在更改配置后重启你的 MCP 客户端
- 验证服务器配置是否已正确保存
- 检查 MCP 服务器是否正在运行(对于本地部署)
获取帮助
📄 许可证
本项目采用 MIT 许可证。 