streamable-httpMITupdated 15d ago
Truss threat intelligence via Model Context Protocol and a terminal assistant โ one binary: truss-mcp.
What can you do with Truss Threat Intelligence?
truss-agent-mcp
Truss threat intelligence via Model Context Protocol and a terminal assistant โ one binary: truss-mcp.
Two surfaces
| Surface | Use for | Auth |
|---|---|---|
| Remote (recommended) | Cursor, Claude Desktop, MCP registries | OAuth โ https://api.truss-security.com/mcp |
| Local stdio (legacy) | Air-gap / BYO-key / FilterQL REPL tools | TRUSS_API_KEY โ REST |
Hosted MCP (OAuth, Growth+ gate, five tools) is served by the Truss API. This package ships configs, validate-remote / doctor --remote, CLI search, and optional local stdio. Community accounts cannot consent to hosted MCP.
Not on npm yet. Install from this repo (
npm install -g .). After publish:npm install -g @truss-security/truss-agent-mcp.
Quick start
cd truss-agent-mcp
npm install && npm run build
npm install -g .
truss-mcp doctor --remote --strict-oauth # OAuth path hosts use
truss-mcp init # for CLI search / legacy stdio
truss-mcp search
Node.js 18+. Binary name truss-mcp avoids conflict with @truss-security/truss-sdk's truss command.
What you can run
| Command | What it does |
|---|---|
truss-mcp search |
Guided REPL with live MCP tools (local stdio or remote OAuth token) |
truss-mcp mcp |
Local stdio MCP server (legacy / air-gap) |
truss-mcp init |
Interactive .env setup |
truss-mcp doctor |
Validate keys and API access; --remote runs hosted OAuth doctor |
truss-mcp validate-remote <url> |
OAuth + MCP doctor (discovery, DCR, PKCE, tools) |
truss-mcp help |
Usage summary |
Guided search workflow
One REPL with MCP tools always connected. The assistant classifies your intent and asks before querying Truss API:
- Knowledge โ Truss platform, cyber security context, threat background
- Build filter โ draft FilterQL, validate, confirm
- Query โ
runexecutes confirmed filter (default 7 days) - Format โ
stixfor STIX export; JSON summaries in-thread - Detection rules โ
detect splunk,detect falcon,detect cortexfrom search results
The assistant offers next steps explicitly: build a filter, refine it, query Truss API, export JSON/STIX, or generate SIEM/EDR hunting queries.
- Wider windows (
run 30,days 30) may use more API quota - Context-only follow-ups (IOC dedupe, reformat) use thread history without re-querying
Full REPL reference: guides/truss-cli.md
Terminal display (REPL)
truss-mcp search uses color-coded, ASCII-bordered output:
- You โ your message
- MCP โ live tool trace (
โ search_threatson remote, orโ search_productson stdio) - Results โ structured product table before the assistant summary
- Truss โ assistant reply (cyan), guided offers (yellow), FilterQL blocks (magenta)
Controls: color / color on / color off / color auto ยท env TRUSS_MCP_COLOR ยท standard NO_COLOR=1
MCP host (Cursor / Claude) โ remote OAuth (recommended)
No API key in host config. Growth+ Truss account; browser OAuth consent.
{
"mcpServers": {
"truss-mcp": {
"url": "https://api.truss-security.com/mcp"
}
}
}
Samples: config/cursor.mcp.json ยท config/claude_desktop_config.json ยท guides/client-setup-cursor.md.
Legacy stdio (air-gap)
{
"mcpServers": {
"truss-mcp": {
"command": "truss-mcp",
"args": ["mcp"],
"env": { "TRUSS_API_KEY": "YOUR_KEY" }
}
}
}
See config/cursor.mcp.stdio.json and guides/getting-started.md.
Remote MCP OAuth validation (registry gate)
Use as the OAuth + MCP doctor before registry publish or release. After OAuth it requires search_threats to return at least one Truss product (id + title). The access token stays in memory for that process only unless you pass --save-token.
truss-mcp doctor --remote --strict-oauth
# or:
truss-mcp validate-remote https://api.truss-security.com/mcp --strict-oauth
After token exchange it prints an OAuth compatibility checklist (resource URI, redirects, PKCE S256, issuer match, audience vs MCP resource, truss_role), then proves MCP access with real Truss data.
Options:
truss-mcp validate-remote https://api.truss-security.com/mcp --verbose
truss-mcp validate-remote https://api.truss-security.com/mcp --strict-oauth
truss-mcp validate-remote https://api.truss-security.com/mcp --save-token /tmp/truss-mcp-token
truss-mcp validate-remote https://api.truss-security.com/mcp --token-file /tmp/truss-mcp-token
truss-mcp validate-remote https://api.truss-security.com/mcp --port 9877
truss-mcp validate-remote https://api.truss-security.com/mcp --no-open
--verboseโ HTTP statuses, key headers, truncated bodies (tokens redacted)--strict-oauthโ exit2if the OAuth checklist has WARN/FAIL (even when Truss MCP calls succeed)--save-token PATHโ write the access token for local replay (mode0600; delete after debugging)--token-file PATHโ skip browser OAuth; reuse a saved token to re-check MCP access + Truss data
Optional automated OAuth data tests (saved token + TRUSS_RUN_MCP_OAUTH=1) are documented in guides/publishing.md.
Official listing: server.json (com.truss-security/truss-mcp) ยท Tracker: guides/registry-submission.md ยท Internal metadata: config/mcp-registry.json ยท Architecture: docs/05-hosted-mcp-oauth-architecture.md
Configuration
Env load order (shell vars win): ~/.config/truss/env โ ~/.truss/.env โ ./.env
| Variable | Required for | Notes |
|---|---|---|
TRUSS_API_KEY |
local mcp / stdio search |
From Truss dashboard (legacy air-gap only) |
TRUSS_MCP_URL |
remote search / doctor |
Default https://api.truss-security.com/mcp |
TRUSS_MCP_OAUTH_TOKEN_FILE |
remote search |
Bearer token from validate-remote --save-token |
LLM_PROVIDER |
search | anthropic or openai โ set via init |
LLM_MODEL |
search | Set via init |
ANTHROPIC_API_KEY / OPENAI_API_KEY |
search | Per provider |
Full list: env.example
Documentation
Guides โ install, REPL, MCP clients, FilterQL examples
Reference โ API contract, tools, architecture (docs/README.md โ docs 01โ06)
Development
npm install && npm run build
npm test
npm run truss:search # from source without global install
Contributors / AI agents: see AGENTS.md for repo operations and conventions.
Publish: guides/publishing.md ยท Changes: CHANGELOG.md
Related
- @truss-security/truss-sdk โ API client
- truss-agent โ scheduled webhook delivery
- Truss docs โ public API / SDK documentation
MIT
Install
Add Truss Threat Intelligence to your client. Pick the one you use.
claude mcp add --transport http truss-threat-intelligence https://api.truss-security.com/mcpcodex mcp add truss-threat-intelligence --url https://api.truss-security.com/mcp{
"mcpServers": {
"truss-threat-intelligence": {
"url": "https://api.truss-security.com/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"truss-threat-intelligence": {
"type": "http",
"url": "https://api.truss-security.com/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"truss-threat-intelligence": {
"url": "https://api.truss-security.com/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"truss-threat-intelligence": {
"serverUrl": "https://api.truss-security.com/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
Score
39 / 100
Incomplete
- Documentation25/25
- Maintenance19/25
- Trust16/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 7 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint โ no local install
Version history
| Versions | Published |
|---|---|
| 1.1.0Latest | Jul 27, 2026 |