인증된 AgentReady.md 증명서
발급일 sig: 496415cea2c01595 검증 →

분석된 URL

https://ai.virustotal.com

측정: 지난주

다른 URL 분석

AI-Ready 점수

우수

/ 100

토큰 절감량

HTML 토큰 5590
Markdown 토큰 1018
절감 82%

점수 상세

접근성 88/100
AI 발견 가능성 88/100
구조화 데이터 93/100
시맨틱 HTML 96/100
콘텐츠 효율성 94/100

신흥 프로토콜

6개 중 2개 감지

AI 에이전트가 찾는 well-known 엔드포인트. 감지되면 에이전트가 서비스를 자동으로 발견하고 연결할 수 있습니다.

  • OAuth Protected Resource RFC 9728
    /.well-known/oauth-protected-resource
  • OAuth Discovery RFC 8414
    /.well-known/oauth-authorization-server
  • MCP Server Card SEP-1649 draft
    /.well-known/mcp/server-card.json
  • A2A Agent Card A2A v1.0
    /.well-known/agent-card.json
  • API Catalog RFC 9727
    /.well-known/api-catalog
    • 2 API(s)
  • Agent Skills index Discovery RFC v0.2.0 draft
    /.well-known/agent-skills/index.json
    • 1 skill(s)
    • vtai-core

이 점수는 그대로 있지 않습니다. 모니터링은 아직 없습니다. 명단에 등록하면 출시할 때 알려드립니다.

명단에 등록되었습니다! 서비스 출시 시 알려드리겠습니다.

측정 결과 2/3 OG tags present

Open Graph 태그가 없거나 불완전합니다. OG 태그는 AI 에이전트(및 소셜 플랫폼)가 페이지의 제목, 설명, 이미지를 이해하는 데 도움을 줍니다.

구현 방법

페이지의 <head>에 og:title, og:description, og:image 메타 태그를 추가하세요.

코딩 에이전트에 붙여넣어 수정하게 하세요
Markdown 토큰: 1018
Threat intelligence, ready for your agent

Check files, links and infrastructure. Submit files for analysis. Give your agent evidence to act on.

Free VTAI access within quotas. No VirusTotal API key needed.

## Know what you are about to trust.

Evidence for downloads, investigations and autonomous workflows.

01### Check an indicator

Read the existing report for a file hash, URL, domain or IP. A hash lookup does not upload the file.

`get_file_report` · `get_url_report` · `get_domain_report` · `get_ip_report`

02### Analyze a file

Submit the file and keep its SHA-256 and receipt. Stdio can read a local file; HTTP accepts inline content.

`submit_file` · `submit_local_file (stdio only)`

03### Resume an analysis

Recover the same account's receipt without resending. Read its analysis ID when available; an uncertain outcome can remain unknown.

`get_submission` · `get_analysis`

**Capabilities, sharing and limits**

Seven common MCP tools; stdio adds local file submission. Inline submissions accept up to 24,000,000 decoded bytes; local files up to 32,000,000 bytes. Submissions use standard public sharing without a per-call confirmation. The agent applies your task's authorization and data policy. URL, domain and IP lookups read existing reports.

A missing report, a pending analysis or zero detections is not a guarantee of safety. Keep analysis dates and coverage with the evidence. [Read the tool guide](https://ai.virustotal.com/?format=markdown).

## Protection inside your runtime.

Prefer an integrated plugin? Start here.

VT Sentinel · IDE

### Google Antigravity extension

Check supported IDE downloads with VirusTotal. Start with a protected terminal and inspect coverage with the extension self-test.

`antigravity --install-extension virustotal.vt-sentinel`

[Open VSX & setup](https://open-vsx.org/extension/virustotal/vt-sentinel)

**Activate and verify**

Open a workspace. Run VT Sentinel: Run Self-Test, then VT Sentinel: Open Protected Terminal from the Command Palette. This uses the Antigravity IDE CLI, not agy.

Run antigravity --list-extensions --show-versions and inspect the self-test. Follow its trust or restart instructions before relying on interception.

HTTP(S) interception only. Remote workspaces cover new IDE terminals and tasks. Some systems need a trust approval or managed restart; the self-test shows the effective scope.

VT Sentinel · OpenClaw

### OpenClaw plugin

Add file reputation tools and automatic artifact checks. Inspect and adjust scanning, upload and blocking policies from the agent.

`openclaw plugins install clawhub:openclaw-plugin-vt-sentinel`

[Setup & configuration](https://github.com/king-tero/VT-sentinel)

**Activate and verify**

Run openclaw gateway restart, then openclaw plugins list. Restart only the gateway you intend to update.

Call vt\_sentinel\_status to inspect active policy, then vt\_check\_hash with a known file hash for a first reputation lookup. Status alone does not verify access to VTAI.

Protection follows the configured scanning, upload and blocking policies. Instruction files default to hash-only; sensitive-file upload behavior is configurable.

VirusTotal · Hermes

### Hermes plugin

Give Hermes file and hash reputation tools, plus compact advisory context about the artifacts it observes.

`hermes plugins install king-tero/hermes-virustotal --enable`

[Setup & configuration](https://github.com/king-tero/hermes-virustotal)

**Activate and verify**

Run hermes plugins list and start a new Hermes session. If using a messaging gateway, restart it with hermes gateway restart. The --enable flag activates the plugin without an interactive enable prompt.

Call vt\_check\_hash with a known file hash, or vt\_check\_file with a path in the active execution environment. The file check hashes the file without uploading it.

Advisory by default; exact-malicious enforcement is optional. Binary-content upload behavior has separate configuration. Text is not auto-uploaded and archives are opt-in.

[Installation, activation and first use ↗](https://ai.virustotal.com/install.md)

Direct integration

## Just need the API?

VTAI turns VirusTotal intelligence into compact responses for agent workflows. Register once, reuse your token and call the API from your own tools.

`GET /api/v3/domains/virustotal.com Authorization: Bearer <VTAI token>`

Use a protected credential file or secret store. The guide includes executable requests for reports, submissions and recovery.

[OpenAPI schema](https://ai.virustotal.com/openapi.json) · [Integration catalog](https://ai.virustotal.com/?format=json)

## A starting point for every agent.

Readable without JavaScript.
VirusTotal AI | Threat intelligence for your agent               [Skip to content](https://ai.virustotal.com/#main)

[VirusTotal AI](https://ai.virustotal.com/)

Threat intelligence, ready for your agent

# VirusTotal intelligence for your AI agent.

Check files, links and infrastructure. Submit files for analysis. Give your agent evidence to act on.

Free VTAI access within quotas. No VirusTotal API key needed.

[Connect your agent](https://ai.virustotal.com/#connect)Copy setup prompt[Read agent instructions](https://ai.virustotal.com/install.md)

### Agy

Antigravity CLI

Local stdio[Connect Agy ↗](https://ai.virustotal.com/connect/mcp?client=agy)

### Claude Code

Your existing Claude login

HTTP or stdio[Connect Claude Code ↗](https://ai.virustotal.com/connect/mcp?client=claude)

### Codex

Your existing Codex login

HTTP or stdio[Connect Codex ↗](https://ai.virustotal.com/connect/mcp?client=codex)

## Know what you are about to trust.

Evidence for downloads, investigations and autonomous workflows.

01### Check an indicator

Read the existing report for a file hash, URL, domain or IP. A hash lookup does not upload the file.

`get_file_report` · `get_url_report` · `get_domain_report` · `get_ip_report`

02### Analyze a file

Submit the file and keep its SHA-256 and receipt. Stdio can read a local file; HTTP accepts inline content.

`submit_file` · `submit_local_file (stdio only)`

03### Resume an analysis

Recover the same account's receipt without resending. Read its analysis ID when available; an uncertain outcome can remain unknown.

`get_submission` · `get_analysis`

**Capabilities, sharing and limits**

Seven common MCP tools; stdio adds local file submission. Inline submissions accept up to 24,000,000 decoded bytes; local files up to 32,000,000 bytes. Submissions use standard public sharing without a per-call confirmation. The agent applies your task's authorization and data policy. URL, domain and IP lookups read existing reports.

A missing report, a pending analysis or zero detections is not a guarantee of safety. Keep analysis dates and coverage with the evidence. [Read the tool guide](https://ai.virustotal.com/?format=markdown).

## Protection inside your runtime.

Prefer an integrated plugin? Start here.

VT Sentinel · IDE

### Google Antigravity extension

Check supported IDE downloads with VirusTotal. Start with a protected terminal and inspect coverage with the extension self-test.

`antigravity --install-extension virustotal.vt-sentinel`Copy

[Open VSX & setup](https://open-vsx.org/extension/virustotal/vt-sentinel)

**Activate and verify**

Open a workspace. Run VT Sentinel: Run Self-Test, then VT Sentinel: Open Protected Terminal from the Command Palette. This uses the Antigravity IDE CLI, not agy.

Run antigravity --list-extensions --show-versions and inspect the self-test. Follow its trust or restart instructions before relying on interception.

HTTP(S) interception only. Remote workspaces cover new IDE terminals and tasks. Some systems need a trust approval or managed restart; the self-test shows the effective scope.

VT Sentinel · OpenClaw

### OpenClaw plugin

Add file reputation tools and automatic artifact checks. Inspect and adjust scanning, upload and blocking policies from the agent.

`openclaw plugins install clawhub:openclaw-plugin-vt-sentinel`Copy

[Setup & configuration](https://github.com/king-tero/VT-sentinel)

**Activate and verify**

Run openclaw gateway restart, then openclaw plugins list. Restart only the gateway you intend to update.

Call vt\_sentinel\_status to inspect active policy, then vt\_check\_hash with a known file hash for a first reputation lookup. Status alone does not verify access to VTAI.

Protection follows the configured scanning, upload and blocking policies. Instruction files default to hash-only; sensitive-file upload behavior is configurable.

VirusTotal · Hermes

### Hermes plugin

Give Hermes file and hash reputation tools, plus compact advisory context about the artifacts it observes.

`hermes plugins install king-tero/hermes-virustotal --enable`Copy

[Setup & configuration](https://github.com/king-tero/hermes-virustotal)

**Activate and verify**

Run hermes plugins list and start a new Hermes session. If using a messaging gateway, restart it with hermes gateway restart. The --enable flag activates the plugin without an interactive enable prompt.

Call vt\_check\_hash with a known file hash, or vt\_check\_file with a path in the active execution environment. The file check hashes the file without uploading it.

Advisory by default; exact-malicious enforcement is optional. Binary-content upload behavior has separate configuration. Text is not auto-uploaded and archives are opt-in.

[Installation, activation and first use ↗](https://ai.virustotal.com/install.md)

Direct integration

## Just need the API?

VTAI turns VirusTotal intelligence into compact responses for agent workflows. Register once, reuse your token and call the API from your own tools.

[Read the API quickstart](https://ai.virustotal.com/skills/BASIC.md)[API reference ↗](https://ai.virustotal.com/docs)

`GET /api/v3/domains/virustotal.com Authorization: Bearer <VTAI token>`

Use a protected credential file or secret store. The guide includes executable requests for reports, submissions and recovery.

[OpenAPI schema](https://ai.virustotal.com/openapi.json) · [Integration catalog](https://ai.virustotal.com/?format=json)

## A starting point for every agent.

Readable without JavaScript.

[**Installation guide**Choose an integration and follow its setup instructions.`/install.md`](https://ai.virustotal.com/install.md) [**Agent overview**Decide when and how to use VirusTotal.`/llms.txt`](https://ai.virustotal.com/llms.txt) [**VTAI API guide**Register, authenticate, query, submit and recover with REST.`/skills/BASIC.md`](https://ai.virustotal.com/skills/BASIC.md) [**OpenAPI**Exact request and response schemas.`/openapi.json`](https://ai.virustotal.com/openapi.json)

이 파일을 서버의 /index.md에 업로드하여 AI 에이전트가 페이지의 깔끔한 버전에 접근할 수 있게 하세요. Accept: text/markdown 콘텐츠 협상을 설정하여 자동으로 제공할 수도 있습니다.

권장 내용

llms.txt 다운로드
# ai.virustotal.com

> Connect Agy, Claude Code or Codex to VirusTotal. Check files, URLs, domains and IPs, submit files for analysis, or integrate with VTAI directly. Free access within quotas.

## Documentation
- [For agents](https://ai.virustotal.com/install.md)
- [Read the API quickstart](https://ai.virustotal.com/skills/BASIC.md)
- [API reference ↗](https://ai.virustotal.com/docs)
- [Agent overviewDecide when and how to use VirusTotal./llms.txt](https://ai.virustotal.com/llms.txt)

## Main
- [VirusTotal intelligence for your AI agent.](https://ai.virustotal.com): Connect Agy, Claude Code or Codex to VirusTotal. Check files, URLs, domains and IPs, submit files for analysis, or inte…
- [VirusTotal AI](https://ai.virustotal.com/)
- [For agents](https://ai.virustotal.com/install.md)
- [Sitemap](https://ai.virustotal.com/sitemap.xml)

전체 llms.txt는 도메인 전체 분석이 필요합니다 (곧 출시)

이 파일을 도메인 루트의 https://ai.virustotal.com/llms.txt에 업로드하세요. ChatGPT, Claude, Perplexity 등의 AI 에이전트가 이 파일을 확인하여 사이트 구조를 파악합니다.

이 사이트에는 이미 llms.txt 파일이 있습니다.

유효한 형식
# VirusTotal AI

> Threat intelligence for agents making decisions about files, links and infrastructure.

Use VirusTotal to check an unfamiliar download, investigate a suspicious URL/domain/IP, analyze a file, or resume a pending analysis. Reports return compact evidence; a hash lookup does not upload a file. Access is free within VTAI quotas and requires a VTAI token. No existing VirusTotal API key is needed.

## Install

- [Choose an integration](/install.md): MCP, runtime plugin or direct API.
- [Agy setup](/connect/mcp?client=agy&format=markdown): Local stdio. [Local files / stdio](/connect/mcp?client=agy&transport=stdio&format=markdown).
- [Claude Code setup](/connect/mcp?client=claude&format=markdown): HTTP or stdio. [Local files / stdio](/connect/mcp?client=claude&transport=stdio&format=markdown).
- [Codex setup](/connect/mcp?client=codex&format=markdown): HTTP or stdio. [Local files / stdio](/connect/mcp?client=codex&transport=stdio&format=markdown).

## Use

- [MCP tools and workflows](/?format=markdown): look up, submit, recover.
- [VTAI API skill](/skills/BASIC.md): executable REST examples and result interpretation.
- [OpenAPI](/openapi.json): exact schemas.
- [Integration catalog](/?format=json): structured capabilities and setup links.

## Runtime plugins

- [Google Antigravity extension](https://open-vsx.org/extension/virustotal/vt-sentinel): Check supported IDE downloads with VirusTotal. Start with a protected terminal and inspect coverage with the extension self-test.
- [OpenClaw plugin](https://github.com/king-tero/VT-sentinel): Add file reputation tools and automatic artifact checks. Inspect and adjust scanning, upload and blocking policies from the agent.
- [Hermes plugin](https://github.com/king-tero/hermes-virustotal): Give Hermes file and hash reputation tools, plus compact advisory context about the artifacts it observes.

## Operation

Reuse your VTAI credential; use Bearer or x-apikey, never both. Files use standard public sharing when submitted. Recover an uncertain submission by SHA-256 with get_submission before reading its analysis ID with get_analysis; do not automatically resubmit. Unknown can remain unknown. URL/domain/IP lookups read existing reports. Unknown, pending, errors and zero detections are not guarantees of safety.

접근성

JavaScript 없이 콘텐츠 이용 가능 (100/100)

Content available without JavaScript

HTML에서 콘텐츠가 빠른 위치에 배치 (50/100)

Main content starts at 47% of HTML

적절한 페이지 크기 (100/100)

Page size: 20KB

AI 발견 가능성

robots.txt가 AI 봇 허용 (100/100)

All major AI search bots allowed

Markdown for Agents 지원 (60/100) Application
✓ Accept: text/markdown ✗ .md URL ✓ <link> tag ✓ Link header
sitemap.xml 있음 (100/100)

Sitemap found

robots.txt 파일 있음 (100/100)

robots.txt exists

llms.txt 파일 있음 (100/100)

llms.txt exists and is valid

Content-Signal 있음 (robots.txt 또는 HTTP 헤더) (60/100)
✓ robots.txt ✗ HTTP header ✗ Policy

구조화 데이터

Schema.org / JSON-LD 있음 (100/100)

JSON-LD found: WebPage

Open Graph 태그 있음 (67/100)

2/3 OG tags present

메타 설명 있음 (100/100)

Meta description: 171 chars

정규 URL 있음 (100/100)

Canonical URL present

lang 속성 있음 (100/100)

lang="en"

시맨틱 HTML

올바른 제목 계층 구조 (85/100)

1 heading level skip(s)

article 또는 main 요소 사용 (100/100)

Has both <article> and <main>

시맨틱 HTML 요소 사용 (100/100)

17 semantic elements, 20 divs (ratio: 46%)

의미 있는 이미지 alt 속성 (100/100)

No images found

낮은 div 중첩 깊이 (100/100)

Avg div depth: 0.3, max: 2

콘텐츠 효율성

양호한 토큰 감소율 (100/100)

82% token reduction (HTML→Markdown)

양호한 콘텐츠 대 잡음 비율 (80/100)

Content ratio: 21.1% (4257 content chars / 20205 HTML bytes)

적절한 페이지 무게 (100/100)

HTML size: 20KB

최소한의 인라인 스타일 (100/100)

0/194 elements with inline styles (0.0%)

{
  "url": "https://ai.virustotal.com",
  "timestamp": 1789092241877,
  "fetch": {
    "mode": "simple",
    "timeMs": 132,
    "htmlSizeBytes": 20205,
    "supportsMarkdown": true,
    "markdownAgents": {
      "contentNegotiation": true,
      "mdUrl": {
        "found": false,
        "url": null
      },
      "linkTag": {
        "found": true,
        "url": "/?format=markdown"
      },
      "linkHeader": {
        "found": true,
        "url": "/?format=markdown"
      },
      "responseHeaders": {
        "contentSignal": null,
        "xMarkdownTokens": null,
        "vary": "Accept"
      },
      "frontmatter": {
        "present": false,
        "fields": [],
        "level": "none"
      },
      "level": "application",
      "contentNegotiationMediaType": "text/markdown",
      "properMediaType": true
    },
    "statusCode": 200
  },
  "extraction": {
    "title": "VirusTotal intelligence for your AI agent.",
    "excerpt": "Connect Agy, Claude Code or Codex to VirusTotal. Check files, URLs, domains and IPs, submit files for analysis, or integrate with VTAI directly. Free access within quotas.",
    "byline": null,
    "siteName": null,
    "lang": "en",
    "contentLength": 4257,
    "metadata": {
      "description": "Connect Agy, Claude Code or Codex to VirusTotal. Check files, URLs, domains and IPs, submit files for analysis, or integrate with VTAI directly. Free access within quotas.",
      "ogTitle": "VirusTotal intelligence for your AI agent.",
      "ogDescription": "Connect Agy, Claude Code or Codex to VirusTotal. Check files, URLs, domains and IPs, submit files for analysis, or integrate with VTAI directly. Free access within quotas.",
      "ogImage": null,
      "ogType": "website",
      "canonical": "https://ai.virustotal.com/",
      "lang": "en",
      "schemas": [
        {
          "@context": "https://schema.org",
          "@type": "WebPage",
          "name": "VirusTotal AI",
          "url": "https://ai.virustotal.com/",
          "description": "Connect Agy, Claude Code or Codex to VirusTotal. Check files, URLs, domains and IPs, submit files for analysis, or integrate with VTAI directly. Free access within quotas.",
          "about": {
            "@type": "SoftwareApplication",
            "name": "VirusTotal MCP",
            "applicationCategory": "SecurityApplication",
            "url": "https://ai.virustotal.com/connect/mcp",
            "downloadUrl": "https://ai.virustotal.com/install.md",
            "description": "Read VirusTotal reports, submit files for analysis and recover the results through MCP. Free access uses a VTAI token and shared quotas; no VirusTotal API key is needed."
          }
        }
      ],
      "robotsMeta": null,
      "author": null,
      "generator": null,
      "markdownAlternateHref": "/?format=markdown"
    }
  },
  "markdown": "Threat intelligence, ready for your agent\n\nCheck files, links and infrastructure. Submit files for analysis. Give your agent evidence to act on.\n\nFree VTAI access within quotas. No VirusTotal API key needed.\n\n## Know what you are about to trust.\n\nEvidence for downloads, investigations and autonomous workflows.\n\n01### Check an indicator\n\nRead the existing report for a file hash, URL, domain or IP. A hash lookup does not upload the file.\n\n`get_file_report` · `get_url_report` · `get_domain_report` · `get_ip_report`\n\n02### Analyze a file\n\nSubmit the file and keep its SHA-256 and receipt. Stdio can read a local file; HTTP accepts inline content.\n\n`submit_file` · `submit_local_file (stdio only)`\n\n03### Resume an analysis\n\nRecover the same account's receipt without resending. Read its analysis ID when available; an uncertain outcome can remain unknown.\n\n`get_submission` · `get_analysis`\n\n**Capabilities, sharing and limits**\n\nSeven common MCP tools; stdio adds local file submission. Inline submissions accept up to 24,000,000 decoded bytes; local files up to 32,000,000 bytes. Submissions use standard public sharing without a per-call confirmation. The agent applies your task's authorization and data policy. URL, domain and IP lookups read existing reports.\n\nA missing report, a pending analysis or zero detections is not a guarantee of safety. Keep analysis dates and coverage with the evidence. [Read the tool guide](https://ai.virustotal.com/?format=markdown).\n\n## Protection inside your runtime.\n\nPrefer an integrated plugin? Start here.\n\nVT Sentinel · IDE\n\n### Google Antigravity extension\n\nCheck supported IDE downloads with VirusTotal. Start with a protected terminal and inspect coverage with the extension self-test.\n\n`antigravity --install-extension virustotal.vt-sentinel`\n\n[Open VSX & setup](https://open-vsx.org/extension/virustotal/vt-sentinel)\n\n**Activate and verify**\n\nOpen a workspace. Run VT Sentinel: Run Self-Test, then VT Sentinel: Open Protected Terminal from the Command Palette. This uses the Antigravity IDE CLI, not agy.\n\nRun antigravity --list-extensions --show-versions and inspect the self-test. Follow its trust or restart instructions before relying on interception.\n\nHTTP(S) interception only. Remote workspaces cover new IDE terminals and tasks. Some systems need a trust approval or managed restart; the self-test shows the effective scope.\n\nVT Sentinel · OpenClaw\n\n### OpenClaw plugin\n\nAdd file reputation tools and automatic artifact checks. Inspect and adjust scanning, upload and blocking policies from the agent.\n\n`openclaw plugins install clawhub:openclaw-plugin-vt-sentinel`\n\n[Setup & configuration](https://github.com/king-tero/VT-sentinel)\n\n**Activate and verify**\n\nRun openclaw gateway restart, then openclaw plugins list. Restart only the gateway you intend to update.\n\nCall vt\\_sentinel\\_status to inspect active policy, then vt\\_check\\_hash with a known file hash for a first reputation lookup. Status alone does not verify access to VTAI.\n\nProtection follows the configured scanning, upload and blocking policies. Instruction files default to hash-only; sensitive-file upload behavior is configurable.\n\nVirusTotal · Hermes\n\n### Hermes plugin\n\nGive Hermes file and hash reputation tools, plus compact advisory context about the artifacts it observes.\n\n`hermes plugins install king-tero/hermes-virustotal --enable`\n\n[Setup & configuration](https://github.com/king-tero/hermes-virustotal)\n\n**Activate and verify**\n\nRun hermes plugins list and start a new Hermes session. If using a messaging gateway, restart it with hermes gateway restart. The --enable flag activates the plugin without an interactive enable prompt.\n\nCall vt\\_check\\_hash with a known file hash, or vt\\_check\\_file with a path in the active execution environment. The file check hashes the file without uploading it.\n\nAdvisory by default; exact-malicious enforcement is optional. Binary-content upload behavior has separate configuration. Text is not auto-uploaded and archives are opt-in.\n\n[Installation, activation and first use ↗](https://ai.virustotal.com/install.md)\n\nDirect integration\n\n## Just need the API?\n\nVTAI turns VirusTotal intelligence into compact responses for agent workflows. Register once, reuse your token and call the API from your own tools.\n\n`GET /api/v3/domains/virustotal.com Authorization: Bearer <VTAI token>`\n\nUse a protected credential file or secret store. The guide includes executable requests for reports, submissions and recovery.\n\n[OpenAPI schema](https://ai.virustotal.com/openapi.json) · [Integration catalog](https://ai.virustotal.com/?format=json)\n\n## A starting point for every agent.\n\nReadable without JavaScript.\n",
  "fullPageMarkdown": "VirusTotal AI | Threat intelligence for your agent               [Skip to content](https://ai.virustotal.com/#main)\n\n[VirusTotal AI](https://ai.virustotal.com/)\n\nThreat intelligence, ready for your agent\n\n# VirusTotal intelligence for your AI agent.\n\nCheck files, links and infrastructure. Submit files for analysis. Give your agent evidence to act on.\n\nFree VTAI access within quotas. No VirusTotal API key needed.\n\n[Connect your agent](https://ai.virustotal.com/#connect)Copy setup prompt[Read agent instructions](https://ai.virustotal.com/install.md)\n\n### Agy\n\nAntigravity CLI\n\nLocal stdio[Connect Agy ↗](https://ai.virustotal.com/connect/mcp?client=agy)\n\n### Claude Code\n\nYour existing Claude login\n\nHTTP or stdio[Connect Claude Code ↗](https://ai.virustotal.com/connect/mcp?client=claude)\n\n### Codex\n\nYour existing Codex login\n\nHTTP or stdio[Connect Codex ↗](https://ai.virustotal.com/connect/mcp?client=codex)\n\n## Know what you are about to trust.\n\nEvidence for downloads, investigations and autonomous workflows.\n\n01### Check an indicator\n\nRead the existing report for a file hash, URL, domain or IP. A hash lookup does not upload the file.\n\n`get_file_report` · `get_url_report` · `get_domain_report` · `get_ip_report`\n\n02### Analyze a file\n\nSubmit the file and keep its SHA-256 and receipt. Stdio can read a local file; HTTP accepts inline content.\n\n`submit_file` · `submit_local_file (stdio only)`\n\n03### Resume an analysis\n\nRecover the same account's receipt without resending. Read its analysis ID when available; an uncertain outcome can remain unknown.\n\n`get_submission` · `get_analysis`\n\n**Capabilities, sharing and limits**\n\nSeven common MCP tools; stdio adds local file submission. Inline submissions accept up to 24,000,000 decoded bytes; local files up to 32,000,000 bytes. Submissions use standard public sharing without a per-call confirmation. The agent applies your task's authorization and data policy. URL, domain and IP lookups read existing reports.\n\nA missing report, a pending analysis or zero detections is not a guarantee of safety. Keep analysis dates and coverage with the evidence. [Read the tool guide](https://ai.virustotal.com/?format=markdown).\n\n## Protection inside your runtime.\n\nPrefer an integrated plugin? Start here.\n\nVT Sentinel · IDE\n\n### Google Antigravity extension\n\nCheck supported IDE downloads with VirusTotal. Start with a protected terminal and inspect coverage with the extension self-test.\n\n`antigravity --install-extension virustotal.vt-sentinel`Copy\n\n[Open VSX & setup](https://open-vsx.org/extension/virustotal/vt-sentinel)\n\n**Activate and verify**\n\nOpen a workspace. Run VT Sentinel: Run Self-Test, then VT Sentinel: Open Protected Terminal from the Command Palette. This uses the Antigravity IDE CLI, not agy.\n\nRun antigravity --list-extensions --show-versions and inspect the self-test. Follow its trust or restart instructions before relying on interception.\n\nHTTP(S) interception only. Remote workspaces cover new IDE terminals and tasks. Some systems need a trust approval or managed restart; the self-test shows the effective scope.\n\nVT Sentinel · OpenClaw\n\n### OpenClaw plugin\n\nAdd file reputation tools and automatic artifact checks. Inspect and adjust scanning, upload and blocking policies from the agent.\n\n`openclaw plugins install clawhub:openclaw-plugin-vt-sentinel`Copy\n\n[Setup & configuration](https://github.com/king-tero/VT-sentinel)\n\n**Activate and verify**\n\nRun openclaw gateway restart, then openclaw plugins list. Restart only the gateway you intend to update.\n\nCall vt\\_sentinel\\_status to inspect active policy, then vt\\_check\\_hash with a known file hash for a first reputation lookup. Status alone does not verify access to VTAI.\n\nProtection follows the configured scanning, upload and blocking policies. Instruction files default to hash-only; sensitive-file upload behavior is configurable.\n\nVirusTotal · Hermes\n\n### Hermes plugin\n\nGive Hermes file and hash reputation tools, plus compact advisory context about the artifacts it observes.\n\n`hermes plugins install king-tero/hermes-virustotal --enable`Copy\n\n[Setup & configuration](https://github.com/king-tero/hermes-virustotal)\n\n**Activate and verify**\n\nRun hermes plugins list and start a new Hermes session. If using a messaging gateway, restart it with hermes gateway restart. The --enable flag activates the plugin without an interactive enable prompt.\n\nCall vt\\_check\\_hash with a known file hash, or vt\\_check\\_file with a path in the active execution environment. The file check hashes the file without uploading it.\n\nAdvisory by default; exact-malicious enforcement is optional. Binary-content upload behavior has separate configuration. Text is not auto-uploaded and archives are opt-in.\n\n[Installation, activation and first use ↗](https://ai.virustotal.com/install.md)\n\nDirect integration\n\n## Just need the API?\n\nVTAI turns VirusTotal intelligence into compact responses for agent workflows. Register once, reuse your token and call the API from your own tools.\n\n[Read the API quickstart](https://ai.virustotal.com/skills/BASIC.md)[API reference ↗](https://ai.virustotal.com/docs)\n\n`GET /api/v3/domains/virustotal.com Authorization: Bearer <VTAI token>`\n\nUse a protected credential file or secret store. The guide includes executable requests for reports, submissions and recovery.\n\n[OpenAPI schema](https://ai.virustotal.com/openapi.json) · [Integration catalog](https://ai.virustotal.com/?format=json)\n\n## A starting point for every agent.\n\nReadable without JavaScript.\n\n[**Installation guide**Choose an integration and follow its setup instructions.`/install.md`](https://ai.virustotal.com/install.md) [**Agent overview**Decide when and how to use VirusTotal.`/llms.txt`](https://ai.virustotal.com/llms.txt) [**VTAI API guide**Register, authenticate, query, submit and recover with REST.`/skills/BASIC.md`](https://ai.virustotal.com/skills/BASIC.md) [**OpenAPI**Exact request and response schemas.`/openapi.json`](https://ai.virustotal.com/openapi.json)\n",
  "markdownStats": {
    "images": 0,
    "links": 7,
    "tables": 0,
    "codeBlocks": 0,
    "headings": 10
  },
  "tokens": {
    "htmlTokens": 5590,
    "markdownTokens": 1018,
    "reduction": 4572,
    "reductionPercent": 82
  },
  "score": {
    "score": 91,
    "grade": "A",
    "rubricVersion": 3,
    "dimensions": {
      "accessibility": {
        "score": 88,
        "weight": 30,
        "grade": "B",
        "checks": {
          "content_without_js": {
            "score": 100,
            "weight": 55,
            "evidence": "proven",
            "details": "Content available without JavaScript"
          },
          "fast_content_position": {
            "score": 50,
            "weight": 25,
            "evidence": "plausible",
            "details": "Main content starts at 47% of HTML"
          },
          "reasonable_page_size": {
            "score": 100,
            "weight": 20,
            "evidence": "plausible",
            "details": "Page size: 20KB"
          }
        }
      },
      "aiDiscoverability": {
        "score": 88,
        "weight": 25,
        "grade": "B",
        "checks": {
          "robots_allows_ai_bots": {
            "score": 100,
            "weight": 35,
            "evidence": "proven",
            "details": "All major AI search bots allowed"
          },
          "supports_markdown_negotiation": {
            "score": 60,
            "weight": 20,
            "evidence": "plausible",
            "details": "Application level — Content negotiation, <link> tag, Link header",
            "mechanisms": {
              "negotiation": true,
              "mdUrl": false,
              "linkTag": true,
              "linkHeader": true
            }
          },
          "has_sitemap": {
            "score": 100,
            "weight": 15,
            "evidence": "plausible",
            "details": "Sitemap found"
          },
          "has_robots_txt": {
            "score": 100,
            "weight": 10,
            "evidence": "plausible",
            "details": "robots.txt exists"
          },
          "has_llms_txt": {
            "score": 100,
            "weight": 10,
            "evidence": "speculative",
            "details": "llms.txt exists and is valid"
          },
          "has_content_signals": {
            "score": 60,
            "weight": 10,
            "evidence": "speculative",
            "details": "robots.txt: ai-input=yes, ai-train=no, search=yes",
            "mechanisms": {
              "robotsTxt": true,
              "httpHeader": false,
              "policy": false
            }
          }
        }
      },
      "structuredData": {
        "score": 93,
        "weight": 20,
        "grade": "A",
        "checks": {
          "has_schema_org": {
            "score": 100,
            "weight": 35,
            "evidence": "proven",
            "details": "JSON-LD found: WebPage"
          },
          "has_open_graph": {
            "score": 67,
            "weight": 20,
            "evidence": "plausible",
            "details": "2/3 OG tags present"
          },
          "has_meta_description": {
            "score": 100,
            "weight": 20,
            "evidence": "plausible",
            "details": "Meta description: 171 chars"
          },
          "has_canonical_url": {
            "score": 100,
            "weight": 15,
            "evidence": "plausible",
            "details": "Canonical URL present"
          },
          "has_lang_attribute": {
            "score": 100,
            "weight": 10,
            "evidence": "plausible",
            "details": "lang=\"en\""
          }
        }
      },
      "semanticHtml": {
        "score": 96,
        "weight": 15,
        "grade": "A",
        "checks": {
          "proper_heading_hierarchy": {
            "score": 85,
            "weight": 30,
            "evidence": "plausible",
            "details": "1 heading level skip(s)"
          },
          "uses_article_or_main": {
            "score": 100,
            "weight": 25,
            "evidence": "plausible",
            "details": "Has both <article> and <main>"
          },
          "semantic_elements": {
            "score": 100,
            "weight": 20,
            "evidence": "plausible",
            "details": "17 semantic elements, 20 divs (ratio: 46%)"
          },
          "meaningful_alt_texts": {
            "score": 100,
            "weight": 15,
            "evidence": "plausible",
            "details": "No images found"
          },
          "low_div_nesting": {
            "score": 100,
            "weight": 10,
            "evidence": "speculative",
            "details": "Avg div depth: 0.3, max: 2"
          }
        }
      },
      "contentEfficiency": {
        "score": 94,
        "weight": 10,
        "grade": "A",
        "checks": {
          "token_reduction_ratio": {
            "score": 100,
            "weight": 40,
            "evidence": "speculative",
            "details": "82% token reduction (HTML→Markdown)"
          },
          "content_to_noise_ratio": {
            "score": 80,
            "weight": 30,
            "evidence": "speculative",
            "details": "Content ratio: 21.1% (4257 content chars / 20205 HTML bytes)"
          },
          "reasonable_page_weight": {
            "score": 100,
            "weight": 20,
            "evidence": "speculative",
            "details": "HTML size: 20KB"
          },
          "minimal_inline_styles": {
            "score": 100,
            "weight": 10,
            "evidence": "speculative",
            "details": "0/194 elements with inline styles (0.0%)"
          }
        }
      }
    }
  },
  "recommendations": [
    {
      "id": "add_open_graph",
      "priority": "medium",
      "category": "structuredData",
      "titleKey": "rec.add_open_graph.title",
      "descriptionKey": "rec.add_open_graph.description",
      "howToKey": "rec.add_open_graph.howto",
      "howToStepKeys": null,
      "effort": "quick-win",
      "estimatedImpact": 1.3,
      "maxImpact": 4,
      "evidence": "plausible",
      "checkScore": 67,
      "checkDetails": "2/3 OG tags present"
    }
  ],
  "llmsTxtPreview": "# ai.virustotal.com\n\n> Connect Agy, Claude Code or Codex to VirusTotal. Check files, URLs, domains and IPs, submit files for analysis, or integrate with VTAI directly. Free access within quotas.\n\n## Documentation\n- [For agents](https://ai.virustotal.com/install.md)\n- [Read the API quickstart](https://ai.virustotal.com/skills/BASIC.md)\n- [API reference ↗](https://ai.virustotal.com/docs)\n- [Agent overviewDecide when and how to use VirusTotal./llms.txt](https://ai.virustotal.com/llms.txt)\n\n## Main\n- [VirusTotal intelligence for your AI agent.](https://ai.virustotal.com): Connect Agy, Claude Code or Codex to VirusTotal. Check files, URLs, domains and IPs, submit files for analysis, or inte…\n- [VirusTotal AI](https://ai.virustotal.com/)\n- [For agents](https://ai.virustotal.com/install.md)\n- [Sitemap](https://ai.virustotal.com/sitemap.xml)\n\n",
  "llmsTxtExisting": "# VirusTotal AI\n\n> Threat intelligence for agents making decisions about files, links and infrastructure.\n\nUse VirusTotal to check an unfamiliar download, investigate a suspicious URL/domain/IP, analyze a file, or resume a pending analysis. Reports return compact evidence; a hash lookup does not upload a file. Access is free within VTAI quotas and requires a VTAI token. No existing VirusTotal API key is needed.\n\n## Install\n\n- [Choose an integration](/install.md): MCP, runtime plugin or direct API.\n- [Agy setup](/connect/mcp?client=agy&format=markdown): Local stdio. [Local files / stdio](/connect/mcp?client=agy&transport=stdio&format=markdown).\n- [Claude Code setup](/connect/mcp?client=claude&format=markdown): HTTP or stdio. [Local files / stdio](/connect/mcp?client=claude&transport=stdio&format=markdown).\n- [Codex setup](/connect/mcp?client=codex&format=markdown): HTTP or stdio. [Local files / stdio](/connect/mcp?client=codex&transport=stdio&format=markdown).\n\n## Use\n\n- [MCP tools and workflows](/?format=markdown): look up, submit, recover.\n- [VTAI API skill](/skills/BASIC.md): executable REST examples and result interpretation.\n- [OpenAPI](/openapi.json): exact schemas.\n- [Integration catalog](/?format=json): structured capabilities and setup links.\n\n## Runtime plugins\n\n- [Google Antigravity extension](https://open-vsx.org/extension/virustotal/vt-sentinel): Check supported IDE downloads with VirusTotal. Start with a protected terminal and inspect coverage with the extension self-test.\n- [OpenClaw plugin](https://github.com/king-tero/VT-sentinel): Add file reputation tools and automatic artifact checks. Inspect and adjust scanning, upload and blocking policies from the agent.\n- [Hermes plugin](https://github.com/king-tero/hermes-virustotal): Give Hermes file and hash reputation tools, plus compact advisory context about the artifacts it observes.\n\n## Operation\n\nReuse your VTAI credential; use Bearer or x-apikey, never both. Files use standard public sharing when submitted. Recover an uncertain submission by SHA-256 with get_submission before reading its analysis ID with get_analysis; do not automatically resubmit. Unknown can remain unknown. URL/domain/IP lookups read existing reports. Unknown, pending, errors and zero detections are not guarantees of safety.",
  "emergingProtocols": {
    "oauthProtectedResource": {
      "exists": false,
      "url": "https://ai.virustotal.com/.well-known/oauth-protected-resource"
    },
    "oauthDiscovery": {
      "exists": false,
      "url": "https://ai.virustotal.com/.well-known/oauth-authorization-server"
    },
    "mcpServerCard": {
      "exists": false,
      "url": "https://ai.virustotal.com/.well-known/mcp/server-card.json",
      "draft": true
    },
    "a2aAgentCard": {
      "exists": false,
      "url": "https://ai.virustotal.com/.well-known/agent-card.json"
    },
    "apiCatalog": {
      "exists": true,
      "url": "https://ai.virustotal.com/.well-known/api-catalog",
      "contentType": "application/linkset+json; profile=\"https://www.rfc-editor.org/info/rfc9727\"",
      "validMediaType": true,
      "apis": 2
    },
    "agentSkills": {
      "exists": true,
      "url": "https://ai.virustotal.com/.well-known/agent-skills/index.json",
      "draft": true,
      "schema": "https://schemas.agentskills.io/discovery/0.2.0/schema.json",
      "skills": 1,
      "names": [
        "vtai-core"
      ]
    },
    "count": 2,
    "total": 6
  },
  "botAccess": {
    "probed": true,
    "bot": "OAI-SearchBot",
    "controlStatus": 200,
    "botStatus": 200,
    "discriminates": false,
    "refusedAsBot": false,
    "edge": null,
    "verifiable": false,
    "detail": "This origin answers OAI-SearchBot exactly as it answers any other client (200). No edge-level filtering of AI crawlers observed."
  },
  "snippets": [
    {
      "id": "add_open_graph",
      "title": "Add missing Open Graph tags",
      "description": "Open Graph tags control how your page looks when shared on social media and how AI platforms preview your URL in answers.",
      "language": "html",
      "code": "<meta property=\"og:image\" content=\"https://yoursite.com/og-image.jpg\">\n<meta property=\"og:url\" content=\"https://ai.virustotal.com\">\n<meta property=\"og:type\" content=\"website\">",
      "filename": "<head>",
      "stacks": [
        {
          "id": "html",
          "label": "HTML <head>",
          "language": "html",
          "filename": "<head>",
          "code": "<meta property=\"og:image\" content=\"https://yoursite.com/og-image.jpg\">\n<meta property=\"og:url\" content=\"https://ai.virustotal.com\">\n<meta property=\"og:type\" content=\"website\">"
        },
        {
          "id": "wordpress",
          "label": "WordPress",
          "language": "php",
          "filename": "functions.php",
          "code": "<?php\n// Quick Open Graph tags without a plugin (skip if Yoast / Rank Math is active)\nadd_action('wp_head', function () {\n    if (!is_singular()) return;\n    $post = get_queried_object();\n    $title = get_the_title($post);\n    $desc  = get_the_excerpt($post) ?: wp_trim_words(strip_tags($post->post_content), 30);\n    $image = get_the_post_thumbnail_url($post, 'large') ?: 'https://yoursite.com/og-image.jpg';\n    $url   = get_permalink($post);\n    printf('<meta property=\"og:title\" content=\"%s\">' . \"\\n\", esc_attr($title));\n    printf('<meta property=\"og:description\" content=\"%s\">' . \"\\n\", esc_attr($desc));\n    printf('<meta property=\"og:image\" content=\"%s\">' . \"\\n\", esc_url($image));\n    printf('<meta property=\"og:url\" content=\"%s\">' . \"\\n\", esc_url($url));\n    echo '<meta property=\"og:type\" content=\"article\">' . \"\\n\";\n}, 5);"
        },
        {
          "id": "nextjs",
          "label": "Next.js",
          "language": "typescript",
          "filename": "app/page.tsx",
          "code": "// Next.js App Router — Metadata API\nimport type { Metadata } from 'next';\n\nexport const metadata: Metadata = {\n  title: \"VirusTotal intelligence for your AI agent.\",\n  description: \"Connect Agy, Claude Code or Codex to VirusTotal. Check files, URLs, domains and IPs, submit files for analysis, or integrate with VTAI directly. Free access within quotas.\",\n  openGraph: {\n    title: \"VirusTotal intelligence for your AI agent.\",\n    description: \"Connect Agy, Claude Code or Codex to VirusTotal. Check files, URLs, domains and IPs, submit files for analysis, or integrate with VTAI directly. Free access within quotas.\",\n    url: \"https://ai.virustotal.com\",\n    images: [\"https://yoursite.com/og-image.jpg\"],\n    type: 'website',\n  },\n};"
        }
      ]
    }
  ]
}

API를 사용하여 프로그래밍 방식으로 가져올 수 있습니다 (곧 출시)

이 JSON은 내부용입니다 — Markdown 및 llms.txt 파일과 달리 사이트에 업로드하기 위한 것이 아닙니다. 시간에 따른 점수 추적을 위한 기준값으로 저장하거나, 개발팀과 공유하거나, CI/CD 파이프라인에 통합하세요.

결과 공유

또는 AI에게 개선 방법을 물어보세요

다른 의견도 들어보시겠어요?

Cloudflare에도 무료 스캐너가 있는데, 던지는 질문이 다릅니다. 그쪽은 에이전트가 호출할 수 있도록 사이트가 게시한 것(MCP 서버 카드, Agent Skills, API 카탈로그, DNS 레코드)을 채점합니다. 저희는 에이전트가 콘텐츠에 도달해 읽고 이해할 수 있는지를 채점합니다. 한쪽은 좋고 다른 쪽은 나쁠 수 있으니 두 점수가 다른 것은 당연합니다. 서로 다른 질문에 대한 답이고, 둘 다 알아둘 가치가 있습니다.

Cloudflare로 ai.virustotal.com 검사하기

배지 삽입

이 배지를 사이트에 추가하세요. AI 준비도 점수가 변경되면 자동으로 업데이트됩니다.

AgentReady.md score for ai.virustotal.com
Script 권장
<script src="https://agentready.md/badge.js" data-id="cd81d46f-b23a-4a39-b7b0-e7b814a7622e" data-domain="ai.virustotal.com"></script>
Markdown
[![AgentReady.md score for ai.virustotal.com](https://agentready.md/badge/ai.virustotal.com.svg)](https://agentready.md/ko/r/ai.virustotal.com)

곧 출시: 전체 도메인 분석

전체 도메인을 크롤링하고, llms.txt를 생성하고, AI 준비도 점수를 시간에 따라 모니터링하세요. 대기자 명단에 등록하여 알림을 받으세요.

명단에 등록되었습니다! 서비스 출시 시 알려드리겠습니다.