威胁情报工具调用协议服务框架

CTI MCP Server 是一个轻量级的MCP(消息/工具调用协议)服务框架,为威胁情报代理封装并暴露多个工具,支持自动化分类、证据查询和集中集成。

  • by TopCaver
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 TopCaver/cti-mcp-server

使用说明

CTI MCP服务器

中文 | 恩

CTI MCP Server是一个轻量级的MCP(消息/工具调用协议)服务框架,它为威胁情报代理打包和公开多个工具,实现自动分类、证据查询和集中集成。

主要特点

  • 轻量级:使用 fastmcp 将工具包装为可远程调用的MCP方法。
  • TI专注:内置IoC查找、事件回溯和基本IP丰富。
  • 模型集成:与OpenAI和其他LLM配合使用,因此模型可以在分析过程中调用MCP工具来收集证据。
  • 通过CLI(Typer)支持,易于在本地调试和部署。

快速开始

准备Python(项目要求Python>=3.14)并创建一个虚拟环境:

python -m venv .venv
source .venv/bin/activate
pip install -e .

启动MCP SSE服务(默认为127.0.0.1:8000,路径/MCP):

uv run cti-mcp-server start
# or
python -m cti_mcp_server.server start

自定义主机/端口/路径示例:

cti-mcp-server start --host 0.0.0.0 --port 8000 --path /mcp

启用身份验证(建议用于公共互联网曝光):

export CTI_MCP_AUTH_TOKEN="replace-with-a-long-random-token"
cti-mcp-server start --host 0.0.0.0 --port 8000 --path /mcp

您也可以直接传递它:

cti-mcp-server start --auth-token "replace-with-a-long-random-token"

启用身份验证后,客户端必须发送标头:

Authorization: Bearer <your-token>

使用代理示例在本地验证(连接到本地MCP服务):

cti-agent 8.8.8.8

使用自定义模型端点/键/模型(与OpenAI兼容的API):

cti-agent 8.8.8.8 \
	--mcp-url http://127.0.0.1:8000/mcp \
	--llm-base-url http://127.0.0.1:11434/v1 \
	--llm-api-key ollama \
	--model qwen3:latest

cti-agent 命令参数:

  • 立场论证: ioc (必填),例如IP/域。
  • --mcp-url:MCP服务URL(默认 http://127.0.0.1:8000/mcp).
  • --llm-base-url:OpenAI兼容模型API基本URL。
  • --llm-api-key:模型终结点的API键。
  • --model:型号名称(例如 qwen3:latest).

内置MCP工具(示例)

  • ioc_type(ioc: str) -> str:检测IoC类型(IP/域)。
  • local_summary(ioc: str) -> dict:从本地intel存储中返回结构化摘要(判断、标签、first_seen等)。
  • local_events(ioc: str, limit: int=20) -> dict:返回最近观察到的事件(用于证据列表)。
  • ip_basic(ip: str) -> dict:离线基本IP丰富(私有/公共确定、地理/ASN占位符信息)。

开发与测试

  • 运行测试: pytest
  • 棉绒/格式: ruff .
  • 通过以下方式进行依赖性管理和打包 pyproject.toml.

贡献

欢迎发布问题和PR。请描述PR中更改的问题和目的,保持提交整洁,提供测试覆盖率,并包括简要解释。

许可证

请参阅 LICENSE 存储库中的文件(如果不存在,则以其他方式协商)。


感谢您使用CTI MCP服务器。如需帮助,请在存储库中打开问题。