Skip to main content
Glama
Shannon Lite MCP

Shannon Lite MCP

README.md
<h1 align="center">Shannon Lite MCP</h1>

<p align="center">
  <strong>Model Context Protocol server for end-to-end Shannon Lite security workflows</strong>
</p>

<p align="center">
  <a href="https://www.npmjs.com/package/shannon-lite-mcp"><img src="https://img.shields.io/npm/v/shannon-lite-mcp" alt="NPM Version"></a>
  <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="MIT License"></a>
  <a href="https://github.com/devinoldenburg/shannon-mcp/actions/workflows/ci.yml"><img src="https://github.com/devinoldenburg/shannon-mcp/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
  <a href="https://modelcontextprotocol.io/"><img src="https://img.shields.io/badge/MCP-Compatible-8A2BE2" alt="MCP Compatible"></a>
</p>

This package enables AI assistants and applications to configure Shannon, start scans, monitor runtime, inspect workspaces, and read reports programmatically.

## Features

- Full Shannon Lite workflow support through MCP tools
- Built-in config management for `~/.shannon/config.toml`
- Scan orchestration (`start`, `status`, `workspaces`, logs, report reads)
- Safe destructive operations with explicit confirmation tokens
- Smart CLI execution (`shannon` binary or fallback to `npx @keygraph/shannon`)
- TypeScript implementation with strict Zod validation

## Setup

### Prerequisites

- Node.js 18+
- Docker (daemon running)
- Shannon CLI access (`shannon` in `PATH` or `npx` available)

### MCP Configuration

If you are running this repo locally (unpublished package), build first:

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

Then use command `node` with args `[/absolute/path/to/shannon-mcp/dist/index.js]` in your MCP client configuration.

#### For Claude Desktop

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

```json
{
  "mcpServers": {
    "shannon-lite": {
      "command": "npx",
      "args": ["-y", "shannon-lite-mcp"]
    }
  }
}
```

#### For Cursor

Add the configuration to your Cursor settings:

```json
{
  "mcpServers": {
    "shannon-lite": {
      "command": "npx",
      "args": ["-y", "shannon-lite-mcp"]
    }
  }
}
```

#### For Windsurf

Add the configuration to your Windsurf settings:

```json
{
  "mcpServers": {
    "shannon-lite": {
      "command": "npx",
      "args": ["-y", "shannon-lite-mcp"]
    }
  }
}
```

#### For Warp

Add the following to your Warp session setup:

```json
{
  "shannon-lite": {
    "command": "npx",
    "args": ["-y", "shannon-lite-mcp"],
    "working_directory": null,
    "start_on_launch": true
  }
}
```

#### For Other MCP Clients

Use standard MCP server settings:

- **Command**: `npx -y shannon-lite-mcp` or `node /path/to/shannon-mcp/dist/index.js`
- **Transport**: stdio

## Available MCP Tools

- `shannon_health` - Check Docker/Node/CLI readiness, config, and workspace state
- `shannon_config_set` - Write `~/.shannon/config.toml` for `anthropic`, `custom_base_url`, `bedrock`, `vertex`, or `router`
- `shannon_config_get` - Read current config with secret masking
- `shannon_start_scan` - Start a scan with `url`, `repo`, and optional `config`, `workspace`, `output`, `pipeline_testing`, `router`
- `shannon_status` - Get Temporal + worker runtime status
- `shannon_list_workspaces` - List known Shannon workspaces
- `shannon_get_workspace` - Return detailed workspace/session metadata
- `shannon_read_workflow_log` - Read workspace `workflow.log` (tail by default)
- `shannon_read_report` - Read final report from workspace deliverables
- `shannon_stop` - Stop Shannon runtime (clean mode requires confirmation token)
- `shannon_uninstall` - Remove `~/.shannon` and stop runtime (requires confirmation token)

## Safety Notice

Shannon Lite can run real security test flows. Use only on systems you are authorized to test.

Destructive operations require exact confirmation tokens:

- `shannon_stop` with `clean=true`: `I_UNDERSTAND_THIS_WILL_REMOVE_SHANNON_DATA`
- `shannon_uninstall`: `DELETE_SHANNON_HOME_AND_STOP_SHANNON`

## Usage Examples

### Configure Anthropic API Key

```javascript
await mcp.callTool("shannon_config_set", {
  provider: "anthropic",
  auth_method: "api_key",
  api_key: "sk-ant-..."
});
```

### Start a Scan

```javascript
await mcp.callTool("shannon_start_scan", {
  url: "https://example.com",
  repo: "/absolute/path/to/repo",
  workspace: "q2-audit"
});
```

### Read Final Report

```javascript
await mcp.callTool("shannon_read_report", {
  workspace: "q2-audit"
});
```

### Clean Stop (destructive)

```javascript
await mcp.callTool("shannon_stop", {
  clean: true,
  confirm_destructive: "I_UNDERSTAND_THIS_WILL_REMOVE_SHANNON_DATA"
});
```

## Development Setup

### Prerequisites

- Node.js 18+
- npm

### Local Development

1. **Install dependencies**:

   ```bash
   npm install
   ```

2. **Build the project**:

   ```bash
   npm run build
   ```

3. **Run in development mode**:

   ```bash
   npm run dev
   ```

4. **Run tests**:

   ```bash
   npm run test:run
   ```

## Contributing

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## License

This project is licensed under the MIT License - see the `LICENSE` file for details.

## Links

- [Shannon (Keygraph)](https://github.com/KeygraphHQ/shannon)
- [Model Context Protocol Specification](https://spec.modelcontextprotocol.io/)
- [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk)

## Support

- Create an issue for bug reports or feature requests
- Check existing issues before creating new ones
- Include reproduction steps, environment info, and relevant logs

---

Made with care for the security engineering community.

TDQS

A3.7/5.0

Scored across 11 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: config, workspace management, health, scan execution, report reading, runtime control, and uninstall. No overlapping functionality.

Naming Consistency5/5

All tools follow the consistent pattern `shannon_<verb>` or `shannon_<verb>_<noun>` (e.g., shannon_config_get, shannon_list_workspaces, shannon_start_scan, shannon_stop).

Tool Count5/5

11 tools cover the essential operations for managing Shannon Lite without being excessive. The scope is well-defined for typical use cases.

Completeness4/5

Core workflows are covered: config, workspace listing, scan initiation, report reading, health checks, stop, and uninstall. Minor gaps exist (no explicit workspace creation or scan status polling), but agents can work around them.