Nightward includes a stdio MCP server:
nw mcp serveThe server is a first-class Nightward surface for AI clients. It exposes scan, analysis, policy, report, provider, rule, prompt, bounded action preview, and approval-ticket workflows without letting MCP clients self-confirm local writes.
- Negotiates MCP
2025-11-25and remains compatible with2025-06-18. - Declares
tools,resources, andpromptscapabilities. - Provides strict tool input schemas with
additionalProperties: false. - Enforces those input schemas server-side, including unknown-key rejection, required fields, type checks, severity enums, and integer bounds.
- Returns
structuredContentplus text fallback for tool results. - Reports tool execution failures as MCP tool results with
isError: true. - Adds output schemas and tool annotations for read-only, idempotent, and open-world hints.
nightward_scannightward_doctornightward_findingsnightward_explain_findingnightward_analysisnightward_explain_signalnightward_policy_checknightward_fix_plannightward_report_historynightward_report_changesnightward_actions_listnightward_action_previewnightward_action_requestnightward_action_statusnightward_action_apply_approvednightward_rulesnightward_providers
MCP can list and preview shared action registry actions. To run one, the client calls nightward_action_request, then waits for the user to approve the exact one-time ticket in the Nightward CLI, TUI, or Raycast extension. Clients can call nightward_action_status while waiting to check whether the ticket is pending, approved, denied, expired, or already applied.
nightward_action_apply_approved consumes only that approved exact one-time ticket. Legacy nightward_action_apply is intentionally blocked for MCP clients; direct calls return a tool-result error before the action registry is reached.
nightward://latest-summarynightward://latest-reportnightward://rulesnightward://providersnightward://schedulenightward://actionsnightward://disclosurenightward://action-approvalsnightward://report-history
audit_my_ai_setupexplain_top_risksfix_this_findingset_up_providerscompare_reports
{
"mcpServers": {
"nightward": {
"command": "nw",
"args": ["mcp", "serve"]
}
}
}VS Code-style clients use servers plus type:
{
"servers": {
"nightward": {
"type": "stdio",
"command": "nw",
"args": ["mcp", "serve"]
}
}
}Use an absolute command path if the AI client does not inherit the same PATH as your login shell.
Nightward uses the existing npm launcher as the MCP Registry package target:
- package:
@jsonbored/nightward - registry name:
io.github.jsonbored/nightward - package field:
mcpName - metadata file:
server.json
CI validates that server.json and packages/npm/package.json agree before the npm package is considered release-ready.
- Stdio only; no HTTP listener.
- No telemetry.
- No default network calls.
- Online-capable providers remain blocked unless explicitly allowed.
- MCP cannot self-confirm local writes.
- MCP cannot accept the beta responsibility disclosure (Nightward's local one-time acknowledgement that write-capable beta actions are user-authorized).
- MCP can request approvals, read approval status, and apply only exact tickets already approved outside the MCP request.
- No live MCP/agent config mutation in MCP v1.
- Approval request files live under Nightward-owned state, expire, reject symlinked storage paths, are redacted before MCP output, and are audited alongside final action results.
- Workspace and explicit report-diff paths must stay under
NIGHTWARD_HOME, exist as the expected regular file or directory type, avoid symlink components, and pass the existing bounded report-size checks. - Tool/resource/prompt output is bounded and redacted before it reaches the client.