mcpField
L
Latchpoint

Latchpoint

本地服务
github.com/robyroro安全03 周前更新

关于 Latchpoint

Latchpoint 是用于 MCP 客户端配置文件的离线只读扫描器,提供命令行和 stdio MCP 服务接口。它适合需要查看脱敏结果、又不希望启动配置中的服务或访问远程端点的配置审查者。

主要功能

  1. 01检查可识别的传输、命令、版本、凭据和访问范围模式
  2. 02扫描选定的本地文件或明确发现的配置
  3. 03输出文本、JSON 或 SARIF 结果
  4. 04提供稳定规则 ID 和脱敏证据
  5. 05将 MCP 服务扫描限制在指定允许目录内

适用场景

  1. 01使用前审计 MCP 客户端配置
  2. 02为构建检查生成 SARIF 结果
  3. 03不启动配置中的服务而检查配置文件

MCP 相关

只读 stdio MCP 服务提供列出审计规则和扫描文件的工具,并要求启动时指定允许目录。它返回发现项和扫描元数据,不返回原始配置内容。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"robyroro-mcp-latchpoint": {
"command": "uvx",
"args": [
"mcp-latchpoint"
]
}
}
}
启动命令uvx mcp-latchpoint

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-latchpoint0.1.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mcp-latchpoint

mcp-latchpoint 可在不运行已配置服务的情况下审计 MCP 客户端配置文件。它可离线运行,只读取你选择的本地文件,并生成文本、JSON 或 SARIF 格式的结果。

这是一个早期防御性工具。修改可正常工作的配置前,请结合上下文审查发现的问题。

检查内容

v0.1 规则涵盖:

  • 非环回远程端点使用普通 HTTP
  • Shell 包装器和内联 Shell 控制语法
  • 可识别的 npx 和 uvx 软件包未指定精确版本
  • 环境变量值、标头、参数或 URL 中的明文凭据
  • 作为可识别访问范围传入的文件系统根目录和主目录根目录
  • 通配符主机和可识别的通配符范围
  • 传输设置冲突、缺失、无效或不受支持

每条发现都包含稳定的规则 ID、严重性、位置、修复建议、已脱敏的证据,以及在判断取决于所启动服务时提供的置信度说明。

安装

需要 Python 3.11 或更高版本。

python -m pip install mcp-latchpoint

从本地检出安装:

python -m venv .venv
# Linux or macOS
. .venv/bin/activate
# Windows PowerShell
.venv\Scripts\Activate.ps1
python -m pip install .

用于开发:

python -m pip install -e ".[dev]"
pytest
ruff check .
mypy

此 MCP 服务使用官方 Python SDK v2,依赖版本限制为 mcp>=2.3,<3。

CLI

扫描一个或多个明确指定的文件:

mcp-latchpoint scan ~/.config/Code/User/mcp.json
mcp-latchpoint scan examples/risky.json --format json
mcp-latchpoint scan examples/risky.json --format sarif --fail-on high > results.sarif

将所有明确指定的路径限制在获准目录内:

mcp-latchpoint scan ./configs --allowed-root ./configs

目录搜索范围仅包括可识别的 MCP 配置文件名,最多搜索 256 个文件。默认情况下,文件大小上限为 1 MiB。可使用 --max-files 和 --max-bytes 更改这些限制。

退出代码:0 表示扫描已完成,且发现的问题低于所选阈值;1 表示有发现达到 --fail-on 的条件;2 表示输入、路径包含关系或解析错误。默认的 --fail-on none 会报告发现的问题,但不会导致构建失败。

列出并说明规则:

mcp-latchpoint rules
mcp-latchpoint explain MCP004
可识别的布局

明确指定的文件可使用以下结构:

客户端布局容器支持的文件语法
Claude Desktop、Cursor、便携式 .mcp.json、通用 MCP JSON顶层 mcpServers 对象JSON
Claude Code 用户/本地设置顶层 mcpServers,以及 ~/.claude.json 中的 projects.<path>.mcpServersJSON
VS Code顶层 servers 对象.vscode/mcp.json 使用 JSONC
Codex[mcp_servers.<name>] 表TOML

以 .jsonc 结尾的文件也会按 JSONC 解析。其他 .json 文件仍按严格 JSON 解析,以免默默接受格式错误的输入。

--discover 仅检查以下存在的路径,不会搜索主目录中的其他位置。

  • 所有系统:~/.claude.json、~/.cursor/mcp.json、~/.codex/config.toml、$COPILOT_HOME/mcp-config.json;若不存在,则回退到 ~/.copilot/mcp-config.json
  • 当前项目:.mcp.json、.codex/config.toml、.cursor/mcp.json、.vscode/mcp.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json、%APPDATA%\Code\User\mcp.json
  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json、~/Library/Application Support/Code/User/mcp.json
  • Linux:$XDG_CONFIG_HOME/Code/User/mcp.json;若不存在,则回退到 ~/.config/Code/User/mcp.json

只读 MCP 服务

stdio 服务提供两个工具:list_rules 和 scan。启动时必须指定一个获准的根目录。相对扫描路径会解析到该根目录下;绝对路径、.. 路径遍历和符号链接都无法越出该目录。

mcp-latchpoint-server --root /absolute/path/to/reviewed-configs
mcp-latchpoint serve --root /absolute/path/to/reviewed-configs

客户端配置示例:

{
  "mcpServers": {
    "latchpoint": {
      "command": "/absolute/path/to/mcp-latchpoint-server",
      "args": ["--root", "/absolute/path/to/reviewed-configs"]
    }
  }
}

服务会返回发现的问题和扫描元数据,不会返回原始配置内容。入口点仅提供 stdio 这一种服务传输方式,且 stdout 专用于 MCP 协议消息。

serve 命令也是 MCP Registry 中公布的入口点。连接客户端前,请将 --root 设置为你明确信任的目录。

Glama 构建

Glama 列表 会根据代码库构建容器。在 Dockerfile 配置中,使用 Python 3.13、以下构建步骤和命令参数:

["uv sync --no-dev"]
["mcp-proxy", "--", "/app/.venv/bin/mcp-latchpoint-server", "--root", "/app/examples"]

根目录是一个包含合成示例配置的现有目录。这样 Glama 就能启动并检查工具,而无需让服务访问用户的文件。该命令使用 uv sync 创建的虚拟环境中的可执行文件。对于此演示,环境变量架构可以是 {"type":"object","properties":{}},占位参数可以是 {}。

若要扫描自己的配置,请在本地运行服务,并将 --root 指向一个由你明确授权的目录。Glama 的演示根目录仅用于 examples/ 中的示例文件。

安全性与限制

扫描器不会执行命令、安装软件包、解析引用的环境变量或连接到端点。它不会跟进配置包含项,也不会检查 MCP 服务的代码或运行时行为。基于参数的规则有意限定为可识别的模式,因此可能会遗漏自定义标志。报告中没有发现问题,并不能证明服务安全。

机密检测旨在输出字段名称和 <redacted> 标记,而非实际值。如果发现信息泄露或路径包含问题,请参阅 SECURITY.md,并且不要在公开问题中附上真实配置。

许可证

MIT。详见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。