Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions apps/mcp-endpoint-shield/copilot-hooks/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
AKTO_DATA_INGESTION_URL=http://localhost:80

AKTO_TIMEOUT=5 # Optional

GITHUB_COPILOT_API_URL=https://api.github.com # Optional

AKTO_SYNC_MODE=true
MODE=argus # Optional: set to atlas for Atlas endpoint visibility format
DEVICE_ID= # Optional: overrides auto-detected machine id
LOG_DIR=/path/to/repo/.github/akto/copilot/logs
LOG_LEVEL=INFO # Optional
LOG_PAYLOADS=true # Optional: logs request/response payload previews

# Heartbeat / agent registration (mirrors mcp-endpoint-shield Go agent)
AKTO_API_TOKEN= # Required for heartbeat auth
# DATABASE_ABSTRACTOR_SERVICE_URL=https://cyborg.akto.io # Optional: override cyborg URL (self-hosted only)
17 changes: 17 additions & 0 deletions apps/mcp-endpoint-shield/copilot-hooks/akto-hook-wrapper.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Generic Akto VSCode Copilot hook wrapper
# Usage: powershell -ExecutionPolicy Bypass -File .github/hooks/akto-hook-wrapper.ps1 akto-hooks.py <hookName>

$env:MODE = "atlas"
$env:AKTO_DATA_INGESTION_URL = "{{AKTO_DATA_INGESTION_URL}}"
$env:AKTO_SYNC_MODE = "true"
$env:AKTO_TIMEOUT = "5"
$env:AKTO_CONNECTOR = "vscode"
$env:CONTEXT_SOURCE = "ENDPOINT"
$env:AKTO_API_TOKEN = "{{AKTO_API_TOKEN}}"
$env:DEVICE_ID = "{{DEVICE_ID (optional)}}"

$env:LOG_DIR = "$env:USERPROFILE\akto\.github\akto\vscode\logs"
$env:LOG_LEVEL = "INFO"
$env:LOG_PAYLOADS = "false"

python .github/hooks/$args[0] $args[1..($args.Length - 1)]
20 changes: 20 additions & 0 deletions apps/mcp-endpoint-shield/copilot-hooks/akto-hook-wrapper.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/bin/bash
# Generic Akto VSCode Copilot hook wrapper
# Usage: bash ./.github/hooks/akto-hook-wrapper.sh akto-hooks.py <hookName>

export MODE="atlas"
export AKTO_DATA_INGESTION_URL="{{AKTO_DATA_INGESTION_URL}}"
export AKTO_SYNC_MODE="true"
export AKTO_TIMEOUT="5"
export AKTO_CONNECTOR="vscode"
export CONTEXT_SOURCE="ENDPOINT"
export AKTO_API_TOKEN="{{AKTO_API_TOKEN}}"
export DEVICE_ID="{{DEVICE_ID (optional)}}"

export LOG_DIR="$HOME/akto/.github/akto/vscode/logs"
export LOG_LEVEL="INFO"
export LOG_PAYLOADS="false"
# export SSL_CERT_PATH="/path/to/ca-bundle.crt"
# export SSL_VERIFY="false"

exec python3 "./.github/hooks/$1" "${@:2}"
20 changes: 20 additions & 0 deletions apps/mcp-endpoint-shield/copilot-hooks/akto-hooks.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/usr/bin/env python3
"""Single dispatch file for all Akto VSCode Copilot hooks. Usage: python3 akto-hooks.py <hookName>"""
import os
import sys

if not os.getenv("LOG_DIR"):
os.environ["LOG_DIR"] = os.path.expanduser("~/akto/.github/akto/vscode/logs")

from akto_ingestion_utility import run_observability_hook

if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: akto-hooks.py <hookName>", file=sys.stderr)
sys.exit(1)

hook = sys.argv[1]

run_observability_hook(hook)
print("{}")
sys.exit(0)
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Auto-generated wrapper for Akto guardrails hook
# Generated by MCP Endpoint Shield installer

$env:MODE = "atlas"
$env:AKTO_DATA_INGESTION_URL = "{{AKTO_DATA_INGESTION_URL}}"
$env:AKTO_SYNC_MODE = "true"
$env:AKTO_TIMEOUT = "5"
$env:CONTEXT_SOURCE = "ENDPOINT"
$env:AKTO_API_TOKEN = "{{AKTO_API_TOKEN}}"

# Execute Python hook script
python .github/hooks/akto-validate-post-tool.py @args
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash
# Auto-generated wrapper for Akto guardrails hook
# Generated by MCP Endpoint Shield installer

export MODE="atlas"
export AKTO_DATA_INGESTION_URL="{{AKTO_DATA_INGESTION_URL}}"
export AKTO_SYNC_MODE="true"
export AKTO_TIMEOUT="5"
export CONTEXT_SOURCE="ENDPOINT"
export AKTO_API_TOKEN="{{AKTO_API_TOKEN}}"

# Execute Python hook script
exec python3 "./.github/hooks/akto-validate-post-tool.py" "$@"
Loading