项目简介
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等合规性标准的能力。
- 系统诊断与统计: 提供内存使用情况、数据库状态和系统诊断信息,便于监控和维护。
安装步骤
-
克隆仓库:
git clone https://github.com/rainmana/tinybrain.git cd tinybrain -
构建服务器:
go build -o tinybrain_server cmd/server/main.go这将在 'tinybrain' 目录下生成一个名为 'tinybrain_server' 的可执行文件。
-
运行服务器:
./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即可通过其内置的工具调用机制与服务器进行交互。以下是一些常用工具的示例:
-
创建会话 ('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以用于后续操作。
-
存储记忆 ('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。
-
搜索记忆 ('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可以根据查询、类别、优先级等多种条件来搜索相关记忆。
-
创建关系 ('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与计算