prometheus-mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited prometheus-mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This skill covers working with the Prometheus integration via the MCPClient from lib.gumloop_mcp. The MCPClient wraps the Gumloop MCP transport layer with automatic retries, error handling, and typed responses. Use it for all Prometheus monitoring and alerting operations.
Activate when the user wants to query, create, update, or manage Prometheus monitoring and alerting using the Gumloop MCP connection to prometheus.
from lib.gumloop_mcp import MCPClient
client = MCPClient()
# The client auto-resolves credentials from the agent's connected integrations.
# No API keys or tokens to configure manually.All MCP calls should use this pattern:
def safe_call(client, server, tool, params, max_retries=3):
"""Call an MCP tool with retry and error handling."""
import time
for attempt in range(max_retries):
try:
result = client.call(server, tool, params)
error = getattr(result, 'error', None)
if error:
if attempt < max_retries - 1:
time.sleep(2 ** attempt)
continue
raise RuntimeError('MCP call failed: ' + str(error))
return result
except Exception as exc:
if attempt < max_retries - 1:
time.sleep(2 ** attempt)
continue
raiseAlways read the current state before modifying:
# Fetch current state first with retry
current = safe_call(client, 'prometheus', 'query', 'query', {'query': 'up{job="api-server"}'})
print('Current state:', current)from lib.gumloop_mcp import MCPClient
client = MCPClient()
# Fetch data with retry
result = safe_call(client, 'prometheus', 'query', 'query', {'query': 'up{job="api-server"}'})
print('Result:', result)This service is read-only via the Gumloop MCP connector. Data cannot be created or modified through native tools. For write-capable alternatives, see the Artificial API / REST Fallback section below.
prometheus does not have a native Gumloop MCP connector. Use raw requests + os.environ with a bound secret for write operations:
import os
import requests
# Get API key from bound secrets
api_key = os.environ.get('FALLBACK_API_KEY')
if not api_key:
raise RuntimeError('Missing FALLBACK_API_KEY - use bind_env_vars first')
# Call the native REST API directly
response = requests.get(
'https://prometheus.io/docs/prometheus/latest/querying/api/',
headers={'Authorization': 'Bearer ' + api_key, 'Accept': 'application/json'}
)
response.raise_for_status()
data = response.json()limit, page, or cursor parameters where available.prometheussafe_call(client, 'prometheus', 'tool_discovery', {}) to list available tools at runtime.This skill is part of the Gumloop MCP integration suite. Tool names and schemas vary by deployment. Always rely on live discovery, not assumptions.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.