{
  "type": "mcp-server",
  "slug": "keendreams-security-memory",
  "name": "KeenDreams Security Memory",
  "author": "Agent9AI",
  "description": "Shared memory for security agents where every fact cites its evidence and only a human in a browser can confirm one",
  "github_url": "https://github.com/Agent9AI/keendreams-security",
  "license": "MIT",
  "tier": "contributed",
  "tags": [
    "memory",
    "knowledge-graph",
    "human-in-the-loop",
    "evidence",
    "audit-trail",
    "prompt-injection",
    "cloudflare-workers"
  ],
  "integrations": [
    "Tenable",
    "Tenable Hexa AI MCP"
  ],
  "domains": [
    "ai-security",
    "vulnerability-management"
  ],
  "date_added": "2026-09-17",
  "last_reviewed": "2026-10-26",
  "works_with_tenable_hexa_mcp": true,
  "transport": "http",
  "runtime": "node",
  "auth_method": "oauth2",
  "compatible_clients": [
    "Claude Code"
  ],
  "tools_exposed": [
    {
      "name": "recall",
      "description": "Answers a question in plain language by fusing BM25 keyword search with vector search, then filtering by trust and validity in SQL so an unconfirmed claim can never be returned as settled"
    },
    {
      "name": "find_facts",
      "description": "Exact lookup by subject, relationship, object or status, with as_of to ask what the team believed on a past date rather than what it believes now"
    },
    {
      "name": "get_entity",
      "description": "Everything currently known about one asset, vulnerability, identity or indicator, with its neighbours and a count of proposals still waiting for review"
    },
    {
      "name": "explore_graph",
      "description": "Walks outward from an entity across confirmed relationships only, up to three hops, optionally limited to certain relationship types"
    },
    {
      "name": "fact_history",
      "description": "The full timeline of one relationship: every version, what replaced it, who confirmed it and when. Built for answering an auditor rather than an agent"
    },
    {
      "name": "list_proposals",
      "description": "Facts waiting for a human decision, each with a short quote of the evidence behind it and any flags raised during ingestion"
    },
    {
      "name": "record_episode",
      "description": "Stores raw evidence as a quoted episode. Credential-shaped strings are redacted before storage and the count is recorded; instruction-like text is flagged for the reviewer"
    },
    {
      "name": "assert_fact",
      "description": "Proposes that a subject relates to an object, citing the episode that proves it. The caller cannot set the resulting status, whatever their role"
    },
    {
      "name": "suggest_facts",
      "description": "Asks the deployment's own model to read one episode and propose relationships. Every suggestion is validated like any other write, stored unconfirmed, and malformed ones are dropped and counted"
    }
  ],
  "resources_exposed": [],
  "prompts_exposed": [],
  "repo": {
    "found": true,
    "archived": false,
    "pushed_at": "2026-10-29T18:07:53Z",
    "stars": 5,
    "forks": 0,
    "open_issues": 0,
    "owner_type": "user",
    "language": "TypeScript",
    "checked_at": "2026-11-05T20:35:15.821Z"
  },
  "url": "https://exchange.tenable.com/mcp-servers/keendreams-security-memory",
  "json_url": "https://exchange.tenable.com/api/mcp-servers/keendreams-security-memory.json",
  "markdown_url": "https://exchange.tenable.com/mcp-servers/keendreams-security-memory.md",
  "source_url": "https://github.com/tenable/cyberagents-exchange/blob/main/mcp-servers/keendreams-security-memory.md"
}