MCP-Server

swgvasu-cyber/MCP-Server

3.2

If you are the rightful owner of MCP-Server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

This document provides a comprehensive summary of a Model Context Protocol (MCP) Server designed for API exposure.

MCP Server – Scanner API Bridge

This MCP Server enables MCP Clients to interact with a backend Scanner API using a simple, unified interface. Clients can submit a SHA-256 hash of a file and receive malware reputation details aggregated from multiple vendors.

!!! 🚀 Features !!!

Accepts SHA-256 file hashes

Communicates with backend Scanner APIs (e.g., VirusTotal-style)

Returns:

Malicious vendor count

Suspicious vendor count

Full raw scanner JSON

🔗 Endpoint Overview POST /scan/hash

Submit a SHA-256 hash to retrieve malware scan results.

📤 Sample Request curl -X POST http://localhost:8000/scan/hash
-H "Content-Type: application/json"
-d '{"hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}'

📥 Sample Response { "malicious_vendors": 0, "suspicious_vendors": 0, "raw_json": { "data": { "id": "d646239dc6597f72cd01b6afdd075211cff0c48638a410da2811cf69266f9870", "type": "file", "links": { "self": "https://www.virustotal.com/api/v3/files/d646239dc6597f72cd01b6afdd075211cff0c48638a410da2811cf69266f9870" }, "attributes": { "type_extension": "zip", "ssdeep": "24:9p9bcaDASbwj2IQZ/23BCZcVcYxG6EMil2qyvlJzLBJyG0q4ifv1I9/O:9p9N0ZZQZuU+VcYM6E5kqyvlJzrXD4Gn", "vhash": "247252f27a03c7b57a16cf1fce613f8d", "last_analysis_results": { "Bkav": { "method": "blacklist", "engine_name": "Bkav", "engine_version": "2.0.0.1", "engine_update": "20250622", "category": "undetected", "result": null }, "Lionic": { "method": "blacklist", "engine_name": "Lionic", "engine_version": "8.16", "engine_update": "20250622", "category": "undetected", "result": null }, "MicroWorld-eScan": { "method": "blacklist", "engine_name": "MicroWorld-eScan", "engine_version": "14.0.409.0", "engine_update": "20250622", "category": "undetected", "result": null }, "CMC": { "method": "blacklist", "engine_name": "CMC", "engine_version": "2.4.2022.1", "engine_update": "20250622", "category": "undetected", "result": null }, "CAT-QuickHeal": { "method": "blacklist", "engine_name": "CAT-QuickHeal", "engine_version": "22.00", "engine_update": "20250621", "category": "undetected", "result": null }, "Skyhigh": { "method": "blacklist", "engine_name": "Skyhigh", "engine_version": "v2021.2.0+4045", "engine_update": "20250622", "category": "undetected", "result": null }, "ALYac": { "method": "blacklist", "engine_name": "ALYac", "engine_version": "2.0.0.10", "engine_update": "20250622", "category": "undetected", "result": null }, "Malwarebytes": { "method": "blacklist", "engine_name": "Malwarebytes", "engine_version": "4.5.5.54", "engine_update": "20250622", "category": "undetected", "result": null }, "VIPRE": { "method": "blacklist", "engine_name": "VIPRE", "engine_version": "6.0.0.35", "engine_update": "20250622", "category": "undetected", "result": null }, "Sangfor": { "method": "blacklist", "engine_name": "Sangfor", "engine_version": "2.22.3.0", "engine_update": "20250620", "category": "undetected", "result": null }, "Trustlook": { "method": "blacklist", "engine_name": "Trustlook", "engine_version": "1.0", "engine_update": "20250622", "category": "undetected", "result": null }, "Alibaba": { "method": "blacklist", "engine_name": "Alibaba", "engine_version": "0.3.0.5", "engine_update": "20190527", "category": "undetected", "result": null }, "K7GW": { "method": "blacklist", "engine_name": "K7GW", "engine_version": "12.243.56141", "engine_update": "20250622", "category": "undetected", "result": null }, "K7AntiVirus": { "method": "blacklist", "engine_name": "K7AntiVirus", "engine_version": "12.243.56141", "engine_update": "20250622", "category": "undetected", "result": null }, "Arcabit": { "method": "blacklist", "engine_name": "Arcabit", "engine_version": "2025.0.0.23", "engine_update": "20250622", "category": "undetected", "result": null }, "Baidu": { "method": "blacklist", "engine_name": "Baidu", "engine_version": "1.0.0.2", "engine_update": "20190318", "category": "undetected", "result": null }, "VirIT": { "method": "blacklist", "engine_name": "VirIT", "engine_version": "9.5.980", "engine_update": "20250620", "category": "undetected", "result": null }, "Symantec": { "method": "blacklist", "engine_name": "Symantec", "engine_version": "1.22.0.0", "engine_update": "20250621", "category": "undetected", "result": null }, "ESET-NOD32": { "method": "blacklist", "engine_name": "ESET-NOD32", "engine_version": "31404", "engine_update": "20250622", "category": "undetected", "result": null }, "TrendMicro-HouseCall": { "method": "blacklist", "engine_name": "TrendMicro-HouseCall", "engine_version": "24.550.0.1002", "engine_update": "20250622", "category": "undetected", "result": null }, "Avast": { "method": "blacklist", "engine_name": "Avast", "engine_version": "23.9.8494.0", "engine_update": "20250622", "category": "undetected", "result": null }, "Cynet": { "method": "blacklist", "engine_name": "Cynet", "engine_version": "4.0.3.4", "engine_update": "20250622", "category": "undetected", "result": null }, "Kaspersky": { "method": "blacklist", "engine_name": "Kaspersky", "engine_version": "22.0.1.28", "engine_update": "20250622", "category": "undetected", "result": null }, "BitDefender": { "method": "blacklist", "engine_name": "BitDefender", "engine_version": "7.2", "engine_update": "20250622", "category": "undetected", "result": null }, "NANO-Antivirus": { "method": "blacklist", "engine_name": "NANO-Antivirus", "engine_version": "1.0.170.26710", "engine_update": "20250622", "category": "undetected", "result": null }, "SUPERAntiSpyware": { "method": "blacklist", "engine_name": "SUPERAntiSpyware", "engine_version": "5.6.0.1032", "engine_update": "20250620", "category": "undetected", "result": null }, "Rising": { "method": "blacklist", "engine_name": "Rising", "engine_version": "25.0.0.28", "engine_update": "20250622", "category": "undetected", "result": null }, "Emsisoft": { "method": "blacklist", "engine_name": "Emsisoft", "engine_version": "2024.8.0.61147", "engine_update": "20250622", "category": "undetected", "result": null }, "F-Secure": { "method": "blacklist", "engine_name": "F-Secure", "engine_version": "18.10.1547.307", "engine_update": "20250622", "category": "undetected", "result": null }, "DrWeb": { "method": "blacklist", "engine_name": "DrWeb", "engine_version": "7.0.67.2170", "engine_update": "20250622", "category": "undetected", "result": null }, "Zillya": { "method": "blacklist", "engine_name": "Zillya", "engine_version": "2.0.0.5384", "engine_update": "20250620", "category": "undetected", "result": null }, "TrendMicro": { "method": "blacklist", "engine_name": "TrendMicro", "engine_version": "24.550.0.1002", "engine_update": "20250622", "category": "undetected", "result": null }, "McAfeeD": { "method": "blacklist", "engine_name": "McAfeeD", "engine_version": "1.2.0.10275", "engine_update": "20250622", "category": "undetected", "result": null }, "CTX": { "method": "blacklist", "engine_name": "CTX", "engine_version": "2024.8.29.1", "engine_update": "20250622", "category": "undetected", "result": null }, "Sophos": { "method": "blacklist", "engine_name": "Sophos", "engine_version": "3.0.3.0", "engine_update": "20250622", "category": "undetected", "result": null }, "Ikarus": { "method": "blacklist", "engine_name": "Ikarus", "engine_version": "6.4.16.0", "engine_update": "20250622", "category": "undetected", "result": null }, "GData": { "method": "blacklist", "engine_name": "GData", "engine_version": "GD:27.40789AVA:64.29368", "engine_update": "20250622", "category": "undetected", "result": null }, "Jiangmin": { "method": "blacklist", "engine_name": "Jiangmin", "engine_version": "16.0.100", "engine_update": "20250620", "category": "undetected", "result": null }, "Webroot": { "method": "blacklist", "engine_name": "Webroot", "engine_version": "1.10.0.2", "engine_update": "20250227", "category": "undetected", "result": null }, "Google": { "method": "blacklist", "engine_name": "Google", "engine_version": "1750591830", "engine_update": "20250622", "category": "undetected", "result": null }, "Avira": { "method": "blacklist", "engine_name": "Avira", "engine_version": "8.3.3.20", "engine_update": "20250622", "category": "undetected", "result": null }, "Antiy-AVL": { "method": "blacklist", "engine_name": "Antiy-AVL", "engine_version": "3.0", "engine_update": "20250622", "category": "undetected", "result": null }, "Kingsoft": { "method": "blacklist", "engine_name": "Kingsoft", "engine_version": "None", "engine_update": "20250622", "category": "undetected", "result": null }, "Gridinsoft": { "method": "blacklist", "engine_name": "Gridinsoft", "engine_version": "1.0.218.174", "engine_update": "20250622", "category": "undetected", "result": null }, "Xcitium": { "method": "blacklist", "engine_name": "Xcitium", "engine_version": "37830", "engine_update": "20250621", "category": "undetected", "result": null }, "Microsoft": { "method": "blacklist", "engine_name": "Microsoft", "engine_version": "1.1.25050.6", "engine_update": "20250622", "category": "undetected", "result": null }, "ViRobot": { "method": "blacklist", "engine_name": "ViRobot", "engine_version": "2014.3.20.0", "engine_update": "20250622", "category": "undetected", "result": null }, "Avast-Mobile": { "method": "blacklist", "engine_name": "Avast-Mobile", "engine_version": "250622-00", "engine_update": "20250622", "category": "undetected", "result": null }, "Varist": { "method": "blacklist", "engine_name": "Varist", "engine_version": "6.6.1.3", "engine_update": "20250622", "category": "undetected", "result": null }, "AhnLab-V3": { "method": "blacklist", "engine_name": "AhnLab-V3", "engine_version": "3.27.2.10550", "engine_update": "20250622", "category": "undetected", "result": null }, "Acronis": { "method": "blacklist", "engine_name": "Acronis", "engine_version": "1.2.0.121", "engine_update": "20240328", "category": "undetected", "result": null }, "VBA32": { "method": "blacklist", "engine_name": "VBA32", "engine_version": "5.3.2", "engine_update": "20250620", "category": "undetected", "result": null }, "TACHYON": { "method": "blacklist", "engine_name": "TACHYON", "engine_version": "2025-06-22.02", "engine_update": "20250622", "category": "undetected", "result": null }, "Zoner": { "method": "blacklist", "engine_name": "Zoner", "engine_version": "2.2.2.0", "engine_update": "20250622", "category": "undetected", "result": null }, "Tencent": { "method": "blacklist", "engine_name": "Tencent", "engine_version": "1.0.0.1", "engine_update": "20250622", "category": "undetected", "result": null }, "Yandex": { "method": "blacklist", "engine_name": "Yandex", "engine_version": "5.5.2.24", "engine_update": "20250622", "category": "undetected", "result": null }, "TrellixENS": { "method": "blacklist", "engine_name": "TrellixENS", "engine_version": "6.0.6.653", "engine_update": "20250622", "category": "undetected", "result": null }, "huorong": { "method": "blacklist", "engine_name": "huorong", "engine_version": "6abf842:6abf842:883b674:883b674", "engine_update": "20250622", "category": "undetected", "result": null }, "Fortinet": { "method": "blacklist", "engine_name": "Fortinet", "engine_version": "7.0.30.0", "engine_update": "20250622", "category": "undetected", "result": null }, "AVG": { "method": "blacklist", "engine_name": "AVG", "engine_version": "23.9.8494.0", "engine_update": "20250622", "category": "undetected", "result": null }, "Panda": { "method": "blacklist", "engine_name": "Panda", "engine_version": "4.6.4.2", "engine_update": "20250622", "category": "undetected", "result": null }, "CrowdStrike": { "method": "blacklist", "engine_name": "CrowdStrike", "engine_version": "1.0", "engine_update": "20230417", "category": "undetected", "result": null }, "alibabacloud": { "method": "blacklist", "engine_name": "alibabacloud", "engine_version": "2.2.0", "engine_update": "20250321", "category": "undetected", "result": null }, "MaxSecure": { "method": "blacklist", "engine_name": "MaxSecure", "engine_version": "1.0.0.1", "engine_update": "20250620", "category": "timeout", "result": null }, "ClamAV": { "method": "blacklist", "engine_name": "ClamAV", "engine_version": "1.4.3.0", "engine_update": "20250622", "category": "timeout", "result": null }, "ZoneAlarm": { "method": "blacklist", "engine_name": "ZoneAlarm", "engine_version": "6.17-105078092", "engine_update": "20250622", "category": "failure", "result": null }, "SymantecMobileInsight": { "method": "blacklist", "engine_name": "SymantecMobileInsight", "engine_version": "2.0", "engine_update": "20250124", "category": "type-unsupported", "result": null }, "BitDefenderFalx": { "method": "blacklist", "engine_name": "BitDefenderFalx", "engine_version": "2.0.936", "engine_update": "20250416", "category": "type-unsupported", "result": null }, "Elastic": { "method": "blacklist", "engine_name": "Elastic", "engine_version": "4.0.211", "engine_update": "20250617", "category": "type-unsupported", "result": null }, "DeepInstinct": { "method": "blacklist", "engine_name": "DeepInstinct", "engine_version": "5.0.0.8", "engine_update": "20250622", "category": "type-unsupported", "result": null }, "APEX": { "method": "blacklist", "engine_name": "APEX", "engine_version": "6.668", "engine_update": "20250622", "category": "type-unsupported", "result": null }, "Paloalto": { "method": "blacklist", "engine_name": "Paloalto", "engine_version": "0.9.0.1003", "engine_update": "20250622", "category": "type-unsupported", "result": null }, "Trapmine": { "method": "blacklist", "engine_name": "Trapmine", "engine_version": "4.0.4.0", "engine_update": "20250617", "category": "type-unsupported", "result": null }, "Cylance": { "method": "blacklist", "engine_name": "Cylance", "engine_version": "3.0.0.0", "engine_update": "20250612", "category": "type-unsupported", "result": null }, "SentinelOne": { "method": "blacklist", "engine_name": "SentinelOne", "engine_version": "25.1.1.1", "engine_update": "20250114", "category": "type-unsupported", "result": null }, "tehtris": { "method": "blacklist", "engine_name": "tehtris", "engine_version": null, "engine_update": "20250622", "category": "type-unsupported", "result": null } }, "last_submission_date": 1760646439, "type_tag": "zip", "trid": [ { "file_type": "ZIP compressed archive", "probability": 100.0 } ], "tlsh": "T1D22150CEE9A64219C623177C91BA97D0B43DD58C4974FF53CD0827870DA31D0065379D", "last_analysis_stats": { "malicious": 0, "suspicious": 0, "undetected": 63, "harmless": 0, "timeout": 2, "confirmed-timeout": 0, "failure": 1, "type-unsupported": 10 }, "type_description": "ZIP", "md5": "22f32a41cc9a4b82aa0f7c2aa0804a8e", "reputation": 0, "total_votes": { "harmless": 0, "malicious": 0 }, "sha256": "d646239dc6597f72cd01b6afdd075211cff0c48638a410da2811cf69266f9870", "last_modification_date": 1760646440, "first_submission_date": 1686069101, "magic": "Zip archive data, at least v2.0 to extract, compression method=deflate", "times_submitted": 26, "magika": "ZIP", "filecondis": { "raw_md5": "09df9a58106c24463175677f301f660b", "dhash": "f0f8c8d050000000" }, "tags": [ "zip", "encrypted" ], "names": [ "EICARTestArchive_crypt.zip" ], "sha1": "c18b5b9014f3e474d6bcfa77dfe2bc526b10aef9", "last_analysis_date": 1750599049, "type_tags": [ "compressed", "zip" ], "size": 1426, "unique_sources": 21, "meaningful_name": "EICARTestArchive_crypt.zip", "bundle_info": { "highest_datetime": "2023-03-11 14:36:50", "lowest_datetime": "2023-03-10 10:53:38", "num_children": 5, "extensions": { "url": 1, "txt": 1, "7z": 1, "zip": 2 }, "file_types": { "unknown": 2 }, "type": "ZIP", "uncompressed_size": 816 } } } } }

📦 Project Structure

mcp-server/
├── mcp_server/
│   └── test.py
├── Dockerfile
├── README.md
└── requirements.txt

▶️ Running the MCP Server

Local Development

pip install -r requirements.txt
python mcp_server/test.py

Docker Deployment

Build the container:

docker build -t mcp-scanner-server .

Run the container:

docker run -it mcp-scanner-server

With custom backend API:

docker run -it -e API_BASE=http://your-backend:8000 mcp-scanner-server

Pull from Docker Hub:

docker pull <your-dockerhub-username>/mcp-scanner-server:latest

CI/CD Setup

The project includes GitHub Actions workflow for automatic Docker builds. To enable:

  1. Go to your GitHub repository Settings → Secrets and variables → Actions
  2. Add the following secrets:
    • DOCKERHUB_USERNAME: Your Docker Hub username
    • DOCKERHUB_TOKEN: Your Docker Hub access token
  3. Push to main branch to trigger automatic build and push to Docker Hub

🧩 Usage Examples

Using with MCP Client

The MCP server exposes a scan_hash tool that accepts a SHA-256 hash:

# Example MCP Client call
result = await client.call_tool("scan_hash", {"hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"})

Response Format

The server returns the complete backend API response including:

  • malicious_vendors: Count of vendors flagging as malicious
  • suspicious_vendors: Count of vendors flagging as suspicious
  • raw_json: Full scanner results from all vendors

Server defaults to: http://localhost:8000