Skip to main content
Glama

Adversary MCP Server

by brettbergin
pyproject.toml5.87 kB
[project] name = "adversary-mcp-server" version = "1.11.2" description = "MCP server for security vulnerability scanning and detection" readme = "README.md" authors = [ { name = "Brett Bergin", email = "brettberginbc@yahoo.com" } ] requires-python = ">=3.10,<3.14" license = { text = "MIT" } keywords = ["security", "mcp", "vulnerability", "scanner", "static-analysis"] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Security", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Quality Assurance", ] dependencies = [ "click>=8.0.0", "pydantic>=2.0.0", "mcp>=1.0.0", "rich>=13.0.0", "keyring>=24.0.0", "typing-extensions>=4.0.0", "cryptography>=3.4.8", "pyyaml>=6.0.0", "semgrep>=1.0.0", "requests>=2.28.0", "jinja2==3.1.6", "pathspec>=0.11.0", "openai>=1.0.0", "anthropic>=0.8.0", "psutil>=5.9.0", "sqlalchemy>=2.0.0", "questionary>=2.0.0", "aiohttp>=3.9.0", "truststore>=0.8.0", ] [project.optional-dependencies] dev = [ "mypy>=1.0.0", "black>=23.0.0", "isort>=5.0.0", "pytest>=7.0.0", "pytest-cov>=4.0.0", "pytest-asyncio>=0.21.0", "pytest-mock>=3.10.0", "pytest-benchmark>=4.0.0", "responses>=0.24.0", "freezegun>=1.2.0", "ruff>=0.1.0", "pre-commit>=3.0.0", ] [project.scripts] adv = "adversary_mcp_server.application.cli.clean_cli:main" adversary-mcp-cli = "adversary_mcp_server.application.cli.clean_cli:main" adversary-mcp-server = "adversary_mcp_server.sync_main:main" [project.urls] Homepage = "https://github.com/brettbergin/adversary-mcp-server" Documentation = "https://github.com/brettbergin/adversary-mcp-server#readme" Repository = "https://github.com/brettbergin/adversary-mcp-server.git" Issues = "https://github.com/brettbergin/adversary-mcp-server/issues" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.uv] dev-dependencies = [ "mypy>=1.0.0", "black>=23.0.0", "isort>=5.0.0", "pytest>=7.0.0", "pytest-cov>=4.0.0", "pytest-asyncio>=0.21.0", "pytest-mock>=3.10.0", "pytest-benchmark>=4.0.0", "responses>=0.24.0", "freezegun>=1.2.0", "ruff>=0.1.0", "pre-commit>=3.0.0", "build>=1.2.2.post1", "twine>=6.1.0", ] [tool.hatch.build.targets.wheel] packages = ["src/adversary_mcp_server", "rules"] [tool.mypy] python_version = "3.12" strict = false warn_return_any = false warn_unused_configs = false disallow_untyped_defs = false disallow_incomplete_defs = false check_untyped_defs = false disallow_untyped_decorators = false no_implicit_optional = false warn_redundant_casts = false warn_unused_ignores = false warn_no_return = false warn_unreachable = false strict_equality = false ignore_missing_imports = true allow_untyped_calls = true allow_untyped_defs = true allow_incomplete_defs = true allow_untyped_globals = true allow_redefinition = true explicit_package_bases = true disable_error_code = ["type-var", "var-annotated", "assignment", "attr-defined", "call-arg", "valid-type", "index", "union-attr", "no-redef", "import-untyped"] [tool.black] line-length = 88 target-version = ['py311', 'py312'] include = '\.pyi?$' extend-exclude = ''' /( # directories \.eggs | \.git | \.hg | \.mypy_cache | \.tox | \.venv | build | dist )/ ''' [tool.isort] profile = "black" multi_line_output = 3 line_length = 88 include_trailing_comma = true force_grid_wrap = 0 use_parentheses = true ensure_newline_before_comments = true [tool.ruff] line-length = 88 target-version = "py312" [tool.ruff.lint] select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # pyflakes "I", # isort "B", # flake8-bugbear "C4", # flake8-comprehensions "UP", # pyupgrade "S", # bandit security checks ] ignore = [ "E501", # line too long, handled by black "B008", # do not perform function calls in argument defaults "C901", # too complex "S101", # use of assert # Additional ignores for existing codebase "S110", # try-except-pass detected "E402", # module level import not at top of file "B007", # loop control variable not used within loop body "F841", # local variable assigned but never used "B904", # within an except clause, raise exceptions with raise ... from err "S603", # subprocess call: check for execution of untrusted input "S607", # starting a process with a partial executable path "W291", # trailing whitespace "W293", # blank line contains whitespace "S105", # possible hardcoded password "S108", # probable insecure usage of temporary file "S608", # possible SQL injection vector "B017", # do not assert blind exception "F811", # redefinition of unused variable "S701", # jinja2 autoescape disabled ] [tool.pytest] log_level = "ERROR" log_cli = false log_cli_level = "ERROR" [tool.pytest.ini_options] testpaths = ["tests"] python_files = ["test_*.py"] python_classes = ["Test*"] python_functions = ["test_*"] addopts = "--cov=adversary_mcp_server --cov-report=term-missing --cov-report=html --cov-report=json --cov-report=xml --cov-fail-under=75 --strict-markers --benchmark-skip" asyncio_mode = "auto" markers = [ "slow: marks tests as slow (deselect with '-m \"not slow\"')", "integration: marks tests as integration tests", "unit: marks tests as unit tests", "security: marks tests as security-related tests", "benchmark: marks tests as benchmarks", ] # Coverage configuration [tool.coverage.run] omit = [ ]

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/brettbergin/adversary-mcp-server'

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