An MCP (Model Context Protocol) server for Scoring Engine - an open-source platform for running Red/White/Blue team cybersecurity competitions.
This MCP server provides programmatic access to all Scoring Engine API functionality:
- Get bar chart data (team scores)
- Get line chart data (score progression over rounds)
- Get current round data
- Get overview status for all teams and services
- Get column headers
- Get detailed competition data
- Get team statistics (placement, score)
- Get team services with status and check history
- Get current service status
- Get check history for services
- Update service account credentials (blue team)
- Update service host/port (blue team)
- Get round statistics with up/down counts
- Get active flags
- Get flag solve status
- Get flag scoring totals
- List team injects
- Get inject details
- Submit injects
- View/add comments
- List inject files
- List all notifications
- Get unread notifications
- Team/user management
- Engine control (pause/resume)
- Service configuration
- Inject template management
- Scoring and grading
- Settings management
npm install
npm run buildSet the following environment variables:
| Variable | Description | Default |
|---|---|---|
SCORING_ENGINE_URL |
Base URL of your Scoring Engine instance | http://localhost |
SCORING_ENGINE_SESSION |
Session cookie value for authentication | (empty) |
- Log in to your Scoring Engine instance in a web browser
- Open Developer Tools (F12)
- Go to Application > Cookies
- Copy the value of the
sessioncookie
Add to your Claude Desktop configuration (claude_desktop_config.json):
{
"mcpServers": {
"scoringengine": {
"command": "node",
"args": ["/path/to/scoringengine-mcp/dist/index.js"],
"env": {
"SCORING_ENGINE_URL": "https://your-scoring-engine.example.com",
"SCORING_ENGINE_SESSION": "your-session-cookie-value"
}
}
}
}Add to your Claude Code MCP settings:
{
"mcpServers": {
"scoringengine": {
"command": "node",
"args": ["/path/to/scoringengine-mcp/dist/index.js"],
"env": {
"SCORING_ENGINE_URL": "https://your-scoring-engine.example.com",
"SCORING_ENGINE_SESSION": "your-session-cookie-value"
}
}
}
}scoreboard_get_bar_data- Get team bar chart datascoreboard_get_line_data- Get team line chart data
overview_get_round_data- Get current round infooverview_get_data- Get team/service overviewoverview_get_columns- Get column headersoverview_get_detailed_data- Get detailed data for display
team_get_stats- Get team placement and scoreteam_get_services- Get team's services with detailsteam_get_services_status- Get current service status
service_get_checks- Get check historyservice_update_account- Update account credentialsservice_update_host- Update service hostnameservice_update_port- Update service port
stats_get_rounds- Get round statistics
flags_get_active- Get active flagsflags_get_solves- Get solve statusflags_get_totals- Get scoring totals
injects_list- List team injectsinject_get- Get inject detailsinject_submit- Submit an injectinject_get_comments- Get inject commentsinject_add_comment- Add a commentinject_get_files- List inject files
notifications_list- List all notificationsnotifications_unread- Get unread notifications
admin_get_teams- List all teamsadmin_add_user- Create useradmin_add_team- Create teamadmin_update_password- Change user passwordadmin_toggle_engine- Pause/resume engineadmin_get_engine_status- Check if pausedadmin_get_engine_stats- Get engine statisticsadmin_get_worker_stats- Get worker statsadmin_get_queue_stats- Get queue statsadmin_get_round_progress- Get round progressadmin_update_check- Modify check resultsadmin_update_host- Change service hostadmin_update_port- Change service portadmin_update_points- Update point valuesadmin_update_worker_queue- Assign worker queueadmin_update_target_round_time- Set round durationadmin_update_worker_refresh_time- Set refresh intervaladmin_injects_get_templates- List inject templatesadmin_injects_get_template- Get template detailsadmin_injects_create_template- Create templateadmin_injects_update_template- Update templateadmin_injects_delete_template- Delete templateadmin_inject_grade- Grade an injectadmin_injects_get_scores- Get inject scoresadmin_injects_get_bar_chart- Get inject chart dataadmin_update_setting- Update settingsadmin_update_environment_info- Update environmentadmin_update_property- Update properties
# Install dependencies
npm install
# Build
npm run build
# Watch mode
npm run watch
# Run directly with ts-node
npm run devMIT