MCP Server

tripwire-mcp is a Model Context Protocol server that lets MCP-capable clients such as Claude Desktop and Claude Code work with your tripwires. Ask Claude to "put a postgres decoy in the prod namespace", "which tripwires have been touched this week?" or "renew everything expiring in the next month", and it does it through the same API the web app uses.

It speaks JSON-RPC 2.0 over stdio, so it works identically against the SaaS API (https://api.gettripwires.com) and a self-hosted control server. The binary depends only on the Go standard library — no third-party dependencies.

What it can see

The server has no privileges of its own. Every call carries your credential and your active organization, and the API applies exactly the permissions it applies in the browser:

  • Only organizations you are a member of. Tripwires belonging to anyone else's organization are neither listed nor addressable — asking for one by ID reports it as not found.
  • Only namespaces you have been granted. A namespace you cannot see behaves as though it does not exist.
  • Your role decides what you may change: viewer is read-only; member and above can create, update and delete.
  • Nothing installation-wide. Platform users, settings, billing and system health are not reachable from here.

Install

Download tripwire-mcp from the releases page (published alongside the CLI for Linux, macOS and Windows), or build from source:

go build -o tripwire-mcp ./cmd/mcp

Authenticate

The server takes a bearer credential: a scoped API key (tw_…) or a session JWT. Mint a key under Settings → API Keys, or with tripwire keys create. It needs:

ScopeNeeded for
org:readlist_orgs, list_org_members, whoami — how the server discovers which organizations you belong to
tripwire:readListing tripwires, reading one, detections, analytics
tripwire:createcreate_tripwire
tripwire:updateupdate_tripwire, renew_tripwire, reset_tripwire
tripwire:deletedelete_tripwire

Grant only what you want the assistant to be able to do — leaving tripwire:delete off is a cheap way to make sure it cannot remove anything.

Configuration comes from flags or environment variables (flags win):

FlagEnvironmentMeaning
--endpointTRIPWIRE_ENDPOINTAPI base URL
--api-keyTRIPWIRE_API_KEYAPI key or JWT
--orgTRIPWIRE_ORGDefault organization ID (org_…). Individual tools can override it.

--org takes the organization's ID, not its name. Find it with tripwire orgs list, or leave it out and ask the assistant to list your organizations first.

Configure your client

Claude Desktop / generic MCP host config:

{
  "mcpServers": {
    "tripwire": {
      "command": "tripwire-mcp",
      "env": {
        "TRIPWIRE_ENDPOINT": "https://api.gettripwires.com",
        "TRIPWIRE_API_KEY": "tw_your_api_key",
        "TRIPWIRE_ORG": "org_your_organization_id"
      }
    }
  }
}

Claude Code:

claude mcp add tripwire -- tripwire-mcp \
  --endpoint https://api.gettripwires.com \
  --api-key tw_your_api_key \
  --org org_your_organization_id

A stdio MCP server does not inherit your shell

Exporting TRIPWIRE_API_KEY in .bashrc is not enough on its own — the value has to be in the env block or on the command line. Claude Code expands ${VAR} inside its config, which lets you keep the key out of the file: "env": { "TRIPWIRE_API_KEY": "${TRIPWIRE_API_KEY}" }

Self-hosted installations point the endpoint at your control server, e.g. https://tripwire.internal.example.com.

Tools

Every tool takes an optional org_id, so one session can work across several of your organizations without restarting the server.

ToolAction
list_orgsThe organizations you belong to, and your role in each
list_org_membersMembers of one of your organizations, with roles and namespace grants
whoamiThe identity behind the configured credential
create_tripwireCreate a decoy: name, technology, optional namespace, tags and lease
list_tripwiresList your tripwires, with search, technology/status/tag filters, sort and paging
get_tripwireOne tripwire in full, including its trigger artifact
update_tripwireChange name, destination, namespace, tags or expiry
renew_tripwireExtend the lease by a duration (e.g. 720h)
reset_tripwireRe-baseline the trip count; optionally purge the detection records
delete_tripwireDelete a tripwire and its detections
list_detectionsDetections recorded against one tripwire: source IP, time, captured context
analyticsSummary of activity across your estate (self-hosted installations)

Security

  • The key is you. Store it in your client's secret store, never in shared config, and scope it to the minimum the assistant needs.
  • Destructive tools — delete_tripwire, and reset_tripwire with purge — permanently remove evidence. Review the model's proposed calls before approving them, or withhold tripwire:delete entirely.
  • Nothing here is installation-wide: administering the platform is a separate surface, deliberately not exposed through MCP.
  • Revoke a key at any time under Settings → API Keys; the server has no other way in.

See also: the developer CLI.