322 lines
6.3 KiB
Markdown
322 lines
6.3 KiB
Markdown
# MCP Tools Reference
|
|
|
|
Complete reference for Guardrails MCP validation tools.
|
|
|
|
---
|
|
|
|
## Quick Reference Table
|
|
|
|
| Tool | Purpose | Input | Categories Validated |
|
|
|------|---------|-------|---------------------|
|
|
| `guardrail_validate_bash` | Validate bash commands | Command string | bash |
|
|
| `guardrail_validate_git_operation` | Validate git operations | Operation + args | git |
|
|
| `guardrail_validate_file_edit` | Validate file edits | Path + content | file_edit, content, edit, security |
|
|
|
|
---
|
|
|
|
## guardrail_validate_bash
|
|
|
|
Validates bash commands against dangerous patterns.
|
|
|
|
### Description
|
|
Analyzes bash commands for potentially destructive or dangerous operations like `rm -rf /`, fork bombs, and data destruction patterns.
|
|
|
|
### Input Parameters
|
|
|
|
| Parameter | Type | Required | Description |
|
|
|-----------|------|----------|-------------|
|
|
| `command` | string | Yes | The bash command to validate |
|
|
|
|
### Return Value
|
|
|
|
```json
|
|
{
|
|
"violations": [
|
|
{
|
|
"rule_id": "BASH-001",
|
|
"severity": "critical",
|
|
"message": "Dangerous bash command detected",
|
|
"category": "bash"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### Example Usage
|
|
|
|
**Request:**
|
|
```json
|
|
{
|
|
"tool": "guardrail_validate_bash",
|
|
"arguments": {
|
|
"command": "rm -rf /"
|
|
}
|
|
}
|
|
```
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"violations": [
|
|
{
|
|
"rule_id": "BASH-001",
|
|
"severity": "critical",
|
|
"message": "Dangerous bash command detected",
|
|
"category": "bash"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
**Valid Command (no violations):**
|
|
```json
|
|
{
|
|
"tool": "guardrail_validate_bash",
|
|
"arguments": {
|
|
"command": "ls -la /home/user"
|
|
}
|
|
}
|
|
```
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"violations": []
|
|
}
|
|
```
|
|
|
|
### Validated Rule Categories
|
|
|
|
| Category | Rules | Severity |
|
|
|----------|-------|----------|
|
|
| bash | BASH-001 | critical |
|
|
|
|
---
|
|
|
|
## guardrail_validate_git_operation
|
|
|
|
Validates git operations for safety and compliance.
|
|
|
|
### Description
|
|
Checks git commands against rules preventing force pushes, branch deletions, and history rewrites.
|
|
|
|
### Input Parameters
|
|
|
|
| Parameter | Type | Required | Description |
|
|
|-----------|------|----------|-------------|
|
|
| `operation` | string | Yes | Git operation (push, commit, rebase, etc.) |
|
|
| `args` | array[string] | Yes | Command arguments |
|
|
|
|
### Return Value
|
|
|
|
```json
|
|
{
|
|
"violations": [
|
|
{
|
|
"rule_id": "GIT-001",
|
|
"severity": "error",
|
|
"message": "Force push to main/master is blocked",
|
|
"category": "git"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### Example Usage
|
|
|
|
**Request (Force Push Blocked):**
|
|
```json
|
|
{
|
|
"tool": "guardrail_validate_git_operation",
|
|
"arguments": {
|
|
"operation": "push",
|
|
"args": ["--force", "origin", "main"]
|
|
}
|
|
}
|
|
```
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"violations": [
|
|
{
|
|
"rule_id": "GIT-001",
|
|
"severity": "error",
|
|
"message": "Force push to main/master is blocked",
|
|
"category": "git"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
**Request (Safe Operation):**
|
|
```json
|
|
{
|
|
"tool": "guardrail_validate_git_operation",
|
|
"arguments": {
|
|
"operation": "push",
|
|
"args": ["origin", "feature-branch"]
|
|
}
|
|
}
|
|
```
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"violations": []
|
|
}
|
|
```
|
|
|
|
### Validated Rule Categories
|
|
|
|
| Category | Rules | Severity Range |
|
|
|----------|-------|----------------|
|
|
| git | GIT-001 to GIT-006 | error, warning |
|
|
|
|
---
|
|
|
|
## guardrail_validate_file_edit
|
|
|
|
Validates file edits for security and safety compliance.
|
|
|
|
### Description
|
|
Multi-purpose validation tool checking file paths, content changes, and security patterns in edits.
|
|
|
|
### Input Parameters
|
|
|
|
| Parameter | Type | Required | Description |
|
|
|-----------|------|----------|-------------|
|
|
| `path` | string | Yes | File path being edited |
|
|
| `content` | string | Yes | New file content |
|
|
| `original_content` | string | No | Previous content (for diff analysis) |
|
|
|
|
### Return Value
|
|
|
|
```json
|
|
{
|
|
"violations": [
|
|
{
|
|
"rule_id": "API-001",
|
|
"severity": "critical",
|
|
"message": "API key exposure detected",
|
|
"category": "security"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### Example Usage
|
|
|
|
**Request (Secret Detection):**
|
|
```json
|
|
{
|
|
"tool": "guardrail_validate_file_edit",
|
|
"arguments": {
|
|
"path": "config.js",
|
|
"content": "const apiKey = 'sk_live_abc123xyz789secretkey';"
|
|
}
|
|
}
|
|
```
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"violations": [
|
|
{
|
|
"rule_id": "API-001",
|
|
"severity": "critical",
|
|
"message": "API key exposure",
|
|
"category": "security"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
**Request (Protected File):**
|
|
```json
|
|
{
|
|
"tool": "guardrail_validate_file_edit",
|
|
"arguments": {
|
|
"path": ".claude/config.json",
|
|
"content": "{}",
|
|
"original_content": "{\"key\": \"value\"}"
|
|
}
|
|
}
|
|
```
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"violations": [
|
|
{
|
|
"rule_id": "GENERAL-001",
|
|
"severity": "error",
|
|
"message": "Cannot modify protected files (.claude/, docs/, .md files)",
|
|
"category": "general"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### Validated Rule Categories
|
|
|
|
| Category | Rules | Purpose |
|
|
|----------|-------|---------|
|
|
| file_edit | GENERAL-001 | Protected path patterns |
|
|
| content | CODE-xxx | Code security patterns |
|
|
| edit | GIT-xxx | Git-related content |
|
|
| security | API-xxx, DB-xxx, CONT-xxx, CFG-xxx | Security credentials |
|
|
|
|
---
|
|
|
|
## Validation Engine Features
|
|
|
|
### Caching
|
|
- **TTL:** 30 seconds
|
|
- **Scope:** Rule patterns cached to reduce database load
|
|
- **Invalidation:** Automatic after TTL expires
|
|
|
|
### Severity Levels
|
|
|
|
| Level | Color | Action |
|
|
|-------|-------|--------|
|
|
| critical | Red | Blocks operation |
|
|
| error | Orange | Blocks operation |
|
|
| warning | Yellow | Warns, allows with confirmation |
|
|
| info | Blue | Informational only |
|
|
|
|
### Pattern Matching
|
|
- **Engine:** Go regexp package
|
|
- **Flags:** Case-insensitive (?i) by default
|
|
- **Validation:** Pre-compiled for performance
|
|
|
|
---
|
|
|
|
## Tool Selection Guide
|
|
|
|
### Use `guardrail_validate_bash` when:
|
|
- Executing shell commands via Bash tool
|
|
- Running system commands
|
|
- Processing user-provided command strings
|
|
|
|
### Use `guardrail_validate_git_operation` when:
|
|
- Performing git push operations
|
|
- Executing git commands with arguments
|
|
- Automating git workflows
|
|
|
|
### Use `guardrail_validate_file_edit` when:
|
|
- Writing to files
|
|
- Modifying configuration files
|
|
- Processing file uploads
|
|
- Checking code for secrets before commit
|
|
|
|
---
|
|
|
|
## Related Documentation
|
|
|
|
| Document | Purpose |
|
|
|----------|---------|
|
|
| [RULES_INDEX_MAP.md](RULES_INDEX_MAP.md) | Complete rule reference |
|
|
| [RULE_PATTERNS_GUIDE.md](RULE_PATTERNS_GUIDE.md) | Writing custom patterns |
|
|
| [AGENT_GUARDRAILS.md](AGENT_GUARDRAILS.md) | Main guardrails guide |
|