Files
agentic_security/docs/mcp_agno_integration.md
T

3.4 KiB

MCP + Agno Integration

This guide shows how to use Agentic Security's MCP server with Agno agents.

Setup

Install Agentic Security with optional Agno support:

pip install agno

Starting the MCP Server

Start the Agentic Security MCP server:

python -m agentic_security.mcp.main

For production, use the stdio transport (default with FastMCP):

python agentic_security/mcp/main.py

Examples

Basic Verification with Agno

import asyncio

from agno.agent import Agent
from agno.tools.mcp import MCPTools

from agentic_security.mcp.main import mcp


async def verify_llm_spec():
    # Connect to Agentic Security's MCP server via stdio
    mcp_tools = MCPTools(
        command="python",
        args=["agentic_security/mcp/main.py"],
    )
    await mcp_tools.connect()

    try:
        agent = Agent(
            tools=[mcp_tools],
            instructions=[
                "You are a security testing assistant.",
                "Use verify_llm to test LLM specifications for vulnerabilities.",
                "Present results clearly with risk levels.",
            ],
            markdown=True,
        )

        await agent.aprint_response(
            "Verify this LLM spec: openai/gpt-4",
            stream=True,
        )
    finally:
        await mcp_tools.close()


asyncio.run(verify_llm_spec())

Running a Security Scan

import asyncio

from agno.agent import Agent
from agno.tools.mcp import MCPTools


async def run_security_scan():
    mcp_tools = MCPTools(
        command="python",
        args=["agentic_security/mcp/main.py"],
    )
    await mcp_tools.connect()

    try:
        agent = Agent(
            tools=[mcp_tools],
            instructions=[
                "You are an LLM security scanning assistant.",
                "Use start_scan to initiate security scans on LLM endpoints.",
                "Use get_data_config to check available scan configurations.",
                "Report findings with severity levels.",
            ],
            markdown=True,
        )

        await agent.aprint_response(
            "Run a security scan on openai/gpt-4 with max budget 100",
            stream=True,
        )
    finally:
        await mcp_tools.close()


asyncio.run(run_security_scan())

Streamable HTTP Transport

import asyncio

from agno.agent import Agent
from agno.tools.mcp import MCPTools


async def run_http_transport():
    mcp_tools = MCPTools(
        transport="streamable-http",
        url="http://0.0.0.0:8718/mcp",
    )
    await mcp_tools.connect()

    try:
        agent = Agent(
            tools=[mcp_tools],
            markdown=True,
        )

        await agent.aprint_response(
            "List available security scan templates",
            stream=True,
        )
    finally:
        await mcp_tools.close()


asyncio.run(run_http_transport())

Available Tools

Tool Description
verify_llm Verify an LLM model specification
start_scan Start an LLM security scan
stop_scan Stop an ongoing scan
get_data_config Retrieve data configuration
get_spec_templates Retrieve LLM specification templates

Notes

  • The stdio transport is recommended for local development
  • For production deployments, use the streamable-http transport
  • Always call mcp_tools.close() to clean up connections