项目简介

TinyBrain v2.0是一个功能强大的MCP服务器,旨在为LLM(大型语言模型)提供安全领域专业的记忆存储和上下文管理服务。它利用轻量级Go语言后端PocketBase作为嵌入式数据库,能够高效地管理安全评估会话、存储安全发现(作为"记忆")、追踪它们之间的关系,并支持上下文快照和任务进度跟踪。通过标准化的MCP协议,LLM客户端可以无缝地访问这些上下文信息并调用其提供的工具,从而增强LLM在安全分析、漏洞管理和威胁建模等方面的能力。

主要功能点

  • 会话管理: 创建、检索、更新和删除安全评估会话,为LLM提供结构化的工作空间。
  • 记忆存储: 存储、检索、搜索和更新安全发现、漏洞、利用方式、技术等关键信息,作为LLM的长期记忆。支持优先级、置信度、标签和来源等元数据。
  • 关系追踪: 建立和管理不同记忆条目之间的关系(例如,漏洞与利用方式、攻击技术与缓解措施),丰富LLM的上下文理解。
  • 上下文快照: 在长时间运行的评估中,创建并管理LLM上下文的快照,以便随时恢复或回顾特定状态。
  • 任务进度: 跟踪多阶段安全任务的进展,为LLM提供实时的任务状态信息,包括阶段、状态和完成百分比。
  • 安全数据检索: 查询国家漏洞数据库(NVD)的CVE信息、MITRE ATT&CK技术以及OWASP测试程序,作为LLM的外部知识库。
  • 合规性与风险分析: 提供将漏洞映射到CVE、分析风险关联以及映射到OWASP Top 10、NIST SP 800-53、ISO 27001和PCI DSS等合规性标准的能力。
  • 系统诊断与统计: 提供内存使用情况、数据库状态和系统诊断信息,便于监控和维护。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/rainmana/tinybrain.git
    cd tinybrain
  2. 构建服务器:

    go build -o tinybrain_server cmd/server/main.go

    这将在 'tinybrain' 目录下生成一个名为 'tinybrain_server' 的可执行文件。

  3. 运行服务器:

    ./tinybrain_server

    服务器将使用默认数据目录 './data'。您也可以通过设置环境变量 'TINYBRAIN_DATA_DIR' 来指定数据目录,例如:

    TINYBRAIN_DATA_DIR=/path/to/your/custom/data ./tinybrain_server

    服务器启动后,它会监听标准输入 (STDIO) 以接收MCP JSON-RPC请求,并通过标准输出 (STDIO) 返回响应。它还会启动一个嵌入式的PocketBase实例,提供REST API、实时功能和管理UI。

服务器配置 (MCP客户端使用)

MCP服务器通过JSON-RPC over STDIO与客户端通信。LLM客户端(如Cursor)可以通过以下JSON配置与TinyBrain MCP服务器建立连接。请将以下配置保存为 'tinybrain-mcp-config.json' 文件(例如),并根据您的实际情况进行修改:

{
  "serverName": "TinyBrain LLM Memory",
  "command": "/path/to/your/tinybrain_server",
  "args": [],
  "env": {
    // 可选:如果您在运行服务器时设置了自定义数据目录,请在此处指定,例如:
    // "TINYBRAIN_DATA_DIR": "/path/to/your/custom/data"
  },
  "transport": "stdio",
  "initializationOptions": {
    // 如果有额外的初始化选项,可在此处添加,但目前TinyBrain不需要特定的初始化选项
  }
}

重要提示:

  • 'command': 请务必将 '/path/to/your/tinybrain_server' 替换为实际 'tinybrain_server' 可执行文件的完整路径。
  • 'env': 如果您指定了自定义数据目录,请取消注释 'TINYBRAIN_DATA_DIR' 并将其值设置为您实际的数据目录路径,以确保MCP服务器和PocketBase后端使用相同的数据。

基本使用方法 (LLM客户端集成)

一旦TinyBrain MCP服务器通过上述配置与您的LLM客户端连接,LLM即可通过其内置的工具调用机制与服务器进行交互。以下是一些常用工具的示例:

  1. 创建会话 ('create_session'):

    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "tools/call",
      "params": {
        "name": "create_session",
        "arguments": {
          "name": "My Latest Security Audit",
          "task_type": "security_review",
          "description": "Performing a quarterly security audit of the financial application."
        }
      }
    }

    客户端将获得一个包含 'session_id' 的响应,LLM应记录此ID以用于后续操作。

  2. 存储记忆 ('store_memory'):

    {
      "jsonrpc": "2.0",
      "id": 2,
      "method": "tools/call",
      "params": {
        "name": "store_memory",
        "arguments": {
          "session_id": "your-session-id", 
          "title": "Broken Access Control (IDOR)",
          "content": "Users can access other users' sensitive data by manipulating resource IDs in API requests (e.g., /api/users/123).",
          "category": "vulnerability",
          "priority": 9,
          "confidence": 0.9,
          "tags": ["broken-access-control", "idor", "critical"],
          "source": "manual-testing"
        }
      }
    }

    请将 'your-session-id' 替换为实际的会话ID。

  3. 搜索记忆 ('search_memories'):

    {
      "jsonrpc": "2.0",
      "id": 3,
      "method": "tools/call",
      "params": {
        "name": "search_memories",
        "arguments": {
          "session_id": "your-session-id",
          "query": "authentication bypass techniques",
          "category": "exploit",
          "min_priority": 7,
          "limit": 5
        }
      }
    }

    LLM可以根据查询、类别、优先级等多种条件来搜索相关记忆。

  4. 创建关系 ('create_relationship'):

    {
      "jsonrpc": "2.0",
      "id": 4,
      "method": "tools/call",
      "params": {
        "name": "create_relationship",
        "arguments": {
          "source_id": "memory-id-of-sql-injection",
          "target_id": "memory-id-of-auth-bypass",
          "type": "causes",
          "strength": 0.85,
          "description": "Successful SQL injection can directly lead to authentication bypass by altering credentials."
        }
      }
    }

    这将帮助LLM理解不同安全发现之间的因果或关联。

通过这些工具,LLM可以获取、存储和管理其在安全领域所需的各种上下文信息,极大地提升其工作效率和准确性。

信息

分类

AI与计算