Skip to main content
Glama
SumitDalavi

AI DevSecOps Agent MCP Server

by SumitDalavi

NOTE: This repository is an archival lab or partial prototype. It is not actively maintained and should not be used as a reference for production-grade deployments or performance benchmarks.

AI-Assisted DevSecOps Agent β€” MCP Server πŸ€–πŸ”’

Maturity: Functional Prototype An MCP (Model Context Protocol) server exposing DevSecOps tooling to LLM clients.

⚠️ PoC Note: All tools return mock/simulated data β€” no live GitHub Actions, Jira, or logging integrations required. The MCP protocol implementation and tool structure are fully functional.

The Problem

DevSecOps teams drown in context-switching: checking pipeline status in one tab, triaging vulnerabilities in another, searching logs in a third. Meanwhile, LLM coding assistants can write code but are blind to your operational reality β€” they can't see your failing builds, open CVEs, or production errors.

Related MCP server: MCP Tool Manager

The Solution

This MCP server bridges the gap by exposing four security-critical tools to any MCP-compatible LLM client (GitHub Copilot, Claude Desktop, Cursor, etc.):

Tool

What It Does

get_pipeline_status

Fetches CI/CD pipeline runs from GitHub Actions

triage_vulnerabilities

Queries a vulnerability board and returns severity-ranked CVEs

search_logs

Searches application logs by service, severity, and time range

scan_dependencies

Analyzes a package.json or requirements.txt for known vulnerabilities

get-kubernetes-events

Fetches recent K8s events for incident correlation (OOMKills, scheduling failures)

get-sre-incident-correlation

Correlates SRE incidents across pipeline, vulnerability, and runtime data

Why This Over the Obvious Alternative

Most "AI + DevOps" demos are chatbots with hardcoded responses. This project implements the Model Context Protocol (MCP) β€” the open standard for tool-use that GitHub Copilot, Claude, and other major LLM clients natively support. The tools return real, structured data that the LLM reasons over, not canned answers.

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     MCP (stdio/SSE)     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  LLM Client     │◄──────────────────────►│  MCP Server          β”‚
β”‚  (Copilot,      β”‚                         β”‚                      β”‚
β”‚   Claude, etc.) β”‚                         β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚                 β”‚                         β”‚  β”‚ Pipeline Tool   β”‚  β”‚
β”‚                 β”‚                         β”‚  β”‚ Vuln Triage Toolβ”‚  β”‚
β”‚                 β”‚                         β”‚  β”‚ Log Search Tool β”‚  β”‚
β”‚                 β”‚                         β”‚  β”‚ Dep Scan Tool   β”‚  β”‚
β”‚                 β”‚                         β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                      β”‚
                                              β”Œβ”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”
                                              β”‚  Mock Data    β”‚
                                              β”‚  (Simulated   β”‚
                                              β”‚   APIs)       β”‚
                                              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Tech Stack

  • Runtime: Node.js + TypeScript

  • Protocol: Model Context Protocol (MCP) SDK

  • Transport: stdio (local) and SSE (remote)

  • Containerization: Docker

πŸš€ Getting Started

Local Development

npm install
npm run build
npm run start

With Docker

docker-compose up -d --build

Connecting to Claude Desktop

Add to your Claude Desktop MCP config (claude_desktop_config.json):

{
  "mcpServers": {
    "devsecops-agent": {
      "command": "node",
      "args": ["dist/index.js"]
    }
  }
}

πŸ“ Project Structure

src/
β”œβ”€β”€ index.ts              # MCP Server entry point
β”œβ”€β”€ tools/
β”‚   β”œβ”€β”€ pipeline.tool.ts  # GitHub Actions pipeline status
β”‚   β”œβ”€β”€ vulnerability.tool.ts  # CVE triage from mock board
β”‚   β”œβ”€β”€ logs.tool.ts      # Log search across services
β”‚   └── dependency.tool.ts # Dependency vulnerability scanning
└── data/
    └── mock-data.ts      # Simulated API responses

Decision Log

Decision

Rationale

MCP over REST API

MCP is the emerging standard for LLM tool-use; REST would require custom integration per client

TypeScript over Python

Aligns with existing TypeScript expertise; MCP TS SDK is mature

Mock data layer

Keeps the PoC self-contained without requiring real GitHub/Jira API keys

stdio transport

Default for local MCP; SSE available for remote deployment

πŸ“‹ Prerequisites

Tool

Version

Purpose

Node.js

>= 20.x

Runtime

npm

>= 10.x

Package manager

Docker

>= 24.x

Containerization (optional)

MCP Client

Any

Claude Desktop, GitHub Copilot, Cursor, etc.

πŸš€ Step-by-Step Setup

Option A: Local Development

# 1. Clone the repository
git clone https://github.com/SumitDalavi/ai-devsecops-agent-mcp.git
cd ai-devsecops-agent-mcp

# 2. Install dependencies
npm install

# 3. Build the TypeScript project
npm run build

# 4. Start the MCP server (stdio transport)
npm run start

Option B: Docker

# 1. Clone and build
git clone https://github.com/SumitDalavi/ai-devsecops-agent-mcp.git
cd ai-devsecops-agent-mcp

# 2. Build and run
docker build -t devsecops-mcp-agent .
docker run -i devsecops-mcp-agent

Connecting to Claude Desktop

Add to your Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "devsecops-agent": {
      "command": "node",
      "args": ["/absolute/path/to/ai-devsecops-agent-mcp/dist/index.js"]
    }
  }
}

πŸ§ͺ Usage & Demo

Once connected to an MCP client, you can ask natural language questions like:

Prompt

Tool Invoked

"Show me the latest pipeline runs"

get_pipeline_status

"Are there any critical vulnerabilities?"

triage_vulnerabilities

"Search for error logs in the payment service"

search_logs

"Scan dependencies for known CVEs"

scan_dependencies

"Show me Kubernetes events in production"

get-kubernetes-events

"Check for active incidents"

get-sre-incident-correlation

The server returns structured JSON data that the LLM reasons over to provide contextual answers.

βœ… Verification

# Verify the build succeeds
npm run build

# Verify the server starts (it will wait for MCP client connection on stdio)
node dist/index.js
# You should see: "DevSecOps MCP Agent running on stdio" on stderr

Mock Boundaries (Honest Scope)

What

Status

Details

MCP Protocol

Real

Full Model Context Protocol implementation (stdio).

GitHub Actions Integration

Real

get_pipeline_status hits live GitHub API if GITHUB_TOKEN is set.

Other Tools

Mocked

Jira/Log tools return simulated JSON data.

πŸ“š Documentation

πŸ‘¨β€πŸ’» Author

Sumit Dalavi β€” Senior DevSecOps / Platform Engineer GitHub | LinkedIn


Built with a focus on robust patterns, not toy demos.

CI & Reliability Updates (August 2026)

  • CI Pipeline Remediation: Successfully resolved all CI/CD pipeline failures.

  • Specific Fix: Upgraded Zod to match MCP SDK requirements and explicitly cast tool schemas to bypass TypeScript excessive type inference loop.

  • Status: 🟩 Passing

Available Tools

6 tools
get-kubernetes-eventsA

Fetches recent Kubernetes events for a specific namespace, crucial for correlating deployment failures, OOMKills, or pod scheduling issues.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of events to return (default: 50)
namespaceYesThe Kubernetes namespace to query (e.g., 'production', 'staging')

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full behavioral burden. 'Fetches' implies a read-only operation and 'recent' suggests a time-bounded result, but there is no disclosure of auth requirements, rate limits, pagination, or return shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the operation and scope, and the use-case clause earns its place by clarifying intent. No redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read tool, the description covers purpose, scope, and key diagnostic use cases, and the schema documents all parameters. It lacks return format and pagination details, but with no output schema and no annotations those are minor gaps for this operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and both parameters have descriptions (namespace, limit default 50). The tool description does not add syntax, format, or constraints beyond what the schema already provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Fetches) and resource (Kubernetes events) scoped to a namespace, and the use cases (deployment failures, OOMKills, scheduling) make its role distinct from sibling tools like get_prometheus-metrics or search_logs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for when the tool is usefulβ€”correlating deployment failures, OOMKills, and pod scheduling issuesβ€”but does not name alternatives or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pipeline_statusB

Fetches the status of recent CI/CD pipeline runs from GitHub Actions. Optionally filter by branch or status.

ParametersJSON Schema
NameRequiredDescriptionDefault
branchNoFilter by branch name (e.g., "main")
statusNoFilter by pipeline status

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so the description carries the full behavioral burden. It does not disclose the window of 'recent', pagination, rate limits (GitHub API), authentication requirements, or output shape. Read-only intent is implied by 'Fetches' but nothing more.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the primary action front-loaded and the optional filters noted second. Nothing redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list-fetch tool with no annotations and no output schema, the description should clarify the time window, volume, and return format. None of that is present, leaving key invocation context missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and already documents both parameters with examples and an enum. The description only restates that filtering is optional, adding no syntax or default-window details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb 'Fetches' and resource 'status of recent CI/CD pipeline runs' with source 'GitHub Actions'. Siblings are all unrelated monitoring/security tools, so no differentiation is needed, but 'recent' is vague without a defined window.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Hints that branch and status filters are optional and that omitting them returns recent runs, but gives no guidance on when to use this versus any monitoring sibling (e.g., prometheus metrics, k8s events) or any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-prometheus-metricsB

Fetches Prometheus metrics for SLI/SLO analysis, specifically error rates and latency spikes.

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceYesThe service name to query metrics for
metricTypeYesThe type of metric to fetch
timeWindowMinutesNoTime window in minutes (default: 30)

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full behavioral burden. It implies a read-only fetch but does not disclose auth requirements, rate limits, return format, or side effects. This minimal disclosure is a 2.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the action and resource. The trailing 'specifically' clause is slightly misleading given the broader enum, but otherwise there is no waste. A 4 reflects the minor inaccuracy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only metrics fetch with no annotations and no output schema, the description should clarify output shape or usage boundaries. It covers purpose and metric types but omits behavioral and output details. A 3 is appropriate given the tool's simplicity and complete parameter schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all three parameters are documented in the schema. The description adds no syntax, format, or default information beyond what the schema provides, and its 'specifically' clause conflicts slightly with the metricType enum. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Fetches) and resource (Prometheus metrics), and adds the analysis context (SLI/SLO). It does not explicitly differentiate from sibling tools, so it falls short of a 5. The clause 'specifically error rates and latency spikes' slightly undersells the cpu/memory enum values but the core purpose is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear context ('for SLI/SLO analysis') but does not name alternatives or state when not to use it. No prerequisites or exclusions are provided. This is clear context without routing guidance, matching a 4.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scan_dependenciesC

Scans project dependencies for known vulnerabilities. Optionally filter by minimum severity threshold.

ParametersJSON Schema
NameRequiredDescriptionDefault
min_severityNoFilter dependencies with vulnerabilities above this severity

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. 'Scans' hints at a read-only operation but this is never stated, nor is the scan scope (which files/ecosystems), whether network access or a vulnerability database is used, how long it takes, or that it only reports and does not remediate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core action. The second sentence largely restates the schema parameter, which is mild redundancy but it costs no comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-optional-param tool with no annotations and no output schema, the description is minimally viable but leaves scope undefined: it never says which dependency sources are scanned or what the result contains. An agent could invoke it, but with unclear expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single enum parameter is fully documented in the schema, so the baseline is 3. The description's mention of a 'minimum severity threshold' mirrors the schema rather than adding bounds or semantics beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Scans project dependencies') plus the outcome ('for known vulnerabilities'), which is clear and distinguishable from the sibling triage_vulnerabilities. It does not explicitly name or contrast with any sibling, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is about the optional filter, which is parameter usage rather than when-to-use. It never says when to scan vs. when to triage_vulnerabilities, nor any prerequisites (e.g., a manifest/lockfile must exist, run before triage).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_logsB

Searches application logs by service name, log level, or keyword. Returns matching log entries with timestamps and trace IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoFilter by minimum log level
keywordNoSearch keyword in log message
serviceNoFilter by service name

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden. It partially discharges this by disclosing the return payload shape (log entries with timestamps and trace IDs), but says nothing about result volume, pagination/limits, time-range scoping, or whether the search is unbounded β€” notable since there is no time-range parameter at all.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, and the purpose is front-loaded before the return summary. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-param read tool with no output schema and no annotations, the description is adequate but thin: it covers purpose and return fields but omits result limits, time scoping, and any routing against the sibling observability tools that could query overlapping data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each of the three parameters is already documented in the schema. The description merely restates the same three filters (service, level, keyword) without adding format, matching semantics, or default behavior, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (searches) and resource (application logs) plus the three filter dimensions. It is clearly distinguishable from the metric/event/vulnerability siblings, though it never explicitly contrasts itself with get_prometheus_metrics or get_kubernetes-events, which are the nearest adjacent observability tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance is given. The description never says when log search is preferable to the sibling observability tools (metrics, kubernetes events) or what prerequisites exist, leaving the agent to infer usage purely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

triage_vulnerabilitiesA

Queries the vulnerability tracking board and returns CVEs ranked by severity. Optionally filter by severity or status.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by vulnerability status
severityNoFilter by minimum severity level

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral load; it does disclose that results come back ranked by severity, which is genuine behavioral value. However, it omits default filtering behavior (are resolved/ignored CVEs included by default?), pagination/result limits, and permission requirements for a security-sensitive board.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste, front-loaded with the core action and return shape followed by the optional refinement. Nothing redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with two optional enum parameters and no output schema, the description covers what it does and what it returns. It would be stronger with default-filter behavior and result-set size expectations, but it is close to complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are enum-constrained, so the schema already documents them fully. The description adds no formatting or default-value detail beyond 'filter by severity or status' β€” the baseline 3 for schema-covered parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Queries) and resource (vulnerability tracking board), and names the return payload (CVEs ranked by severity). No sibling tool overlaps this domain, so no differentiation burden is required.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says the filters are optional, implying the tool is used for broad vulnerability triage, but it gives no explicit when-to-use/when-not guidance and no mention of which sibling tools might be preferred for adjacent tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.0.0
    • First observedget_pipeline_status
    • First observedget-kubernetes-events
    • First observedget-prometheus-metrics
    • First observedscan_dependencies
    • First observedsearch_logs
    • First observedtriage_vulnerabilities

TDQS

B3.4/5.0

Scored across 6 tools

Disambiguation4/5

The tools mostly target distinct data sources: vulnerability board, logs, dependencies, Kubernetes events, CI/CD pipelines, and Prometheus metrics. The only mild overlap is between triage_vulnerabilities and scan_dependencies, which both concern vulnerabilities but differ in action and source. Descriptions help differentiate them, so confusion is unlikely but possible.

Naming Consistency3/5

The tool names mix snake_case and kebab-case delimiters (e.g., triage_vulnerabilities vs get-kubernetes-events), and some use imperative verbs while others use a get_ prefix. The meanings remain readable, but the set is not consistently formatted. This inconsistency is noticeable though not chaotic.

Tool Count5/5

Six tools is a well-scoped set for an AI DevSecOps agent covering vulnerability triage, dependency scanning, log search, Kubernetes events, pipeline status, and Prometheus metrics. Each tool earns its place without redundancy or excessive breadth. The count fits the investigative, read-oriented purpose.

Completeness4/5

The surface covers key incident and security investigation areas: CVEs, dependency scans, logs, Kubernetes events, CI/CD status, and SLI/SLO metrics. Minor gaps remain, such as fetching trace details despite search_logs returning trace IDs, or querying alert/incident state directly. These can be worked around or handled by adjacent systems, so coverage is mostly complete.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to securely call MCP tools with risk scoring, checkpoints, rollback, and approval workflows.
    6 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to securely discover, invoke, and manage tools through a hardened MCP endpoint with protections like injection detection, circuit breakers, retry backoff, response caching, context-window limiting, and state snapshots.
    5 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to safely call enterprise tools through a governed MCP gateway with permission enforcement, blast-radius controls, input validation, and a full audit trail for every invocation.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables LLM agents to enforce security policies by authorizing tool calls, scanning for prompt injection, checking memory writes, redacting PII, and accessing audit trails through MCP.
    -