Koskamo

Offense MCP

Provides security tools for AI coding agents, enabling dependency advisory audits, source inspection, and workflow analysis. It supports building DevSecOps agents that investigate findings, make authorized changes, and run tests using existing model and repository permissions.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Offense MCP logo, by Offense ResearchCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by Offense Research
You need:Basic npm/pnpm dependency advisory audits are free and need no Offense account or model key.
MCP endpoint (Streamable HTTP)
https://offense.sh/mcp
Vendor documentation

What you can do with it

  • Audit npm/pnpm dependencies for security vulnerabilities
  • Inspect source code and workflows for security issues
  • Build DevSecOps agents for automated security remediation
  • Check account balance and manage API keys for hosted tools

Source and maintenance

Community listingRegistry 0.7.0
Maintenance checked

Protocol and capabilities

Server
offense 0.7.0
MCP protocol
2025-06-18
Tools
1 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Offense by Offense Security provides free dependency advisory intelligence and prepaid security tools. Use one Offense API key for hosted tools. Inspect the catalog and maximum-price quote before submitting a paid call; a Whop top-up link needs human payment approval. Never expose provider credentials or API keys. Advisory matches and scanner signals require review and are not confirmed vulnerabilities. Planning pages alone are not full dependency scans.

Tools

1 advertised

offense.audit_dependencies — Offense dependency audit
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Use Purple to audit sanitized npm/pnpm dependency metadata for known advisory matches and checked upgrade paths. Resume deferred targets with remediation.planning.next while retaining the full scan and coordinating plans across pages. Does not read source, run tests, edit files, confirm exploitability or use a model key.

offense.audit_dependencies input schema
{
  "type": "object",
  "required": [
    "files"
  ],
  "properties": {
    "files": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "path",
          "content"
        ],
        "properties": {
          "path": {
            "type": "string",
            "maxLength": 240,
            "description": "Unique relative lockfile path."
          },
          "content": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000000
              },
              {
                "type": "object"
              }
            ],
            "description": "Sanitized lockfile document; use the installed Offense helper to prepare it."
          }
        },
        "additionalProperties": false
      },
      "maxItems": 20,
      "minItems": 1,
      "description": "Locally sanitized npm v2/v3 or pnpm v6/v9 lockfile metadata. The server cannot read local paths. Do not send source, credentials or registry URLs."
    },
    "planning": {
      "type": "object",
      "required": [
        "metadataFingerprint",
        "pendingTargetIds"
      ],
      "properties": {
        "pendingTargetIds": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "maxItems": 5000,
          "minItems": 1,
          "uniqueItems": true
        },
        "metadataFingerprint": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        }
      },
      "description": "Use remediation.planning.next unchanged with the same sanitized files to continue planning. This checks only selected planning targets; retain and merge the original full advisory report.",
      "additionalProperties": false
    },
    "planLimit": {
      "type": "integer",
      "default": 3,
      "maximum": 10,
      "minimum": 0,
      "description": "Maximum affected package/version pairs to plan in this response, highest severity first. Zero scans only. Follow remediation.planning.next for remaining targets; omitted or failed paths remain explicit blockers."
    }
  },
  "additionalProperties": false
}
offense.audit_dependencies output schema
{
  "type": "object",
  "required": [
    "schemaVersion",
    "capability",
    "status",
    "findings",
    "coverage",
    "remediation",
    "summary",
    "providers"
  ],
  "properties": {
    "status": {
      "enum": [
        "complete",
        "partial"
      ]
    },
    "summary": {
      "type": "object"
    },
    "coverage": {
      "type": "object"
    },
    "findings": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "providers": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "capability": {
      "const": "audit_dependencies"
    },
    "remediation": {
      "type": "object"
    },
    "schemaVersion": {
      "const": "offense.audit.v1"
    }
  }
}
offense.audit_dependencies annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
899 ms
95th percentile latency
899 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 899 ms · metadata changed · 1 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http offense-mcp https://offense.sh/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add offense-mcp --url https://offense.sh/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable offense-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "offense-mcp": {
      "url": "https://offense.sh/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "offense-mcp": {
      "type": "streamableHttp",
      "url": "https://offense.sh/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start offense-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "offense-mcp": {
      "type": "http",
      "url": "https://offense.sh/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http offense-mcp https://offense.sh/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "offense-mcp": {
      "url": "https://offense.sh/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "offense-mcp": {
      "serverUrl": "https://offense.sh/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Offense MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.