Skip to main content
Glama

Security MCP Server

by nordeim
test_sqlmap_tool.py2.22 kB
"""Regression tests for `SqlmapTool`. References: - docs/tool_refactor_todo.md - docs/tool_tests_todo.md """ from __future__ import annotations import asyncio import pathlib import sys from types import SimpleNamespace import pytest PROJECT_ROOT = pathlib.Path(__file__).resolve().parents[1] if str(PROJECT_ROOT) not in sys.path: sys.path.insert(0, str(PROJECT_ROOT)) from mcp_server.tools.sqlmap_tool import SqlmapTool @pytest.fixture def tool(tool_runtime_stub) -> SqlmapTool: instance = SqlmapTool() return tool_runtime_stub(instance) @pytest.mark.asyncio async def test_url_and_batch_required(tool: SqlmapTool, assert_validation_error) -> None: inp = SimpleNamespace( target="http://192.168.0.5/item?id=1", extra_args="", timeout_sec=None, correlation_id="sqlmap-test", ) output = await tool._execute_tool(inp, None) assert_validation_error(output, "requires target URL") def test_placeholder_payload_restore(tool: SqlmapTool, make_input) -> None: payload = "-u http://192.168.0.5/item?id=1&view=detail --batch" secured = tool._secure_sqlmap_args(payload) restored = tool._parse_and_validate_args( secured, make_input(target="http://192.168.0.5/item?id=1"), ) assert isinstance(restored, str) assert "id=1&view=detail" in restored def test_risk_level_clamped(tool: SqlmapTool, make_input) -> None: secured = tool._secure_sqlmap_args("-u http://192.168.0.5/item?id=1 --batch --risk 5") restored = tool._parse_and_validate_args( secured, make_input(target="http://192.168.0.5/item?id=1"), ) assert isinstance(restored, str) tokens = restored.split() assert "--risk" in tokens assert tokens[tokens.index("--risk") + 1] == str(tool.max_risk_level) def test_invalid_payload_token_rejected(tool: SqlmapTool, make_input, assert_validation_error) -> None: payload = "-u http://192.168.0.5/item?id=1;drop --batch" secured = tool._secure_sqlmap_args(payload) output = tool._parse_and_validate_args( secured, make_input(target="http://192.168.0.5/item?id=1"), ) assert_validation_error(output, "Unsupported sqlmap payload token")

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nordeim/Security-MCP-Server-v3'

If you have feedback or need assistance with the MCP directory API, please join our Discord server