Skip to main content
Glama
guardentryai

GuardEntry MCP Server

Official
by guardentryai
README.md
# GuardEntry MCP Server

Model Context Protocol (MCP) server for [GuardEntry](https://guardentry.ai) — exposes the Agent Policy Router (APR) as MCP tools so any MCP-compatible AI agent can gate its actions through your compliance policy before executing them.

## Transports

| Transport | Entry point | Use with |
|---|---|---|
| **Streamable HTTP** | `npm run start:http` | CrewAI, LangChain, any HTTP MCP client |
| **stdio** | `npm start` | Claude Desktop, Cursor, VS Code Cline |

## Quick start

```bash
git clone https://github.com/guardentryai/mcp-server.git
cd mcp-server
npm install
```

Create a `.env` file (copy from `.env.example`):

```bash
GUARDENTRY_API_KEY=ge_k1_your_key_here
# GUARDENTRY_BASE_URL=https://app.guardentry.ai   # default
# MCP_PORT=3001                                    # default (HTTP mode only)
# MCP_TOOLS=guardentry_evaluate_action            # optional tool allowlist
```

Get an API key at [app.guardentry.ai](https://app.guardentry.ai) → Settings → API Keys.

### HTTP mode (CrewAI, LangChain, etc.)

```bash
npm run start:http
# GuardEntry APR MCP server listening on http://localhost:3001/mcp
# Health: http://localhost:3001/health
```

### stdio mode (Claude Desktop, Cursor)

```bash
npm start
```

Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "guardentry": {
      "command": "npx",
      "args": ["--yes", "guardentry-mcp"],
      "env": { "GUARDENTRY_API_KEY": "ge_k1_your_key_here" }
    }
  }
}
```

## Available tools

| Tool | Description |
|---|---|
| `guardentry_evaluate_action` | Evaluate a proposed action — returns `allow`, `block`, or `require_approval` with reasoning |
| `guardentry_chat` | Natural language interface to GuardEntry |
| `guardentry_list_risks` | Query the risk register |
| `guardentry_compliance_status` | Get framework readiness (SOC 2, ISO 27001, NIST CSF…) |
| `guardentry_invoke_agent` | Run a GuardEntry agent by ID or type |
| `guardentry_invoke_skill` | Call a single agent skill directly |
| `guardentry_list_skills` | List available skills |
| `guardentry_get_agent_policy` | Get the effective policy for an agent |
| `guardentry_confirm_policy` | Promote an inferred policy to confirmed |
| `guardentry_update_policy` | Update policy rules (blocked actions, allowed tools, approval patterns) |
| `guardentry_list_pending` | List actions awaiting dashboard approval |
| `guardentry_action_status` | Check the status of a specific action |

### Limiting tools (recommended for CrewAI + Claude)

Anthropic's API has a ~16-parameter union-type limit across all active tools. Use `MCP_TOOLS` to expose only what you need:

```bash
MCP_TOOLS=guardentry_evaluate_action npm run start:http
```

## CrewAI integration

```python
from crewai import Agent, Task, Crew, LLM
from crewai.mcp.config import MCPServerHTTP
import os

mcp = MCPServerHTTP(
    url="http://localhost:3001/mcp",
    headers={"Authorization": f"Bearer {os.environ['GUARDENTRY_API_KEY']}"},
)

agent = Agent(
    role="Compliance Analyst",
    goal="Gate every action through GuardEntry APR before executing",
    backstory="You check compliance policy before any sensitive operation.",
    mcps=[mcp],
    llm=LLM(model="anthropic/claude-haiku-4-5-20251001",
             api_key=os.environ["ANTHROPIC_API_KEY"]),
)
```

Run the smoke test:

```bash
GUARDENTRY_API_KEY=ge_k1_... ANTHROPIC_API_KEY=sk-ant-... python test-crewai.py
```

## Environment variables

| Variable | Default | Description |
|---|---|---|
| `GUARDENTRY_API_KEY` | *(required)* | API key from GuardEntry dashboard |
| `GUARDENTRY_BASE_URL` | `https://app.guardentry.ai` | Override for local/staging |
| `MCP_PORT` | `3001` | HTTP server port |
| `MCP_TOOLS` | *(all tools)* | Comma-separated tool allowlist |

## License

MIT — see [LICENSE](LICENSE)

## Links

- [GuardEntry](https://guardentry.ai)
- [Integration docs](https://app.guardentry.ai/integrations/crewai)
- [Dashboard setup](https://app.guardentry.ai/dashboard/integrations/setup/crewai)

TDQS

A3.7/5.0

Scored across 12 tools

Disambiguation4/5

Most tools target distinct resources and actions, such as listing risks, invoking agents/skills, and managing policies. The main potential confusion is between guardentry_invoke_agent and guardentry_invoke_skill, but their descriptions clarify that one invokes an entire agent while the other invokes a single skill. guardentry_chat is a broad catch-all that overlaps with some read operations, but its natural language interface makes it distinct enough.

Naming Consistency3/5

All tool names share the guardentry_ prefix and use snake_case, which is good. However, the naming pattern is inconsistent: several tools follow a clear verb_noun structure (list_risks, invoke_agent, evaluate_action, get_agent_policy), while others lack a verb or use noun-only names (chat, compliance_status, action_status). This mixed convention makes the set slightly less predictable.

Tool Count5/5

With 12 tools, the set is well-scoped for a governance/compliance platform covering risks, compliance, agents, skills, and policies. Each tool addresses a distinct concern, and the count stays within the ideal 3-15 range without feeling bloated or sparse.

Completeness3/5

The toolset covers core read operations and several actions, such as listing risks, invoking agents/skills, and updating policies. However, there are notable gaps: no dedicated create/update/delete tools for risks or controls, no tool to list agents, and no way to approve or reject pending actions directly. guardentry_chat can handle some writes indirectly, but this creates a dependency on a general-purpose tool.

Maintenance

ActivityInactive
ResponsivenessNo issues