The SWT3 MCP server runs locally alongside your AI assistant. It is not a hosted endpoint. Install it via npm and configure your MCP client to launch it.
Audience: Developers integrating AI compliance into Claude Desktop, Cursor, Windsurf, or any MCP-compatible client. No account required for local evaluation.

1. Install

npm install -g @tenova/swt3-mcp # or run directly npx @tenova/swt3-mcp

Requires Node.js 18 or later.

2. Configure Claude Desktop

Add the following to your Claude Desktop configuration file:

{ "mcpServers": { "swt3": { "command": "npx", "args": ["@tenova/swt3-mcp"], "env": { "SWT3_TENANT_ID": "your-tenant-id", "SWT3_API_KEY": "axm_live_..." } } } }

Config file location:

3. Configure Cursor

Add to .cursor/mcp.json in your project root:

{ "mcpServers": { "swt3": { "command": "npx", "args": ["@tenova/swt3-mcp"], "env": { "SWT3_TENANT_ID": "your-tenant-id", "SWT3_API_KEY": "axm_live_..." } } } }

4. Configure Windsurf

Same JSON format. Add to Windsurf's MCP configuration file using the server block above.

5. What the MCP Server Provides

CategoryCountExamples
Compliance tools 31 witness inference, guardrails, consent, RAG provenance, output filtering, incident reporting, data provenance, human review, gate evaluation, timeline reconstruction
Prompt templates 1 compliance-check
Resources 2 Server status, procedure registry

Each tool maps to a specific SWT3 procedure (e.g., AI-INF.1, AI-GRD.1, AI-CONSENT.1). Every invocation produces a cryptographic SWT3 Witness Anchor.

6. Local-Only Mode

npx @tenova/swt3-mcp

Without environment variables, the server runs in local-only mode. Anchors are generated locally but not persisted to the cloud. Useful for evaluation and development.

7. Verify It Works

After configuring, ask your AI assistant:

"What SWT3 tools are available?"

It should list all 33 compliance tools. If it does not, restart your MCP client to pick up the new configuration.

8. Witness Middleware (v0.6.5)

Already have an MCP server? The Witness Middleware wraps any MCP transport for zero-code witnessing. Every tool call automatically mints an AI-TOOL.1 anchor after the response is already sent. No changes to your tool handlers.

import { withSWT3 } from "@tenova/swt3-mcp/middleware";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

const transport = withSWT3(new StdioServerTransport(), {
  apiKey: process.env.SWT3_API_KEY,
});
await server.connect(transport);

The middleware is purely observational. It wraps the transport's send() and onmessage callbacks to observe tool call request/response pairs. The response is committed to the wire before the witness fires. Your tool calls cannot be blocked, delayed, or affected in any way. Witness failures are silently caught.

Omit the apiKey for demo mode. Anchors log to stderr instead of posting to the ledger.

9. Next Steps