Token导航 LogoToken导航TokenDH.com
Google Threat Intelligence MCP Server logo
运维云端stdio官方级别未说明来源级核验

Google Threat Intelligence MCP Server

MCP Server

Google威胁情报MCP服务器,提供本地开发和云端部署模式,支持威胁情报搜索、文件分析、网络位置检查等功能。

工具数

36

提示词数

0

GitHub Stars

4

资源数

0
威胁情报安全分析PythonClaudeClaude DesktopClaudeCursorCline

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

googleSandy

提供方

googleSandy

最后核验

2026/5/17 20:19

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run gti_mcp

详细介绍

谷歌威胁情报MCP服务器(独立)

这是一个独立的MCP(模型上下文协议)服务器,用于与谷歌的威胁情报套件进行交互。它为像克劳德这样的人工智能助手提供了全面的威胁情报功能 本地开发生产云部署 模式。

GTI MCP Server Screenshot

关键能力:

  • 🔍 威胁情报搜索(活动、威胁行为者、恶意软件家族)
  • 📁 文件分析和行为报告
  • 🌐 域、IP和URL信誉检查
  • 🎯 IOC(妥协指标)搜索
  • 📊 威胁配置文件和狩猎规则集

了解有关MCP的更多信息

建筑

了解GTI MCP服务器在不同部署模式下的工作原理:

组件概述

graph TB
    subgraph "MCP Clients"
        A1[Claude Desktop]
        A2[Cline]
        A3[Cursor]
        A4[Custom Frontend]
    end

    subgraph "Transport Layer"
        B1[stdio - Local]
        B2[SSE/HTTP - Remote]
    end

    subgraph "GTI MCP Server"
        C1[MCP Tools]
        C2[VT API Client]
    end

    D[VirusTotal/GTI API]

    A1 --> B1
    A2 --> B1
    A3 --> B1
    A4 --> B2

    B1 --> C1
    B2 --> C1

    C1 --> C2
    C2 --> D

    style C1 fill:#e1f5ff
    style C2 fill:#e1f5ff

本地部署流程

对于在本地运行MCP服务器的个人开发人员:

sequenceDiagram
    participant Client as MCP Client
    participant Server as GTI MCP Server
    participant Env as Environment
    participant VT as VirusTotal API

    Client->>Server: Launch via stdio
    Server->>Env: Read VT_APIKEY
    Env-->>Server: API Key
    Client->>Server: Call tool (e.g., get_file_report)
    Server->>VT: API Request with VT_APIKEY
    VT-->>Server: Response
    Server-->>Client: Tool Result

API密钥管理: 服务器读取 VT_APIKEY 启动时的环境变量。

云部署流程

对于部署集中式服务的团队:

sequenceDiagram
    participant Frontend as Frontend Client
    participant CloudRun as Cloud Run (SSE)
    participant Auth as Auth Middleware
    participant Server as GTI MCP Server
    participant VT as VirusTotal API

    Frontend->>CloudRun: Connect to /sse endpoint
    CloudRun->>Auth: Validate X-Mcp-Authorization header
    Auth-->>CloudRun: Authorized
    CloudRun-->>Frontend: SSE Connection Established

    Frontend->>CloudRun: Call tool with api_key parameter
    CloudRun->>Server: Execute tool
    Server->>VT: API Request with client-provided api_key
    VT-->>Server: Response
    Server-->>CloudRun: Tool Result
    CloudRun-->>Frontend: SSE Event with Result

API密钥管理: 客户通过 api_key 每个工具调用的参数。服务器通过以下方式对连接进行身份验证 MCP_AUTH_TOKEN 但对VirusTotal请求使用客户端提供的API密钥。

安全说明: 该体系结构允许团队部署共享MCP服务器,同时维护单个用户API配额和访问控制。

特性

收款(威胁)

  • get_collection_report(id):通过其ID检索特定的收集报告(例如。, report--, threat-actor--).
  • get_entities_related_to_a_collection(id, relationship_name, limit=10):获取给定集合ID的相关实体(域、文件、IP、URL、其他集合)。
  • get_collection_timeline_events(id):检索集合的策划时间线事件。
  • get_collection_rules(id):获取与集合关联的检测规则(YARA和Sigma)。
  • get_collection_feature_matches(id):检索集合的功能匹配项。
  • get_collection_mitre_tree(id):获取集合的MITRE ATT&CK框架树。
  • get_collections_commonalities(ids):查找多个集合之间的共性。
  • create_collection(name, description):创建新的威胁集合。
  • update_collection_attributes(id, attributes):更新集合的元数据和属性。
  • update_iocs_in_collection(id, iocs):更新集合中的妥协指标。
  • search_threats(query, limit=5, order_by="relevance-"):使用GTI查询语法对威胁(集合)执行一般搜索。
  • search_campaigns(query, limit=10, order_by="relevance-"):专门搜索类型的集合 campaign.
  • search_threat_actors(query, limit=10, order_by="relevance-"):专门搜索类型的集合 threat-actor.
  • search_malware_families(query, limit=10, order_by="relevance-"):专门搜索类型的集合 malware-family.
  • search_software_toolkits(query, limit=10, order_by="relevance-"):专门搜索类型的集合 software-toolkit.
  • search_threat_reports(query, limit=10, order_by="relevance-"):专门搜索类型的集合 report.
  • search_vulnerabilities(query, limit=10, order_by="relevance-"):专门搜索类型的集合 vulnerability.

文件

  • get_file_report(hash):根据文件的MD5、SHA1或SHA256哈希值检索文件的综合分析报告。
  • get_entities_related_to_a_file(hash, relationship_name, limit=10):获取给定文件哈希的相关实体(域、IP、URL、行为等)。
  • get_file_behavior_report(file_behaviour_id):检索文件的特定沙盒行为报告。
  • get_file_behavior_summary(hash):检索文件哈希的所有沙盒行为报告的摘要。
  • analyse_file(file_path):上传并分析文件,返回全面的威胁情报报告。

情报搜索

  • search_iocs(query, limit=10, order_by="last_submission_date-"):使用高级GTI查询语法搜索妥协指标(文件、URL、域、IP)。
  • search_digital_threat_monitoring(query, limit=10):在数字威胁监控数据中搜索品牌保护、网络钓鱼和冒充威胁。

网络位置(域和IP)

  • get_domain_report(domain):检索域的综合分析报告。
  • get_entities_related_to_a_domain(domain, relationship_name, limit=10):获取给定域的相关实体。
  • get_ip_address_report(ip_address):检索IPv4或IPv6地址的综合分析报告。
  • get_entities_related_to_an_ip_address(ip_address, relationship_name, limit=10):获取给定IP地址的相关实体。

网址

  • get_url_report(url):检索URL的综合分析报告。
  • get_entities_related_to_an_url(url, relationship_name, limit=10):获取给定URL的相关实体。

狩猎

  • get_hunting_ruleset:从Google威胁情报获取狩猎规则集对象。
  • get_entities_related_to_a_hunting_ruleset:检索与给定狩猎规则集相关的实体。

威胁概况

  • list_threat_profiles:在谷歌威胁情报中列出您的威胁档案。
  • get_threat_profile(profile_id):获取威胁配置文件对象。
  • get_threat_profile_recommendations(profile_id, limit=10):返回与给定威胁配置文件关联的对象列表。
  • get_threat_profile_associations_timeline(profile_id):检索给定威胁配置文件的关联时间线。

快速启动(地方发展)

适用于希望将GTI MCP服务器与Claude Desktop、Cline、Cursor或其他MCP客户端一起使用的开发人员。

先决条件

安装

# Clone the repository
git clone https://github.com/googleSandy/gti-mcp-standalone.git
cd gti-mcp-standalone

# Install with uv (recommended)
uv tool install -e .

# Or run directly without installation
uv run gti_mcp

API密钥设置

设置 VT_APIKEY 环境变量:

macOS/Linux:

export VT_APIKEY="your-virustotal-api-key"

Windows PowerShell:

$Env:VT_APIKEY = "your-virustotal-api-key"

永久设置(推荐):

将导出命令添加到shell配置文件中(~/.bashrc, ~/.zshrc,或 ~/.bash_profile):

echo 'export VT_APIKEY="your-virustotal-api-key"' >> ~/.zshrc
source ~/.zshrc

MCP客户端配置

克劳德桌面版

编辑 ~/.claude/claude_desktop_config.json:

{
  "mcpServers": {
    "gti": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/gti-mcp-standalone",
        "run",
        "gti_mcp"
      ],
      "env": {
        "VT_APIKEY": "${VT_APIKEY}"
      }
    }
  }
}

macOS用户注意事项: 如果您已安装 uv 使用独立安装程序,使用uv二进制文件的完整路径(例如。, /Users/yourusername/.local/bin/uv)而不是仅仅 uv.

克莱恩

编辑 .cline/mcp.json 或使用设置UI:

{
  "mcpServers": {
    "gti": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/gti-mcp-standalone",
        "run",
        "gti_mcp"
      ],
      "env": {
        "VT_APIKEY": "${VT_APIKEY}"
      }
    }
  }
}

光标

编辑 .cursor/mcp.json:

{
  "mcpServers": {
    "gti": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/gti-mcp-standalone",
        "run",
        "gti_mcp"
      ],
      "env": {
        "VT_APIKEY": "${VT_APIKEY}"
      }
    }
  }
}

验证

  1. 重新启动MCP客户端(Claude Desktop、Cline或Cursor)
  2. 检查GTI服务器是否出现在MCP工具列表中
  3. 尝试一个简单的查询:“使用GTI检查google.com的声誉”

如果一切正常,你应该看到谷歌威胁情报的结果!

生产部署(云运行)

对于希望部署集中式GTI MCP服务的团队,多个用户或前端应用程序可以通过SSE(服务器发送事件)访问该服务。

为什么要部署云?

  • 集中式服务: 一个部署服务于多个用户/应用程序
  • 无本地设置: 用户通过HTTP/SSE连接,无需安装Python或依赖项
  • 团队分享: 安全团队可以为多个前端应用程序提供威胁情报
  • 可扩展性: Cloud Run可根据需求自动扩展

先决条件

  • 启用计费的Google Cloud Platform帐户
  • gcloud命令行界面 已安装并配置
  • 启用云运行API的项目

部署步骤

1.克隆存储库

git clone https://github.com/googleSandy/gti-mcp-standalone.git
cd gti-mcp-standalone

2.配置部署脚本

编辑 gti-remotemcp-deploy.sh 并更新配置部分:

# Edit these three values:
PROJECT_ID="your-gcp-project-id"        # Find at console.cloud.google.com
SERVICE_NAME="gti-remotemcp-server"     # Name for your Cloud Run service
REGION="us-central1"                     # Your preferred region

3.运行部署

chmod +x gti-remotemcp-deploy.sh
./gti-remotemcp-deploy.sh

脚本将:

  • 使用Google Cloud Buildpack构建容器
  • 部署到云端运行
  • 输出服务URL和身份验证令牌

4.保存部署信息

脚本输出:

  • 服务URL: https://gti-remotemcp-server-xyz.a.run.app
  • SSE端点: https://gti-remotemcp-server-xyz.a.run.app/sse
  • 身份验证令牌: 随机生成的用于身份验证的令牌

重要提示: 安全地保存身份验证令牌!你需要它来连接客户。

建筑细部

运输: 通过HTTP的SSE(服务器发送事件)

身份验证:

  • 服务器访问: X-Mcp-Authorization 标题与 MCP_AUTH_TOKEN
  • API调用: api_key 每次工具调用时传递的参数

API关键策略:

  • 服务器不存储病毒API密钥总数
  • 每次工具调用必须包括 api_key 参数
  • 允许每个用户API配额和访问控制
  • 客户端应用程序管理API密钥分发

安全注意事项

  1. 保护身份验证令牌: 商店 MCP_AUTH_TOKEN 安全(环境变量、机密管理器)
  2. 仅限HTTPS: Cloud Run默认强制使用HTTPS
  3. API密钥处理: 客户端应用程序不应在前端代码中公开VT API密钥
  4. 访问控制: 考虑添加额外的身份验证层以供生产使用
  5. 速率限制: VirusTotal强制每个API密钥的速率限制

前端集成

适用于构建连接到部署的Cloud Run服务的自定义前端应用程序的开发人员。

连接概述

  • 协议: SSE(服务器发送事件)用于事件,HTTP POST用于JSON-RPC消息
  • 运输: @modelcontextprotocol/sdk/client/sse
  • 身份验证: 熊式代币 X-Mcp-Authorization 头球
  • API密钥: 通过 api_key 每个工具调用的参数

配置参数

  1. 服务URL: 您的Cloud Run服务URL+ /sse

- 例子: https://gti-remotemcp-server-xyz.a.run.app/sse

  1. 身份验证令牌:MCP_AUTH_TOKEN 从部署输出
  2. VT API密钥: VirusTotal API密钥(托管客户端,每个工具调用传递)

React/TypeScript示例

使用MCP SDK完成实施:

import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";

// Configuration (use environment variables in production)
const MCP_SERVER_URL = process.env.REACT_APP_MCP_SERVER_URL || "https://your-service.a.run.app/sse";
const MCP_AUTH_TOKEN = process.env.REACT_APP_MCP_AUTH_TOKEN || "your-auth-token";
const VT_API_KEY = process.env.REACT_APP_VT_API_KEY || "your-vt-api-key";

// Create SSE transport with authentication
const transport = new SSEClientTransport(
  new URL(MCP_SERVER_URL),
  {
    // Headers for SSE connection (GET request)
    eventSourceInit: {
      headers: {
        "X-Mcp-Authorization": MCP_AUTH_TOKEN,
      }
    },
    // Headers for JSON-RPC messages (POST requests)
    requestInit: {
      headers: {
        "X-Mcp-Authorization": MCP_AUTH_TOKEN,
      }
    }
  }
);

// Create MCP client
const client = new Client(
  {
    name: "gti-frontend-client",
    version: "1.0.0",
  },
  {
    capabilities: {
      tools: {},
      resources: {},
    },
  }
);

// Connect to server
async function connectToGTI() {
  try {
    await client.connect(transport);
    console.log("✅ Connected to GTI MCP Server");
    return true;
  } catch (error) {
    console.error("❌ Connection failed:", error);
    return false;
  }
}

// Example: Call a tool
async function checkFileReputation(fileHash: string) {
  try {
    const result = await client.callTool({
      name: "get_file_report",
      arguments: {
        hash: fileHash,
        api_key: VT_API_KEY  // ⚠️ Required: Pass API key with each call
      }
    });

    console.log("File report:", result);
    return result;
  } catch (error) {
    console.error("Tool call failed:", error);
    throw error;
  }
}

// Example: Search for threats
async function searchThreats(query: string) {
  try {
    const result = await client.callTool({
      name: "search_threats",
      arguments: {
        query: query,
        limit: 10,
        api_key: VT_API_KEY  // ⚠️ Required: Pass API key with each call
      }
    });

    console.log("Threat search results:", result);
    return result;
  } catch (error) {
    console.error("Search failed:", error);
    throw error;
  }
}

// Initialize
connectToGTI().then(success => {
  if (success) {
    // Example usage
    checkFileReputation("44d88612fea8a8f36de82e1278abb02f");
    searchThreats("APT28");
  }
});

重要提示:API密钥处理

每次工具调用必须包括 api_key 参数:

const result = await client.callTool({
  name: "any_gti_tool",
  arguments: {
    // ... other tool-specific arguments ...
    api_key: VT_API_KEY  // ⚠️ Always required
  }
});

为什么? 云运行部署不存储API密钥。这允许:

  • 用户API配额
  • 个人访问控制
  • 客户端安全密钥管理

安全最佳实践:

  • 切勿在前端代码中硬编码API密钥
  • 使用环境变量或安全配置
  • 考虑后端代理以提高安全性
  • 实施适当的关键轮换政策

CORS注意事项

服务器允许通过传递跨源请求 OPTIONS 通过身份验证中间件发出请求。如果您遇到CORS问题:

  1. 验证您的请求是否包括 X-Mcp-Authorization 头球
  2. 检查浏览器控制台是否存在特定的CORS错误
  3. 确保您对云运行URL使用HTTPS
  4. 考虑添加Starlette的 CORSMiddleware 如果需要严格的CORS执行

故障排除

连接失败:

  • 验证服务URL是否正确(必须以结尾 /sse)
  • 检查 MCP_AUTH_TOKEN 匹配部署输出
  • 确保Cloud Run服务正在运行(gcloud run services list)

工具调用失败:

  • 验证 api_key 参数包含在参数中
  • 检查病毒API总密钥是否有效
  • 查看您的VirusTotal帐户的速率限制

身份验证错误:

  • 确认 X-Mcp-Authorization 标题设置正确
  • 重新部署期间未重新生成校验令牌

发展

项目结构

.
├── gti_mcp/
│   ├── __init__.py
│   ├── server.py           # Main MCP server implementation
│   ├── utils.py            # VirusTotal API utilities
│   └── tools/              # Tool implementations
│       ├── __init__.py
│       ├── collections.py  # Threat collections tools
│       ├── files.py        # File analysis tools
│       ├── intelligence.py # IOC search tools
│       ├── netloc.py       # Domain/IP tools
│       ├── threat_profiles.py
│       └── urls.py         # URL analysis tools
├── tests/                  # Test suite
│   ├── conftest.py
│   ├── test_tools.py
│   ├── test_utils.py
│   └── test_files_errors.py
├── pyproject.toml          # Package configuration
├── Dockerfile              # Cloud Run container
├── gti-remotemcp-deploy.sh # Deployment script
└── README.md

运行测试

# Install test dependencies
uv pip install -e ".[test]"

# Run all tests
pytest

# Run with coverage
pytest --cov=gti_mcp

# Run specific test file
pytest tests/test_tools.py -v

# Run specific test
pytest tests/test_tools.py::test_get_file_report -v

贡献

要修改或扩展此服务器,请执行以下操作:

  1. 分叉和克隆 存储库
  2. 创建要素分支: git checkout -b feature/your-feature
  3. 做出改变gti_mcp/tools/ 遵循现有模式
  4. 添加测试tests/ 对于新功能
  5. 运行测试 验证: pytest
  6. 更新README 如果添加新功能或更改API
  7. 提交更改:使用清晰、描述性的提交消息
  8. 推送并创建PR 到原始存储库

添加新工具

添加新工具的示例模式:

# In gti_mcp/tools/your_category.py

async def your_new_tool(param1: str, api_key: str) -> dict:
    """
    Tool description for MCP clients.

    Args:
        param1: Description of parameter
        api_key: VirusTotal API key (required for cloud deployment)

    Returns:
        Tool result as dictionary
    """
    import vt

    async with vt.Client(api_key) as client:
        result = await client.your_operation(param1)
        return result.to_dict()

# Register in gti_mcp/tools/__init__.py

许可和归属

该项目根据 Apache许可证2.0 -看看 许可证 文件以获取详细信息。

原始来源

这是从官方网站上独立提取的谷歌威胁情报MCP服务器 mcp安全 存储库。

原作者: 谷歌安全运营团队 原始存储库: https://github.com/google/mcp-security 原始许可证: Apache 2.0

此独立版本独立维护,但保留所有原始许可和归属。

第三方图书馆

支持

获取帮助

常见问题

Q: 我需要付费的VirusTotal帐户吗? A: 不,免费的VirusTotal帐户可以使用。请注意,免费帐户的费率限制较低,即使MCP工具和功能显示为可用,也并非所有工具和功能都能正常工作。

Q: 我可以将其用于OpenAI或其他LLM提供商吗? A: 是的!这是一个MCP服务器。任何兼容MCP的客户端都可以使用它,而不仅仅是Claude。

Q: 我的API密钥在云部署中是否安全? A: 服务器从不存储API密钥。客户每次呼叫都会传递它们,使您能够实施自己的密钥管理策略。

Q: 我可以部署到Cloud Run以外的平台吗? A: 是的!包含的Dockerfile适用于任何容器平台(AWS ECS、Azure容器实例等)。Cloud Run只是默认设置。

Q: 这和最初的mcp安全回购有什么区别? A: 这是GTI组件的独立提取,使其更容易独立部署。原始仓库包含多个安全工具。

______________________________________________________________________

内置于❤️ 使用 模型上下文协议

目录标签

目录标签

威胁情报安全分析PythonClaude本地部署文件检测IOC搜索网络位置检查

支持客户端

Claude DesktopClaudeCursorCline

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

36

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP