agent-guard-mcp
Provides tools to check the safety of npm packages and verify npm lockfiles before installation.
Provides tools to verify the safety of pnpm lockfiles before installation.
Provides tools to verify the safety of Poetry lockfiles before installation.
Provides tools to check the safety of PyPI packages and verify lockfiles before installation.
Provides tools to verify the safety of Yarn lockfiles before installation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@agent-guard-mcpcheck if package 'lodash' is safe to add"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
agent-guard-mcp
One line: Verify-before-act safety for AI agents — check packages, lockfiles, skill manifests, and CI workflows before install or merge. Zero API keys. Zero config.
Scores Cursor/Claude skill manifests + GitHub Actions workflows — not just npm dependencies.
When you… | Call |
|
|
Review an LLM-generated lockfile |
|
Install a Cursor skill or MCP plugin |
|
Merge a PR touching |
|
Call these before installing a dependency, merging a CI change, or installing a third-party skill/plugin — so an agent refuses hallucinated packages, typosquats, poisoned manifests, and compromised CI actions.
Exposes four MCP tools (also available as a plain HTTP service):
Tool | Use before… | Returns |
| adding a single npm/PyPI dependency | OK / SUSPICIOUS / DANGER + typosquat/slop flags |
| running | scans every direct + transitive dep in a lockfile |
| installing a Cursor/Claude skill or MCP/Smithery plugin | poison-signature + scope-overreach + drift score 0–100 |
| merging a PR that touches CI | flags mutable action pins, compromised actions, curl|bash, pwn-requests, secret exposure |
Why
AI agents routinely hallucinate package names (slopsquatting), trust LLM-generated lockfiles, install unvetted skill packs, and pin CI actions to mutable tags. Each is a live supply-chain vector. This server gives an agent a cheap "is this safe?" call before it acts.
Related MCP server: depguard
Install (MCP client)
{
"mcpServers": {
"agent-guard": { "command": "npx", "args": ["-y", "@liminallablibs/agent-guard-mcp@0.2.1"] }
}
}Agent rule (paste into Cursor Rules / CLAUDE.md)
Before installing any npm/PyPI package, running install from a lockfile, installing a third-party skill/MCP plugin, or merging CI workflow changes, call the agent-guard MCP tools (
check_package,verify_lockfile,score_manifest,check_workflow). If verdict is SUSPICIOUS, REVIEW, or BLOCK/DANGER, stop and show findings to the user — do not proceed.
Quick demo
npx -y @liminallablibs/agent-guard-mcp@0.2.1 # MCP clients spawn this via npx
# HTTP mirror:
npm run http && curl "http://localhost:8402/check?name=reactt&ecosystem=npm"
# → DANGER — typosquat of "react"Or run directly:
npm install
node src/mcp-server.mjs # stdio MCP server
npm run http # optional HTTP mirror on :8402HTTP endpoints (mirror of the MCP tools)
GET /check?name=<pkg>&ecosystem=<npm|pypi>POST /check-lockfile {lockfile_content, format}— format ∈ package-lock.json | yarn.lock | pnpm-lock.yaml | poetry.lock | requirements.txtPOST /score-manifest {manifest_type, manifest_content}POST /check-workflow {workflow_content}
License
MIT.
Available Tools
4 toolscheck_packageA
Check whether a single package exists and assess slopsquat/typosquat risk BEFORE installing it. Returns OK/SUSPICIOUS/DANGER + risk + flags. Nonexistent names are likely hallucinated; names 1-2 chars from a popular package are likely typosquats.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Package name, e.g. "huggingface-cli". | |
| ecosystem | No | npm |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It adequately describes the tool's behavior (check existence and risk, return status) and gives interpretation clues, but does not disclose potential side effects (e.g., network calls, rate limits) or permissions required. Since it's a read-only check, these gaps are minor but present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no fluff. The first sentence states the core purpose, the second summarizes return values, and the third provides actionable interpretation. Information is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 2 parameters (name required, ecosystem optional), no output schema, and no annotations. The description covers the purpose, return categories, and interpretation, but omits mention of the 'ecosystem' parameter and does not fully specify the return structure (e.g., exact risk details or flags format). For a security-focused tool, this is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, with only the 'name' parameter having a description (including an example). The description adds no additional parameter-specific details beyond the schema; it does not explain the 'ecosystem' parameter or its defaults/values, relying on the schema's enum and default value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (check) and resource (a single package), and explicitly distinguishes from sibling tools by specifying it assesses typosquat risk before installation, which other tools (check_workflow, score_manifest, verify_lockfile) do not do.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by stating 'BEFORE installing it', implying the tool is intended for pre-installation safety checks. It also gives interpretation hints for non-existent names and names close to popular packages, but does not explicitly mention when not to use it or compare to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_workflowA
Validate a CI workflow (GitHub Actions / GitLab CI YAML) BEFORE merging a PR that touches it. Flags mutable action pins, known-compromised actions, untrusted owners, curl|bash fetch-exec, pull_request_target pwn-requests, and secret exposure. Returns risk 0-100 + merge recommendation (PROCEED/REVIEW/BLOCK).
| Name | Required | Description | Default |
|---|---|---|---|
| platform | No | github-actions | |
| workflow_content | Yes | Raw CI workflow YAML text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explicitly lists the security checks performed (mutable action pins, compromised actions, untrusted owners, etc.) and states the return values (risk score and merge recommendation). It does not explicitly state it is read-only or has no side effects, but the nature of validation implies no modifications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the key purpose ('Validate a CI workflow before merging') and then lists specific checks and return value. It is concise with no wasted words, though it could be slightly more structured with bullet points for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (2 parameters, no output schema), the description provides sufficient context: it specifies the input (workflow YAML), the checks performed, and the output (risk score and recommendation). It does not detail the return format beyond that, but it is complete enough for an agent to understand its function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 2 parameters (platform and workflow_content) with 50% description coverage (only workflow_content has a schema description). The tool description does not add any additional meaning or syntax details beyond the schema. For low schema coverage, the description should compensate but fails to provide extra guidance on parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'validate', the resource 'CI workflow (GitHub Actions / GitLab CI YAML)', and the context 'BEFORE merging a PR that touches it', effectively differentiating it from sibling tools like check_package, score_manifest, and verify_lockfile which operate on different artifacts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'before merging a PR' and lists specific security checks being performed, providing clear context for when to use the tool. It does not, however, explicitly state when not to use it or mention alternative tools for similar tasks, though the sibling tools are clearly different in domain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
score_manifestA
Score a Cursor/Claude skill or MCP/Smithery plugin manifest for poison/backdoor signatures, credential scope over-reach, and drift BEFORE installing a third-party agent extension. Returns risk 0-100 + install recommendation (PROCEED/REVIEW/BLOCK).
| Name | Required | Description | Default |
|---|---|---|---|
| manifest_type | Yes | ||
| declared_purpose | No | One-line stated purpose (for scope-overreach heuristics). | |
| manifest_content | Yes | Primary manifest text (SKILL.md, plugin.json, smithery.yaml, package.json). | |
| baseline_manifest | No | Optional previously-approved manifest for drift scoring. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It clearly explains what the tool does (scores for poison/backdoor, credential over-reach, drift) and its output format. Since it's a read-only scoring tool, no side effects are expected, and the description does not contradict any annotations (none exist).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action and context, followed by output specification. Every part earns its place with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description comprehensively defines the tool's purpose, input types, output format (risk score plus recommendation), and the optional drift scoring feature. It is complete for a security scoring tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75% (one parameter missing description). The description adds context beyond the schema by explaining the overall scoring purpose and output. It does not detail each parameter, but the enum values for manifest_type are self-explanatory, and the other parameters have descriptions in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool scores manifests for security issues (poison/backdoor, credential over-reach, drift) and specifies the output (risk 0-100 + install recommendation). It distinguishes from siblings like check_package by focusing on manifest files before installation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'BEFORE installing a third-party agent extension', giving a clear when-to-use context. It does not explicitly state when not to use or list alternatives, but the sibling names imply different purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_lockfileB
Scan an entire lockfile (direct + transitive deps) for hallucinated / typosquatted / suspicious packages BEFORE running install. Call this instead of trusting an LLM-generated lockfile.
| Name | Required | Description | Default |
|---|---|---|---|
| format | Yes | ||
| ecosystem | No | Optional; inferred from format. | |
| lockfile_content | Yes | Raw lockfile text (not a path). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description mentions scanning but not output format or behavior upon finding suspicious packages (e.g., returns list or errors). Lacks disclosure of read-only nature or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with front-loaded verb 'Scan'. Efficient but omits expected output details; still earns high score for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks output schema and doesn't describe return values. For a scan tool, agent needs to know if result is a list of issues or a boolean. Incomplete for making informed invocation decisions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% (2 of 3 params described), but description adds no extra meaning beyond schema (e.g., no hint on how to set format enum or optional ecosystem). Baseline for partial coverage is 3, but description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states action (scan lockfile), target (direct + transitive deps), and purpose (detect hallucinated/typosquatted/suspicious packages). Differentiates from siblings by specifying scanning entire lockfile vs. individual package checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to call this before running install and to use instead of trusting LLM-generated lockfiles. Lacks explicit when-not-to-use or alternative tool references, but context from sibling tools implies differentiation.
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. Dates show when Glama detected each change.
4 tool updates
v0.2.0- First observed
check_package - First observed
check_workflow - First observed
score_manifest - First observed
verify_lockfile
TDQS
Each tool targets a distinct security artifact (package, workflow, manifest, lockfile) with no overlap in purpose. An agent can clearly distinguish which tool to call for each verification task.
Tool names follow a verb_noun pattern: 'check_package', 'check_workflow', 'score_manifest', 'verify_lockfile'. While 'check' is used twice, 'score' and 'verify' are different but still descriptive, maintaining a clear and predictable structure.
With 4 tools, the set is concise and focused on common pre-installation and pre-merge security checks. Each tool addresses a specific need without unnecessary bloat, making the surface easy to navigate.
The tool set covers major security vetting areas: package typosquatting, CI workflow integrity, manifest backdoor analysis, and lockfile scanning. Minor gaps like environment or dependency drift checks exist, but the core use cases are well-addressed.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Zero-install security baseline for AI coding agents — OWASP/CWE-cited rules over MCP.
Pre-flight check for AI coding agents: hallucinated packages + secrets, 6 ecosystems, no account.
AgentGuard — 20-tool AI safety MCP: policy preflight, risk scoring, audit logging, rate limits.
Protects AI coding agents from installing malicious open source packages. Every npm and PyPI package is checked against SafeDep’s real-time threat intelligence before installation.
Related MCP Servers
- FlicenseAqualityDmaintenancePackage intelligence MCP server. Stops AI agents from installing hallucinated/malicious packages across 17 ecosystems. 22 tools, free, no auth.221-
- AlicenseAqualityAmaintenanceMCP security server for AI coding agents. 12 tools: pre-install guardian, vulnerability audit, supply-chain attack detection via static code analysis, and CycloneDX 1.6 SBOM generation. Zero runtime dependencies.144315Apache 2.0
- AlicenseNot gradedqualityDmaintenanceRuntime safety guardrails for AI coding agents. Checks file access, validates shell commands, and scores your repo's AI safety — all via MCP.108MIT
- AlicenseAqualityFmaintenanceSecurity scanner for AI agent packages that enables AI agents to audit MCP servers and packages for vulnerabilities, prompt injection, and supply chain attacks.5293AGPL 3.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/liminalpepe/agent-guard-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server