Skip to content
Threat Intelligence

Agentic Layer in SecTepe.Core.CTI: Governed MCP Server, NLQ, Report-AI & Graph

SecTepe Editorial
|
|
7 min read

AI in threat intelligence rarely fails at the model but at governance: how do you let an agent operate the platform without giving it write access or unfiltered data access? SecTepe.Core.CTI answers this with an agentic layer of four services that all run over the same identity and RBAC model as the rest of the platform.

MCP Server: Eleven Governed Tools

The MCP server (FastMCP, streamable HTTP, stateless, port 5099) provides exactly eleven governed tools – including search_iocs, iocs_for_task, lookup_threat_intel, get_sandbox_report, list_cases, get_case, create_case, and whoami. A middleware resolves every request through the shared identity model; every tool enforces an RBAC permission (e.g. create_case needs jobs:write). Anonymous calls are rejected with 401 when the API key requirement is active. This is positioned against Joe Sandbox's Cloud-MCP.

NLQ: One Question, Exactly One Read-Only Tool

The NLQ service (port 5013) answers natural-language questions over a three-step pipeline: an LLM routes the question to exactly one read-only tool from a fixed catalog (strict JSON), execution runs deterministically, and a second LLM step phrases the answer exclusively based on the returned data. Mutating actions are deliberately excluded. The sovereignty angle: with a self-hosted Ollama, the question and the data stay on-prem.

Report-AI: Structured Threat Reports, Fail-Soft

Report-AI (port 5014) turns an analysis job, a sandbox report, or a case into a structured threat report in Markdown, German, English, or both – with fixed sections (executive summary, key findings, IOCs, MITRE ATT&CK, recommended actions) and "None observed" on gaps. The decisive part is the fail-soft mode: even without an available model, the service delivers a deterministic template report from the raw data – the endpoint always returns something usable.

Graph Service: Making Relationships Visible

The graph service (port 5015) delivers a JSON graph (nodes + edges) showing how a sample relates to its IOCs and to other sandbox tasks – for example GET /api/v1/graph/task/<task_id> for the one-hop pivot per IOC. Deduplication and a hard max_nodes limit with a truncated flag keep the graph manageable. It is explicitly the open-source counterpart to VMRay's Relations tab.

Opt-In and Tested

All four services ship as opt-in Compose profiles, are in the image build matrix, and carry their own unit tests. They mesh with the agentless sandbox and the analyst triage: the MCP server opens the tools, NLQ and Report-AI summarize, the graph connects – and everything stays governed.

Conclusion

The agentic layer makes SecTepe.Core.CTI AI-operable without giving up control: read-only where needed, RBAC per tool, fail-soft in doubt, and with the option to run everything sovereignly on a local model. This turns the hype around agents into a tool a SOC is actually allowed to use.