---
title: Extensibility & Integration
description: "Extend Verdent's capabilities through permissions, rules, and MCP integration"
---

Verdent provides multiple ways to customize behavior and extend capabilities to match your workflow and security requirements.

---

## Extensibility Overview

| Method | Best For | Configuration |
|--------|----------|---------------|
| **Permissions** | Block dangerous commands | Settings → Permissions |
| **User Rules** | Personal coding preferences | Settings → User Rules |
| **Project Rules** | Team conventions | AGENTS.md in project root |
| **MCP Servers** | External tools, databases, APIs | Settings → MCP Servers |

---

## Permissions

Configure command permissions and security rules in **Settings → Permissions**.

### Deny Rules

Deny rules prevent potentially dangerous commands from being executed. Verdent blocks most dangerous commands by default, but you can add additional rules.

**Access:** Settings → Permissions → Deny Rules

Enter one rule per line. Deny rules take precedence over allow rules.

**Rule Syntax:**
- Use `*` as a wildcard to match any characters
- Rules are case-sensitive
- Each line represents a separate rule
- Empty lines are ignored

**Common Patterns:**

| Pattern | Purpose |
|---------|---------|
| `rm -rf /*` | Prevent recursive deletion from root |
| `curl * \| *sh*` | Block piping downloaded scripts to shell |
| `dd * of=/dev/sd*` | Prevent disk overwrite operations |

<Warning>
When Verdent attempts to execute a command that matches a deny rule, it will be blocked for your safety.
</Warning>

---

## MCP Configuration

### Understanding MCP

**Model Context Protocol (MCP)** is an open protocol that standardizes how applications provide context to LLMs. MCP servers are executables that implement the protocol. They're not database connections or API endpoints, but programs that run and communicate via JSON-RPC 2.0.

**Key Concepts:**
- **MCP Servers**: Executables (Node.js packages, Python scripts, etc.) that implement the MCP protocol
- **Configuration**: Settings → MCP Servers defines how to start each server
- **Tools**: MCP servers provide tools that Verdent can use during conversations

### Basic Setup

**Location:** Settings → MCP Servers

Configure MCP servers with:
- **Command**: Executable to run (typically `npx` for Node.js packages)
- **Args**: Arguments passed to the command (package name, connection strings, etc.)
- **Env**: Environment variables for authentication/configuration

**Common MCP Servers:**

| Server | Purpose |
|--------|---------|
| `@modelcontextprotocol/server-postgres` | PostgreSQL database access |
| `@modelcontextprotocol/server-github` | GitHub repository integration |
| `@modelcontextprotocol/server-filesystem` | File system operations |

<Tip>
**Learn More About MCP:**
- [Model Context Protocol Specification](https://modelcontextprotocol.io/specification)
- [MCP Server Registry](https://mcp.so/servers) - Browse available MCP servers
- [Official MCP Servers](https://github.com/modelcontextprotocol) - PostgreSQL, GitHub, Filesystem, and more
</Tip>

---

## Common Integration Patterns

### Database Development Workflow

**Stack:** PostgreSQL MCP Server + AGENTS.md Standards

**AGENTS.md:**
```markdown
## Database Standards
- Review migrations for destructive operations
- Test on staging before production
- Include rollback procedures
```

**Workflow:** Write migration → Verdent validates using MCP tools → Test on staging → PR documentation

---

## Multi-Environment Configuration

Configure multiple MCP servers for different environments in Settings → MCP Servers:

| Server Name | Purpose |
|-------------|---------|
| `postgres-dev` | Development database |
| `postgres-staging` | Staging environment |
| `postgres-prod` | Production (read-only recommended) |

**Best Practice:** Use environment variables for connection strings to keep credentials secure.

---

## Workspace Integration

### Per-Workspace Configuration

Each workspace can use the same MCP servers configured in Settings:

| Configuration | Behavior |
|---------------|----------|
| **Global MCP servers** | Available across all workspaces |
| **Project-specific rules** | AGENTS.md in project root |

### Multi-Project Integration

When working with multiple projects:

- Global MCP servers (Settings → MCP Servers) available across all projects
- Each project can have its own AGENTS.md for project-specific rules
- Switch between projects while maintaining MCP access

---

## Team Collaboration

### Shared AGENTS.md Standards

Commit to version control for team-wide consistency:

```markdown
# AGENTS.md

## Code Review Process
- Run Code Review before PR (Settings → Auto Generate Code Review)
- Address all security warnings
- Minimum 80% test coverage

## Database Changes
- Review migrations for destructive operations
- Test on staging before production

## MCP Server Usage
- Use postgres-staging for queries
- Never use postgres-prod for exploratory queries
```

**Benefits:** Consistent behavior, enforced standards, automatic quality gates.

---

## Complex Feature Workflow

**Example:** New database feature

```
1. Developer request → 2. Verdent generates code →
3. Database schema validation using PostgreSQL MCP →
4. Test on staging →
5. Verdent generates tests and PR
```

**Result:** Fully reviewed feature with database best practices applied.

---

## Best Practices

### Progressive Adoption

**Phase 1:** Start with basic rules in AGENTS.md
```markdown
## Code Standards
- Use TypeScript strict mode
- Run tests before commit
```

**Phase 2:** Add MCP servers (Settings → MCP Servers)
```json
{
  "mcpServers": {
    "postgres-staging": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://user:password@staging-db:5432/myapp"
      ]
    }
  }
}
```

**Phase 3:** Define MCP usage guidelines in AGENTS.md
```markdown
## MCP Usage
- Use postgres-staging for queries
- Never use postgres-prod for exploratory queries
```

### Strategic Combinations

| Combination | Purpose | Example |
|-------------|---------|---------|
| Rules + MCP | Rules define *when*, MCP provides *tools* | AGENTS.md defines standards, MCP executes checks |
| Multiple MCPs | Different servers for different concerns | Security + Database + API testing |

---

## Troubleshooting

<Tabs>
  <Tab title="Permission Issues">
    **Problem:** Command unexpectedly blocked

    **Check:**
    - Review deny rules in Settings → Permissions
    - Check if pattern matches unintended commands
    - Verify wildcard usage is correct

    **Solution:** Refine deny rule pattern to be more specific
  </Tab>

  <Tab title="AGENTS.md Issues">
    **Problem:** AGENTS.md rules not being applied

    **Check:**
    - **Location:** File is in project root directory
    - **Syntax:** Valid Markdown with no parsing errors
    - **Directive Style:** Use specific commands ("Always use..." not "Try to...")
    - **Session:** Start new conversation to test fresh rule application
  </Tab>

  <Tab title="MCP Server Issues">
    **Problem:** MCP server fails to start or connect

    **Check:**
    - **Configuration:** Server configured correctly in Settings → MCP Servers
    - **Command:** Executable path is correct
    - **Args:** Arguments are properly formatted
    - **Environment:** Required environment variables are set

    **Debug Steps:**
    1. Test command manually in terminal: `npx -y @modelcontextprotocol/server-postgres "postgresql://..."`
    2. Check environment variables are set
    3. Review Verdent logs for specific error messages
  </Tab>
</Tabs>

---

## See Also

<CardGroup cols={2}>
  <Card title="Rule Systems" icon="book" href="/docs/verdent/agents-rules/rule-systems">
    Complete rules documentation
  </Card>
  <Card title="Settings" icon="gear" href="/docs/verdent/configuration/settings">
    All configuration options
  </Card>
</CardGroup>
