# Smart Miners Connector external review service

This MCP server exposes two narrow tools to an authorized independent reviewer:

1. `review_connector_release` displays the four mandatory Dutch security
   questions and answers.
2. `issue_installation_code` returns an installation-bound `SMC1` code only
   when the exact package is present in the independently approved release
   registry.

The model cannot choose the verdict or create a valid code. The server derives
the answers from its protected release registry and signs the complete
attestation with an ECDSA P-256 private key. The Windows app contains only the
corresponding public key and verifies the code locally.

## Development

```powershell
npm install
$env:SMART_MINERS_APPROVED_RELEASES_JSON='C:\secure\approved-releases.json'
$env:SMART_MINERS_AUDIT_PRIVATE_KEY_PEM=(Get-Content -Raw 'C:\secure\audit-private-key.pem')
$env:SMART_MINERS_MCP_ALLOWED_HOSTS='localhost,127.0.0.1'
npm start
```

Inspect `http://localhost:3100/mcp` with MCP Inspector. Production must use a
stable public HTTPS `/mcp` endpoint, an external secrets manager, a real
approved-release registry, host validation, rate limiting at the edge and
operational logging that never records activation codes or key material.

The supplied example registry deliberately has
`independentAuditApproved: false`. Therefore the current development/release
candidate cannot receive a production installation code.

The tools do not read customer-specific data. If account-specific functions
are added later, the MCP resource server must enforce OAuth 2.1 authorization;
the model must never be treated as the authorization layer.
