Skip to content

Commit efd923c

Browse files
author
Carlos-Projects
committed
Dashboard auth, live events tab, XSS sanitization, store, CI, logging, mypy config
1 parent b4ccff4 commit efd923c

20 files changed

Lines changed: 1329 additions & 306 deletions

.github/workflows/ci.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
strategy:
13+
matrix:
14+
python-version: ["3.10", "3.11", "3.12", "3.13"]
15+
16+
steps:
17+
- uses: actions/checkout@v4
18+
19+
- name: Set up Python ${{ matrix.python-version }}
20+
uses: actions/setup-python@v5
21+
with:
22+
python-version: ${{ matrix.python-version }}
23+
24+
- name: Install dependencies
25+
run: |
26+
pip install -e ".[dev]"
27+
28+
- name: Run tests
29+
run: python -m pytest -v

.pre-commit-config.yaml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
repos:
2+
- repo: https://github.com/astral-sh/ruff-pre-commit
3+
rev: v0.11.5
4+
hooks:
5+
- id: ruff
6+
args: [--fix]
7+
- id: ruff-format
8+
9+
- repo: https://github.com/pre-commit/mirrors-mypy
10+
rev: v1.15.0
11+
hooks:
12+
- id: mypy
13+
args: [--ignore-missing-imports]
14+
additional_dependencies:
15+
- fastapi
16+
- uvicorn
17+
- httpx
18+
- jinja2
19+
- plotly
20+
- pydantic
21+
- rich
22+
files: ^mcpscope/
23+
24+
- repo: https://github.com/pre-commit/pre-commit-hooks
25+
rev: v5.0.0
26+
hooks:
27+
- id: trailing-whitespace
28+
- id: end-of-file-fixer
29+
- id: check-yaml
30+
- id: check-added-large-files

CHANGELOG.md

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,28 @@
1-
# Changelog
1+
# MCPscop
22

3-
## [0.1.0] - 2026-05-23
3+
## [Unreleased]
44

55
### Added
6-
- Initial release of MCP-Scope
7-
- Parse and import results from Cisco MCP Scanner, Cisco A2A Scanner, mcp-scan, MCPwn, and SARIF
8-
- Web dashboard with Plotly charts (severity pie, top tools bar, severity trend)
9-
- REST API with pagination, filtering, search, and scan diff
10-
- CLI: `serve`, `scan`, `import`, `report` (json/csv/pdf), `seed`, `prune`, `backup`, `restore`, `config`
11-
- SQLite storage with scan history and deduplication
12-
- Webhook and Slack alerts for critical/high findings
13-
- API key authentication for CI/CD integration
14-
- Dockerfile and GitHub Actions workflow
15-
- Auto-refresh, finding detail view, scan comparison (diff)
16-
- File size validation on import
17-
- 46 unit and HTTP integration tests
6+
- Security events API and dashboard views
7+
- JSON logging output
8+
- Dashboard authentication
9+
- MCPGuard event forwarder integration
10+
11+
### Fixed
12+
- API key validation in REST endpoints
13+
- CORS headers for cross-origin dashboard access
14+
- HTML sanitization in scan result display
15+
16+
## [0.1.0] - 2025-08-01
17+
18+
### Added
19+
- Unified dashboard for MCP/A2A scanner results
20+
- FastAPI REST API for scan ingestion and querying
21+
- SQLite storage backends
22+
- Plotly-based interactive charts and visualizations
23+
- Support for Cisco MCP/A2A scanner output
24+
- Support for mcp-scan output
25+
- Support for MCPwn output
26+
- SARIF format ingestion
27+
- Rich CLI output for terminal usage
28+
- Scan comparison and trend analysis

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,24 @@ pip install -e ".[dev]"
193193
pytest
194194
```
195195

196+
## Security Events (MCPGuard Integration)
197+
198+
MCP-Scope can receive real-time security events from MCPGuard:
199+
200+
```bash
201+
# Configure MCPGuard's config.yaml:
202+
mcpscop_url: http://localhost:8000
203+
204+
# Events appear in the "Live Events" dashboard tab
205+
```
206+
207+
| Endpoint | Method | Description |
208+
|----------|--------|-------------|
209+
| `/api/events` | POST | Ingest a security event |
210+
| `/api/events` | GET | List events (filters: severity, event_type) |
211+
| `/api/events/stats` | GET | Event statistics |
212+
| `/api/events` | DELETE | Clear all events |
213+
196214
## License
197215

198216
[MIT](LICENSE)

0 commit comments

Comments
 (0)