Skip to main content
Glama
beaglesecurity

Beagle Security MCP Server

Official
README.md
# Beagle Security MCP Server

This is a Model Context Protocol (MCP) server that provides integration with the Beagle Security API. It allows you to manage projects, applications, and automated security testing through the Beagle Security platform.

## Features

- **Project Management**: Create, modify, list, and delete projects
- **Application Management**: Create, get, modify, list, and delete applications
- **Domain Verification**: Get verification signatures and verify domain ownership with multiple signature types
- **Security Testing**: Start, monitor, stop, and retrieve results from automated penetration tests
- **Team Support**: Work with team projects and tests

## Installation

### Option 1: Docker (Recommended)

1. Clone this repository
2. Set up your environment variables:
   ```bash
   cp .env.example .env
   # Edit .env with your API token
   ```
3. Build and run with Docker:
   ```bash
   npm run docker:build
   npm run docker:run
   ```

Or use Docker Compose:
```bash
docker-compose up -d
```

### Option 2: Local Installation

1. Clone this repository
2. Install dependencies:
   ```bash
   npm install
   ```
3. Build the project:
   ```bash
   npm run build
   ```

## Configuration

### Environment Variables

Set your Beagle Security API token as an environment variable:

```bash
export BEAGLE_SECURITY_API_TOKEN=your_api_token_here
```

You can obtain an API token from your Beagle Security account settings (Profile → Personal access token).

### MCP Configuration

#### Docker Configuration

Add the server to your MCP configuration file:

```json
{
  "mcpServers": {
    "beagle-security": {
      "command": "docker",
      "args": [
        "run", 
        "--rm", 
        "-i", 
        "--env", "BEAGLE_SECURITY_API_TOKEN=your_api_token_here",
        "--env", "NODE_ENV=production",
        "mcp/beagle-security-mcp-server"
      ]
    }
  }
}
```

#### Local Configuration

For local installations:

```json
{
  "mcpServers": {
    "beagle-security": {
      "command": "node",
      "args": ["path/to/beagle-security-mcp-server/build/index.js"],
      "env": {
        "BEAGLE_SECURITY_API_TOKEN": "your_api_token_here"
      }
    }
  }
}
```

## Available Tools (18 Total)

### Project Management (4 tools)

- `beagle_create_project`: Create a new project
- `beagle_modify_project`: Modify an existing project
- `beagle_list_projects`: List all projects and applications
- `beagle_delete_project`: Delete a project

### Application Management (5 tools)

- `beagle_create_application`: Create a new application in a project
- `beagle_get_application`: Get application details by token
- `beagle_modify_application`: Modify an existing application
- `beagle_list_applications`: List all applications under a project
- `beagle_delete_application`: Delete an application

### Domain Verification (2 tools)

- `beagle_get_domain_signature`: Get domain verification signature
- `beagle_verify_domain`: Complete domain verification with FILE, DNS, or API signature types

### Security Testing (7 tools)

- `beagle_start_test`: Start an automated penetration test
- `beagle_get_test_status`: Get the status of a running test
- `beagle_stop_test`: Stop a running test
- `beagle_get_test_result`: Get detailed test results in JSON format
- `beagle_list_test_sessions`: List all test sessions for an application
- `beagle_list_running_tests`: List all running tests for user or team (supports team filtering)


## Testing

### Comprehensive Test Suite

Run all tests to validate functionality:

```bash
# Run complete test suite (recommended)
npm run test:all

# Test individual components
npm run test:tools          # Test all 18 MCP tools
npm run test:integration    # Integration & API tests
npm run test                # Unit tests

# Test with real API (requires token)
BEAGLE_SECURITY_API_TOKEN=your_token npm run test:all
```

### Test Features

- **Tool Validation**: Tests all 18 tools with proper parameters
- **API Integration**: Live API testing when credentials provided
- **Error Handling**: Validates error scenarios and edge cases
- **Cross-Platform**: Works on Linux, macOS, and Windows
- **Docker Testing**: Validates container functionality

For detailed testing information, see [TESTING.md](./TESTING.md).

## Development

### Docker Development

```bash
# Build Docker image
npm run docker:build

# Run with Docker
npm run docker:run

# Use Docker Compose
npm run docker:compose:up

# View logs
npm run docker:compose:logs

# Stop services
npm run docker:compose:down
```

### Local Development

```bash
# Running in Development Mode
npm run dev

# Building
npm run build

# Starting the Server
npm start
```

## API Reference

This server implements the Beagle Security API v2.0. For detailed API documentation, visit:
https://beaglesecurity.com/developer/apidoc

## API Compatibility

This server implements **Beagle Security API v2.0** with:
- ✅ **All endpoints verified** against official documentation
- ✅ **Correct parameter naming** (camelCase format)
- ✅ **Proper error handling** for all API response codes
- ✅ **Latest API features** including domain verification types

## Error Handling

The server includes comprehensive error handling for:
- Authentication errors (invalid API tokens)
- HTTP errors (network issues, server errors)  
- Validation errors (missing required parameters)
- API-specific errors (returned by Beagle Security)
- Cross-platform compatibility issues

## Security Considerations

- Keep your API token secure and never commit it to version control
- Use environment variables or secure configuration management
- Ensure proper scopes are set when generating API tokens
- Monitor API usage to detect unauthorized access

## Troubleshooting

### Common Issues

1. **Server won't start**: Run `npm run build` to check for build errors
2. **API calls failing**: Verify your `BEAGLE_SECURITY_API_TOKEN` is valid
3. **Docker issues**: Ensure Docker is installed and running
4. **macOS timeout errors**: Install with `brew install coreutils` or tests will auto-fallback

### Getting Help

- Run the test suite: `npm run test:all`
- Check the logs in development mode: `NODE_ENV=development npm start`
- Review [TESTING.md](./TESTING.md) for detailed troubleshooting

## API Reference

Complete API documentation: https://beaglesecurity.com/developer/apidoc

## License

MIT License

TDQS

B3.4/5.0

Scored across 17 tools

Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. The tools are organized around specific resources (applications, projects, tests) and actions (create, delete, get, list, modify, start, stop, verify), making it easy for an agent to select the correct tool for any operation without confusion.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with the prefix 'beagle_'. This uniform naming convention (e.g., beagle_create_application, beagle_get_test_result) ensures predictability and readability throughout the tool set, with no deviations in style or structure.

Tool Count5/5

With 17 tools, the server is well-scoped for its purpose of managing Beagle Security projects, applications, and tests. Each tool earns its place by covering essential operations like CRUD for projects and applications, test management, and domain verification, without being overly sparse or bloated.

Completeness5/5

The tool set provides complete CRUD/lifecycle coverage for the domain of security testing management. It includes creation, retrieval, listing, modification, and deletion for projects and applications, along with comprehensive test operations (start, stop, status, results, sessions) and domain verification, leaving no obvious gaps for agent workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues