Repository navigation
Conversation
…tool reference - Add dedicated GTI workflow guides in docs/gti_workflows/ covering non-blocking file and URL scanning, verdict reanalysis, stateful multi-turn GTI Agentic investigations (local gti-mcp and hosted /api/v3/agentspace/mcp/ endpoint), Threat Profiles, collection commonalities, standard YARA and Sigma rule extraction, and Digital Threat Monitoring. - Reconcile docs/servers/gti_mcp.md and server/gti/README.md against all 50 @server.tool() signatures, required descriptors_only parameters, and supported relationship names. - Update 10 security persona tool catalogs in docs/personas/ with the new GTI Agentic session and non-blocking scan and reanalysis tools.
- Add docs/img/gti_workflows/render_diagrams.py, a stdlib-only script that renders three SVG diagrams using currentColor so they follow the Furo light and dark themes. - Embed scan_flow.svg (get_file_report -> submit_file -> get_analysis polling loop, with analyse_file as the blocking alternative) in scanning_and_reanalysis.md. - Embed hosted_vs_local.svg (local gti-mcp vs hosted agentspace/mcp/ endpoint) and agentic_session_lifecycle.svg (two-analyst share_session -> copy_shared_session handoff) in agentic_investigations.md.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds 14 net-new Google Threat Intelligence (GTI) and VirusTotal v3 MCP tools across two self-contained modules in
server/gti/gti_mcp/tools/(expandinggti-mcpfrom 36 to 50 tools), adds dedicated static-site workflow guides underdocs/gti_workflows/, updates the security persona catalogs, and reconciles all 50 tool signatures indocs/servers/gti_mcp.mdandserver/gti/README.md.1. Scanning, reanalysis, and analysis status (
server/gti/gti_mcp/tools/analyses.py)submit_file(file_path): Uploads a local file viavt.Client.scan_file_asyncwithout blocking on scan completion, exposing onlyos.path.basename(file_path)in the multipartContent-Dispositionheader rather than the caller's local directory path.reanalyze_file(hash): TriggersPOST /api/v3/files/{hash}/analysefor an existing MD5, SHA-1, or SHA-256 hash.submit_url(url): Submits a URL viavt.Client.scan_url_asyncand returns the queued analysis descriptor immediately.reanalyze_url(url): Encodes the URL via unpadded URL-safe base64 (vt.url_id) and triggersPOST /api/v3/urls/{id}/analyse.reanalyze_domain(domain): TriggersPOST /api/v3/domains/{domain}/analyse.reanalyze_ip(ip_address): TriggersPOST /api/v3/ip_addresses/{ip_address}/analyse.get_analysis(analysis_id, include_engine_results=False): FetchesGET /api/v3/analyses/{id}, returningstatus(queued,in-progress,completed), aggregatestats, andmeta(file_infoorurl_info) while omitting per-engine scannerresultsunlessinclude_engine_results=True.2. GTI Agentic investigation sessions (
server/gti/gti_mcp/tools/agentic.py)ask_gti_agent(message): Starts a stateful session viaPOST /api/v3/agentspace/sessions(multipart/form-data), returning synthesized markdownresponse,citations, structuredwidgets,agent_id, andsession_id.continue_chat(session_id, message): Continues an existing session viaPOST /api/v3/agentspace/sessions/{session_id}(multipart/form-data).list_sessions(limit=5, order=None, filter=None, cursor=None): Lists sessions viaGET /api/v3/agentspace/sessions, droppingNoneand empty-string query parameters.get_session_history(session_id, include_intermediate_events=False): Retrieves session turns viaGET /api/v3/agentspace/sessions/{session_id}(USER_MESSAGEandAGENT_FINAL_RESPONSEturns by default).delete_session(session_id): Deletes a session viaDELETE /api/v3/agentspace/sessions/{session_id}(handling both200JSON and204empty responses).share_session(session_id): Generates a session share token viaGET /api/v3/agentspace/sessions/{session_id}/token.copy_shared_session(share_token): Clones a shared session into the caller's workspace viaPOST /api/v3/agentspace/sessions/token(handling201 Created).3. Static-site documentation, workflow guides, and persona catalogs
docs/gti_workflows/(index.md,scanning_and_reanalysis.md,agentic_investigations.md,collections_and_hunting.md) wired intodocs/index.md,docs/toc.md, anddocs/servers/gti_mcp.md, including configuration for both localgti-mcp(50 tools) and the hostedhttps://www.virustotal.com/api/v3/agentspace/mcp/Streamable HTTP endpoint (7 session tools).@server.tool()signatures, requireddescriptors_onlyparameters, and supportedrelationship_namevalues acrossdocs/servers/gti_mcp.mdandserver/gti/README.md(eliminating 15 previously undocumented tools and outdated relationship names).docs/personas/(cti_researcher,soc_analyst_tier_1,soc_analyst_tier_2,soc_analyst_tier_3,incident_responder,threat_hunter,detection_engineer,security_engineer,ciso,red_team).Verification
pytest-httpserver):77 passedacrossserver/gti/tests.https://www.virustotal.com/api/v3): verified all 14 new tools (50total registered MCP tools), including multi-turnask_gti_agent->continue_chat->list_sessions->get_session_history->share_session->copy_shared_session->delete_sessioncleanup.sphinx-build -b html -E docs <build_dir>) verified with zero warnings on all modified and newly created GTI pages, plus AST signature parity check confirming50/50tools match acrossdocs/servers/gti_mcp.mdandserver/gti/README.md.