Google Threat Intelligence MCP Server
This is an MCP (Model Context Protocol) server for interacting with Google's Threat Intelligence suite. MCP Info
Features
Collections (Threats)
get_collection_report(id): Retrieves a specific collection report by its ID (e.g.,report--<hash>,threat-actor--<hash>).get_entities_related_to_a_collection(id, relationship_name, limit=10): Gets related entities (domains, files, IPs, URLs, other collections) for a given collection ID.search_threats(query, limit=5, order_by="relevance-"): Performs a general search for threats (collections) using GTI query syntax.search_campaigns(query, limit=10, order_by="relevance-"): Searches specifically for collections of typecampaign.search_threat_actors(query, limit=10, order_by="relevance-"): Searches specifically for collections of typethreat-actor.search_malware_families(query, limit=10, order_by="relevance-"): Searches specifically for collections of typemalware-family.search_software_toolkits(query, limit=10, order_by="relevance-"): Searches specifically for collections of typesoftware-toolkit.search_threat_reports(query, limit=10, order_by="relevance-"): Searches specifically for collections of typereport.search_vulnerabilities(query, limit=10, order_by="relevance-"): Searches specifically for collections of typevulnerability.get_collection_timeline_events(id): Retrieves curated timeline events for a collection.
Files
get_file_report(hash): Retrieves a comprehensive analysis report for a file based on its MD5, SHA1, or SHA256 hash.get_entities_related_to_a_file(hash, relationship_name, limit=10): Gets related entities (domains, IPs, URLs, behaviours, etc.) for a given file hash.get_file_behavior_report(file_behaviour_id): Retrieves a specific sandbox behavior report for a file.get_file_behavior_summary(hash): Retrieves a summary of all sandbox behavior reports for a file hash.
Intelligence Search
search_iocs(query, limit=10, order_by="last_submission_date-"): Searches for Indicators of Compromise (files, URLs, domains, IPs) using advanced GTI query syntax.
Network Locations (Domains & IPs)
get_domain_report(domain): Retrieves a comprehensive analysis report for a domain.get_entities_related_to_a_domain(domain, relationship_name, limit=10): Gets related entities for a given domain.get_ip_address_report(ip_address): Retrieves a comprehensive analysis report for an IPv4 or IPv6 address.get_entities_related_to_an_ip_address(ip_address, relationship_name, limit=10): Gets related entities for a given IP address.
URLs
get_url_report(url): Retrieves a comprehensive analysis report for a URL.get_entities_related_to_an_url(url, relationship_name, limit=10): Gets related entities for a given URL.
Hunting
get_hunting_ruleset: Get a Hunting Ruleset object from Google Threat Intelligenceget_entities_related_to_a_hunting_ruleset: Retrieve entities related to the the given Hunting Ruleset.
Threat Profiles
list_threat_profiles: List your Threat Profiles at Google Threat Intelligence.get_threat_profile(profile_id): Get Threat Profile object.get_threat_profile_recommendations(profile_id, limit=10): Returns the list of objects associated to the given Threat Profile.get_threat_profile_associations_timeline(profile_id): Retrieves the associations timeline for the given Threat Profile.
Configuration
MCP Server Configuration
Add the following configuration to your MCP client's settings file:
NOTE: For OSX users, if you used this one-liner to install uv, use the full path to the uv binary for the "command" value below, as uv will not be placed in the system path for Claude to use! For example: /Users/yourusername/.local/bin/uv instead of just uv.
{
"mcpServers": {
"gti": {
"command": "uv",
"args": [
"--env-file=/path/to/your/env",
"--directory",
"/path/to/the/repo/server/gti/gti_mcp",
"run",
"server.py"
],
"env": {
"VT_APIKEY": "${VT_APIKEY}"
},
"disabled": false,
"autoApprove": []
}
}
}
Environment Variable Setup
Set up the VT_APIKEY environment variable in your system:
For macOS/Linux:
export VT_APIKEY="your-vt-api-key"
For Windows PowerShell:
$Env:VT_APIKEY = "your-vt-api-key"
License
Apache 2.0
Development
The project is structured as follows:
gti_mcp/server.py: Main MCP server implementationgti_mcp/utils.py: Utils to consume VirusTotal API using vt-py library.gti_mcp/tools/: Folder containing tools.
Metadata
Release files for gti-mcp 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| gti_mcp-0.1.3.tar.gz | 34.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gti_mcp-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 77.4 kB
Release files / gti_mcp-0.1.3.tar.gz
| Download URL | gti_mcp-0.1.3.tar.gz |
|---|---|
| Size | 34.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e072c0e2926250219acec6ea470748c85e59b82785af71e039b9142188247ad5
|
|
BLAKE2b-256 checksum How to use checksums |
f4bae9b3fa370183a5171855e0412264b555552be413d1c62c90b7dd9514f9fb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / gti_mcp-0.1.3-py3-none-any.whl
| Download URL | gti_mcp-0.1.3-py3-none-any.whl |
|---|---|
| Size | 43.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b18564c1bc739a4e5466018851d8fb47db312c2bd565cd942a4a1ae5cbe36622
|
|
BLAKE2b-256 checksum How to use checksums |
4724a6394f0da4a9e225627be5d2188853e230b96e3a808cf5a5ea20a3199921
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Security for gti-mcp 0.1.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.