Skip to main content
Glama

Server Details

Tells your coding agent whether your installed packages need patching, with advice on what to do.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
robertkeus/keep-me-secure-mcp
GitHub Stars
0
Server Listing
keep-me-secure-mcp
ChatGPT
–
Claude
–

TDQS

A3.9/5.0

Scored across 3 tools

Disambiguation4/5

check_package (one version) and check_packages (batch of up to 500) are near-identical names and could be misselected at a glance, but their descriptions make the singular/batch split explicit. check_platform targets an entirely different object (platforms/breaches) and is clearly distinct.

Naming Consistency5/5

All three tools follow the same snake_case verb_noun pattern (check_*), so the naming is fully predictable. The only caveat is the singular/plural pair, which is a consistency-consistent but low-contrast distinction captured under disambiguation.

Tool Count4/5

Three focused tools is a tight, well-scoped set with little redundancy for a security-checking server. The single-package tool is partially subsumed by the batch tool, so one tool could arguably be merged, but nothing feels padded.

Completeness3/5

The core surface (single check, batch check, platform incidents) is covered, but the package tools only return a verdict with no severity, advisory IDs, or remediation guidance, and the descriptions explicitly exclude runtimes, OS packages, and Docker base images. These are notable gaps an agent must work around rather than a full lifecycle.

Available Tools

3 tools
check_packageIs this package version safe?A
Read-only
Inspect

Checks one exact package version against public security advisories.

NameRequiredDescriptionDefault
nameYesPackage name, such as guzzlehttp/guzzle
versionYesExact version, such as 7.4.0
ecosystemYesphp, npm, python, go, rust, ruby, java or dotnet

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety and external-data behavior are covered structurally. The description confirms the external source ("public security advisories"), which is mildly additive, but it says nothing about latency, rate limits, advisory-source coverage, or what a caller gets back when no advisories match.

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?

A single front-loaded sentence with zero redundant wording. For a three-parameter read-only lookup, this is appropriately sized and every word carries meaning.

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?

The tool is simple, annotations cover the safety profile, and the input schema is fully documented, so the description is close to sufficient. The notable gap is the absence of an output schema combined with no statement of the return shape — whether it returns a boolean, a severity level, or a list of advisories — which an agent would want to know before calling.

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 all three parameters are already documented with examples, including the required exact-version format. The description reinforces "exact" but adds no syntax, normalization, or ecosystem-matching guidance beyond the schema, so 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 ("Checks") and resource ("one exact package version") against a named data source ("public security advisories"). The singular "one exact package version" implicitly distinguishes it from the sibling check_packages, but it never names or explains that contrast explicitly.

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 phrase "one exact package version" hints that this is the single-package path and the sibling handles multiple, but no when-to-use, when-not-to-use, or alternative is stated. An agent must infer the routing rule from the singular/plural naming alone.

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

check_packagesIs my stack secure?A
Read-only
Inspect

Use for questions like 'is my stack secure?' or 'do we have vulnerable packages?'. Checks a list of exact installed package versions against public security advisories. Read them from the project's lockfiles, including transitive packages. Up to 500 per call; call again for more. verdict is yes, no or unknown; unknown means the check was incomplete, so never report it as safe. Does not cover language runtimes, OS packages or Docker base images.

NameRequiredDescriptionDefault
packagesYes

TDQS

A4.6/5.0
Behavior5/5

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

With readOnlyHint and openWorldHint already supplied, the description still adds substantive context: it reads lockfiles including transitive packages, has a 500-item ceiling requiring repeat calls, and defines the verdict domain with the critical warning that 'unknown' must never be reported as safe. That last point materially changes how an agent would interpret and relay results.

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?

Five short sentences, front-loaded with the trigger questions and scope, followed by operational limits and the verdict semantics. No filler or repetition; each sentence carries a distinct fact.

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

Completeness5/5

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

No output schema exists, yet the description explains the verdict values and how to interpret 'unknown', which is the one return detail an agent must not misreport. Scope limits, input source, and batch ceiling are all covered, so nothing essential for correct invocation is missing.

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

Parameters4/5

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

Given a single required parameter and reported 0% schema description coverage, the description compensates by specifying that versions must be exact installed versions (not ranges) sourced from lockfiles and that the list is capped at 500. It does not restate the ecosystem enum values, but the key semantic constraint on the array is conveyed.

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 concrete verb and resource: it checks exact installed package versions against public security advisories, and clarifies the input is a list read from the project's lockfiles. It implicitly separates itself from the singular sibling check_package via 'a list of exact installed package versions', but never names or references the sibling explicitly.

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

Usage Guidelines5/5

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

Opens with the exact user questions it answers ('is my stack secure?', 'do we have vulnerable packages?') and closes with explicit exclusions: language runtimes, OS packages, Docker base images are out of scope. It also gives the operational boundary (up to 500 per call, call again for more), leaving little to infer.

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

check_platformHas this platform been breached?A
Read-only
Inspect

Lists known security incidents at hosting, deployment and AI platforms, with what to do and a link to the source. Use when the user asks about a platform or breach. Omit name to list all. The list is curated and not complete, so no result doesn't mean a platform is safe.

NameRequiredDescriptionDefault
nameNoPlatform name, such as railway or vercel

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, but the description adds genuinely new behavioral context: the list is curated and incomplete, so a zero-result must not be read as 'safe'. That caveat materially changes how an agent should report results. Missing only secondary details such as data freshness or rate limits.

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?

Four short sentences, front-loaded with what the tool returns, then usage, then the coverage caveat. Each sentence carries information, though 'with what to do and a link to the source' and the title overlap slightly in framing.

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?

With no output schema, the description correctly compensates by describing the shape of returned entries (incident, remediation, source link). For a single optional-parameter read tool this is nearly complete; the only gap is not characterizing how current or how large the curated list is.

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

Parameters4/5

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

Schema coverage is 100% and the name parameter is already documented with an example, so baseline would be 3. The description goes beyond the schema by specifying the semantics of omission ('Omit name to list all'), which the schema does not state.

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 (lists) and resource (known security incidents at hosting, deployment and AI platforms), plus what each entry contains. The platform-vs-package boundary with siblings check_package/check_packages is only implicit through the word 'platform', so it is clear but not explicitly differentiated.

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?

'Use when the user asks about a platform or breach' gives a clear trigger, and 'Omit name to list all' explains the no-argument mode. It stops short of naming when to prefer check_package/check_packages instead, so an agent must infer the platform-vs-package split from the sibling names.

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. 1 tool update
    • Addedcheck_platform
  2. 2 tool updates
    • First observedcheck_package
    • First observedcheck_packages

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI coding agents to check package names and versions for allow/warn/deny verdicts, scan project lockfiles for known-malicious packages and critical advisories, and suggest safe versions across npm, PyPI, crates.io, and Go before manifests are edited.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Package intelligence for AI coding agents that checks npm and PyPI package health, deprecation, vulnerabilities, bundle size, and compares alternatives.
    5
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.