Preflight

Scans an MCP server for security gaps before your agent connects. Free tier, no signup.

사용해야 할까요

품질 및 안전성

A
설명 품질
95%
스키마 완전성
88%
이름 품질
85%
오염 위험
80%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (3)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'check_output' description contains placeholder textcheck_output에서
  • INFOTool description contains placeholder or incomplete textcheck_output에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~836토큰 (도구 정의)
~946 B일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 0.65%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "preflight": {
      "url": "https://preflight.allthepossibles.com/mcp"
    }
  }
}

원격 엔드포인트

https://preflight.allthepossibles.com/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (4)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢scan_mcp_server(url, serverName, tools)

Check an MCP server for real risk signals before trusting it: unauthenticated transport, capability overreach (filesystem/shell/credential access with no scoping), and known-bad signatures. Pass a live server URL, or a manifest of tool definitions if the server isn't reachable over HTTP. Semantic prompt-injection detection runs too if a Pro API key is sent as an Authorization: Bearer header, see /docs.

입력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Live MCP server endpoint (Streamable HTTP transport)"
    },
    "serverName": {
      "type": "string"
    },
    "tools": {
      "type": "array",
      "description": "Tool definitions to scan directly, if not probing a live URL",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "inputSchema": {
            "type": "object"
          }
        },
        "required": [
          "name"
        ]
      }
    }
  }
}
🟢scan_content(url, content)

Check a document or web page for hidden instructions before an agent reads, summarizes, or acts on it: invisible Unicode, obfuscated payloads, and (on Pro) a semantic pass for prompt-injection phrasing aimed at the model instead of the human reader. Pass either a URL to fetch, or raw text you already have.

입력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "A page to fetch and scan"
    },
    "content": {
      "type": "string",
      "description": "Raw text to scan directly, if not fetching a URL"
    }
  }
}
🟢scan_extension(marketplaceId, skillContent, scriptContents)

Check a VS Code extension or a Claude Skill before installing or trusting it. For a VS Code extension (which runs with full Node.js access and no permission model to scope): publisher domain-verification status weighed against install count, and known-bad-signature checks on its description. For a Claude Skill: hidden-instruction and obfuscated-payload detection on the SKILL.md body (the same engine scan_content uses), unscoped or credential-referencing tool grants in its allowed-tools/disallowed-tools frontmatter, inline shell execution baked into the file itself, and pattern matching on any bundled script files for credential-exfiltration signatures. Semantic prompt-injection detection on a skill's body runs too on Pro.

입력 스키마

{
  "type": "object",
  "properties": {
    "marketplaceId": {
      "type": "string",
      "description": "VS Code Marketplace id, e.g. \"nrwl.angular-console\""
    },
    "skillContent": {
      "type": "string",
      "description": "A Claude Skill's SKILL.md content, pasted directly"
    },
    "scriptContents": {
      "type": "object",
      "description": "Optional: bundled script file contents to check alongside a skill, filename -> content"
    }
  }
}
🟢check_output(output, expectedFields)

Check a structured output you're about to return or act on for degenerate-answer patterns a schema check can't see: invalid JSON, a placeholder value ('TBD', 'N/A', 'unknown') where a real answer should be, an array of byte-identical items (a common symptom of a loop that never advanced), or an expected field that's missing or empty. Schema validity and answer quality are different guarantees, call this before trusting your own output, not just after validating it parses.

입력 스키마

{
  "type": "object",
  "properties": {
    "output": {
      "description": "The output to check, a JSON string, or an already-parsed value"
    },
    "expectedFields": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional: top-level field names expected to be present and non-empty"
    }
  },
  "required": [
    "output"
  ]
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 4개