Portuguese Cybersecurity MCP
# Portuguese Cybersecurity MCP
<!-- ANSVAR-CTA-BEGIN -->
> **The Portuguese cybersecurity corpus is now served through the Ansvar Gateway.** Connect your AI assistant (Claude, Copilot, Cursor, custom MCP client) to `https://gateway.ansvar.eu/mcp` — one OAuth connection, free tier available, covering this corpus plus EU regulations, national law across dozens of audited jurisdictions (Europe + the US), and CVE/security intelligence, every result with a verbatim source citation. Start at https://ansvar.eu/docs/quickstart
### Connect
**Claude Code** (one line):
```bash
claude mcp add ansvar --transport http https://gateway.ansvar.eu/mcp
```
**Claude Desktop / Cursor** — add to `claude_desktop_config.json` (or `mcp.json`):
```json
{
"mcpServers": {
"ansvar": {
"type": "url",
"url": "https://gateway.ansvar.eu/mcp"
}
}
}
```
**Claude.ai** — Settings → Connectors → Add custom connector → paste `https://gateway.ansvar.eu/mcp`
First request opens an OAuth signup flow (setup details: [ansvar.eu/docs/quickstart](https://ansvar.eu/docs/quickstart)). After signup, your client is bound to your account; tier (free / premium / team / company) determines fan-out, quota, and which downstream MCPs are reachable.
---
## Self-host this MCP
You can also clone this repo and build the corpus yourself. The schema,
fetcher, and tool implementations all live here. What is not in the repo is
the pre-built database — TDM and standards-licensing constraints on the
upstream sources mean we host the corpus on Ansvar infrastructure rather
than redistribute it as a public artifact.
Build your own: run this repo's ingestion script (entry-point varies per
repo — typically `scripts/ingest.sh`, `npm run ingest`, or `make ingest`;
check the repo root).
<!-- ANSVAR-CTA-END -->
**Portuguese cybersecurity data for AI compliance tools.**
[](https://opensource.org/licenses/Apache-2.0)
[](https://github.com/Ansvar-Systems/portuguese-cybersecurity-mcp/actions/workflows/ci.yml)
Query Portuguese cybersecurity data -- regulations, decisions, and requirements from CNCS (Centro Nacional de Ciberseguranca) -- directly from Claude, Cursor, or any MCP-compatible client.
Built by [Ansvar Systems](https://ansvar.eu) -- Stockholm, Sweden
---
## Available Tools (6)
| Tool | Description |
|------|-------------|
| `pt_cyber_search_guidance` | Full-text search across CNCS (Centro Nacional de Ciberseguranca) guidelines and technical reports. Covers cybersecuri... |
| `pt_cyber_get_guidance` | Get a specific CNCS guidance document by reference (e.g., |
| `pt_cyber_search_advisories` | Search CNCS security advisories and alerts. Returns advisories with severity, affected products, and CVE references w... |
| `pt_cyber_get_advisory` | Get a specific CNCS security advisory by reference (e.g., |
| `pt_cyber_list_frameworks` | List all CNCS frameworks and guidance series covered in this MCP, including the Portuguese national cybersecurity str... |
| `pt_cyber_about` | Return metadata about this MCP server: version, data source, coverage, and tool list. |
All tools return structured data with source references and timestamps.
---
## Data Sources and Freshness
All content is sourced from official Portuguese regulatory publications:
- **CNCS (Centro Nacional de Ciberseguranca)** -- Official regulatory authority
### Data Currency
- Database updates are periodic and may lag official publications
- Freshness checks run via GitHub Actions workflows
- Last-updated timestamps in tool responses indicate data age
See `sources.yml` for full provenance metadata.
---
## Security
This project uses multiple layers of automated security scanning:
| Scanner | What It Does | Schedule |
|---------|-------------|----------|
| **CodeQL** | Static analysis for security vulnerabilities | Weekly + PRs |
| **Semgrep** | SAST scanning (OWASP top 10, secrets, TypeScript) | Every push |
| **Gitleaks** | Secret detection across git history | Every push |
| **Trivy** | CVE scanning on filesystem and npm dependencies | Daily |
| **Docker Security** | Container image scanning + SBOM generation | Daily |
| **Socket.dev** | Supply chain attack detection | PRs |
| **Dependabot** | Automated dependency updates | Weekly |
See [SECURITY.md](SECURITY.md) for the full policy and vulnerability reporting.
---
## Important Disclaimers
### Not Regulatory Advice
> **THIS TOOL IS NOT REGULATORY OR LEGAL ADVICE**
>
> Regulatory data is sourced from official publications by CNCS (Centro Nacional de Ciberseguranca). However:
> - This is a **research tool**, not a substitute for professional regulatory counsel
> - **Verify all references** against primary sources before making compliance decisions
> - **Coverage may be incomplete** -- do not rely solely on this for regulatory research
**Before using professionally, read:** [DISCLAIMER.md](DISCLAIMER.md) | [PRIVACY.md](PRIVACY.md)
### Confidentiality
Queries go through the Claude API. For privileged or confidential matters, use on-premise deployment. See [PRIVACY.md](PRIVACY.md) for details.
---
## Development
### Setup
```bash
git clone https://github.com/Ansvar-Systems/portuguese-cybersecurity-mcp
cd portuguese-cybersecurity-mcp
npm install
npm run build
npm test
```
### Running Locally
```bash
npm run dev # Start MCP server
npx @anthropic/mcp-inspector node dist/index.js # Test with MCP Inspector
```
### Data Management
```bash
npm run build:db # Rebuild SQLite database from seed data
npm run check-updates # Check for new regulatory data
```
---
## More Ansvar MCPs
Full fleet coverage at [ansvar.eu/coverage](https://ansvar.eu/coverage).
## Contributing
Contributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
---
## License
Apache License 2.0. See [LICENSE](./LICENSE) for details.
### Data Licenses
Regulatory data sourced from official government publications. See `sources.yml` for per-source licensing details.
---
## About Ansvar Systems
We build AI-powered compliance and legal research tools for the European market. Our MCP fleet provides structured, verified regulatory data to AI assistants -- so compliance professionals can work with accurate sources instead of guessing.
**[ansvar.eu](https://ansvar.eu)** -- Stockholm, Sweden
---
<p align="center">
<sub>Built with care in Stockholm, Sweden</sub>
</p>
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: search guidance, get specific guidance, search advisories, get specific advisory, list frameworks, and server metadata. No ambiguity or overlap.
All tools follow a consistent 'pt_cyber_verb_noun' pattern using snake_case (search_guidance, get_guidance, search_advisories, get_advisory, list_frameworks, about). The prefix unifies them.
6 tools is well-scoped for a focused domain of Portuguese cybersecurity resources. Each tool serves a specific need without bloat or insufficiency.
The tool surface covers search and retrieval of guidance and advisories, plus listing frameworks and server metadata. Minor gaps like direct framework detail retrieval or combined search are absent but not critical for the domain.