Arthor-Agent

Arthor-Agent

AI agent for security teams: automate assessment of documents, questionnaires & reports. Multi-format parsing, RAG knowledge base, OpenAI/Ollama. Risks, compliance gaps, remediations. MIT.

Category
访问服务器

README

<div align="center">

English | 简体中文 | 日本語 | 한국어 | Français | Deutsch

</div>

<p align="center"> <img src="docs/images/docsentinel-mascot.png" width="200" alt="DocSentinel mascot"/> </p>

<p align="center"> <strong>DocSentinel</strong><br/> <em>Automated security assessment for documents and questionnaires</em> </p>

<p align="center"> <a href="https://github.com/arthurpanhku/DocSentinel/releases"><img src="https://img.shields.io/github/v/release/arthurpanhku/DocSentinel?include_prereleases" alt="Latest release"/></a> <a href="https://github.com/arthurpanhku/DocSentinel/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"/></a> <a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python-3.10+-blue.svg" alt="Python 3.10+"/></a> <a href="https://github.com/arthurpanhku/DocSentinel"><img src="https://img.shields.io/badge/GitHub-arthurpanhku%2FDocSentinel--Agent-24292e?logo=github" alt="GitHub repo"/></a> <a href="docs/06-agent-integration.md"><img src="https://img.shields.io/badge/MCP-Ready-green?logo=anthropic" alt="MCP Ready"/></a> <a href="docs/06-agent-integration.md"><img src="https://img.shields.io/badge/Agent-Integration-blueviolet" alt="Agent Integration"/></a> </p>

<p align="center"> <a href="https://glama.ai/mcp/servers/arthurpanhku/DocSentinel"> <img width="380" height="200" src="https://glama.ai/mcp/servers/arthurpanhku/DocSentinel/badge" /> </a> </p>


What is DocSentinel?

DocSentinel is an AI-powered assistant for security teams. It automates the review of security-related documents, forms, and reports (e.g. Security Questionnaires, design docs, compliance evidence), compares them against your policy and knowledge base, and produces structured assessment reports with risks, compliance gaps, and remediation suggestions.

🚀 Agent Ready: Supports Model Context Protocol (MCP) to be used as a "skill" by OpenClaw, Claude Desktop, and other autonomous agents.

  • Multi-format input: PDF, Word, Excel, PPT, text — parsed into a unified format for the LLM.
  • Knowledge base (RAG): Upload policy and compliance documents; the agent uses them as reference when assessing.
  • Multiple LLMs: Use OpenAI, Claude, Qwen, or Ollama (local) via a single interface.
  • Structured output: JSON/Markdown reports with risk items, compliance gaps, and actionable remediations.

Ideal for enterprises that need to scale security assessments across many projects without proportionally scaling headcount.


Why DocSentinel?

Pain Point DocSentinel Solution
Fragmented criteria<br>Policies, standards, and precedents are scattered. Single knowledge base ensures consistent findings and traceability.
Heavy questionnaire workflow<br>Business fills form → Security reviews → Business adds evidence → Security reviews again. Automated first-pass and gap analysis reduces manual back-and-forth rounds.
Pre-release review pressure<br>Security needs to review and sign off on technical docs before launch. Structured reports help reviewers focus on decision-making, not line-by-line reading.
Scale vs. consistency<br>Many projects and standards lead to inconsistent or delayed manual reviews. Unified pipeline with configurable scenarios keeps assessments consistent and auditable.

See the full problem statement and product goals in SPEC.md.


Architecture

DocSentinel is built around an orchestrator that coordinates parsing, the knowledge base (RAG), skills, and the LLM. You can use cloud or local LLMs and optional integrations (e.g. AAD, ServiceNow) as your environment requires.

flowchart TB
    subgraph User["👤 User / Security Staff"]
    end
    subgraph Access["Access Layer"]
        API["REST API / MCP"]
    end
    subgraph Core["DocSentinel Core"]
        Orch["Orchestrator"]
        Mem["Memory"]
        Skill["Skills"]
        KB["Knowledge Base (RAG)"]
        Parser["Parser"]
    end
    subgraph LLM["LLM Layer"]
        Abst["LLM Abstraction"]
    end
    subgraph Backends["LLM Backends"]
        Cloud["OpenAI / Claude / Qwen"]
        Local["Ollama / vLLM"]
    end

    User --> API
    API --> Orch
    Orch <--> Mem
    Orch --> Skill
    Orch --> KB
    Orch --> Parser
    Orch --> Abst
    Abst --> Cloud
    Abst --> Local

Data flow (simplified):

  1. User uploads documents and selects scenario.
  2. Parser converts files (PDF, Word, Excel, PPT, etc.) to text/Markdown.
  3. Orchestrator loads KB chunks (RAG) and invokes Skills.
  4. LLM (OpenAI, Ollama, etc.) produces structured findings.
  5. Returns assessment report (risks, gaps, remediations).

Detailed architecture: ARCHITECTURE.md and docs/01-architecture-and-tech-stack.md.


✨ Core Capabilities

🛡️ Automated Security Assessment

Submit security questionnaires, design documents, or audit reports. DocSentinel analyzes them using configured LLMs and identifies:

  • Security Risks: Classified by severity (Critical, High, Medium, Low).
  • Compliance Gaps: Missing controls against frameworks like ISO 27001, PCI DSS.
  • Remediation Steps: Actionable advice to fix identified issues.

🧠 RAG-Powered Knowledge Base

Upload your organization's internal security policies, standards, and past audits. The agent indexes these documents to provide context-aware assessments, citing specific policy clauses in its findings.

🔌 API-First & MCP Ready

Designed as a headless service. Integrate it into your CI/CD pipelines via REST API, or use it as a super-tool within AI agents (like Claude Desktop, OpenClaw) using the Model Context Protocol (MCP).


🤖 Agent Integration (MCP)

Connect DocSentinel to Claude Desktop, Cursor, or OpenClaw to use it as a powerful security skill.

💡 What can it do?

Once connected, you can ask your AI agent:

"Read the attached system-design.pdf and assess it for compliance risks using DocSentinel."

"Check api-spec.yaml against our internal access-control-policy.pdf in the Knowledge Base."

🛠️ Configuration Guide

1. Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "docsentinel": {
      "command": "/path/to/DocSentinel/.venv/bin/python",
      "args": ["/path/to/DocSentinel/app/mcp_server.py"],
      "env": {
        "OPENAI_API_KEY": "sk-...",
        "CHROMA_PERSIST_DIR": "/absolute/path/to/data/chroma"
      }
    }
  }
}

2. Cursor

  1. Go to Settings > Features > MCP.
  2. Click + Add New MCP Server.
    • Name: docsentinel
    • Type: stdio
    • Command: /path/to/DocSentinel/.venv/bin/python
    • Args: /path/to/DocSentinel/app/mcp_server.py

See full guide in docs/06-agent-integration.md.


Quick Start

Option A: One-Click Deployment (Recommended)

Run the deployment script to start the full stack (API + Vector DB + optional Ollama).

git clone https://github.com/arthurpanhku/DocSentinel.git
cd DocSentinel
chmod +x deploy.sh
./deploy.sh

Option B: Docker Manual

Prerequisites: Python 3.10+. Optional: Ollama (ollama pull llama2).

git clone https://github.com/arthurpanhku/DocSentinel.git
cd DocSentinel
python3 -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env        # Edit if needed: LLM_PROVIDER=ollama or openai
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

Example: submit an assessment

You can use the sample files in examples/ to try the API.

# Use sample file from repo
curl -X POST "http://localhost:8000/api/v1/assessments" \
  -F "files=@examples/sample.txt" \
  -F "scenario_id=default"

# Response: { "task_id": "...", "status": "accepted" }
# Get the result (replace TASK_ID with the returned task_id)
curl "http://localhost:8000/api/v1/assessments/TASK_ID"

Example: upload to KB and query

# Use sample policy from repo
curl -X POST "http://localhost:8000/api/v1/kb/documents" -F "file=@examples/sample-policy.txt"

# Query the KB (RAG)
curl -X POST "http://localhost:8000/api/v1/kb/query" \
  -H "Content-Type: application/json" \
  -d '{"query": "What are the access control requirements?", "top_k": 5}'

Project layout

DocSentinel/
├── app/                  # Application code
│   ├── api/              # REST routes: assessments, KB, health
│   ├── agent/            # Orchestration & Assessment pipeline
│   ├── core/             # Configuration (pydantic-settings)
│   ├── kb/               # Knowledge Base (Chroma, chunking, RAG)
│   ├── llm/              # LLM abstraction (OpenAI, Ollama)
│   ├── parser/           # Document parsing (PDF, Word, Excel, PPT, text)
│   ├── models/           # Pydantic models
│   └── main.py
├── tests/                # Automated tests (pytest)
├── examples/             # Sample files (questionnaires, policies)
├── docs/                 # Design & Spec documentation
│   ├── 01-architecture-and-tech-stack.md
│   ├── 02-api-specification.yaml
│   ├── 03-assessment-report-and-skill-contract.md
│   ├── 04-integration-guide.md
│   ├── 05-deployment-runbook.md
│   └── schemas/
├── .github/              # Issue/PR templates, CI (Actions)
├── Dockerfile
├── docker-compose.yml    # API only
├── docker-compose.ollama.yml  # API + Ollama optional
├── CONTRIBUTING.md       # Contribution guidelines
├── CODE_OF_CONDUCT.md    # Code of conduct
├── CHANGELOG.md
├── SPEC.md
├── LICENSE
├── SECURITY.md
├── requirements.txt
├── requirements-dev.txt  # Dev dependencies
├── pytest.ini
└── .env.example

Configuration

Variable Description Default
LLM_PROVIDER ollama or openai ollama
OLLAMA_BASE_URL / OLLAMA_MODEL Local LLM http://localhost:11434 / llama2
OPENAI_API_KEY / OPENAI_MODEL OpenAI
CHROMA_PERSIST_DIR Vector DB path ./data/chroma
UPLOAD_MAX_FILE_SIZE_MB / UPLOAD_MAX_FILES Upload limits 50 / 10

See .env.example and docs/05-deployment-runbook.md for full options.


Documentation and PRD

  • ARCHITECTURE.md — System architecture: high-level diagram, Mermaid views, component design, data flow, security.
  • SPEC.md — Product requirements: problem statement, solution, features, security controls.
  • CHANGELOG.md — Version history; Releases.
  • Design docs docs/:Architecture, API spec (OpenAPI), contracts, integration guides (AAD, ServiceNow), deployment runbook. Q1 Launch Checklist: docs/LAUNCH-CHECKLIST.md.

Development & Testing

To verify your installation or contribute to the project, run the test suite:

Option A: One-Click Test (Recommended)

Automatically sets up a test environment and runs all checks.

chmod +x test_integration.sh
./test_integration.sh

Option B: Manual

# 1. Install dev dependencies
pip install -r requirements-dev.txt

# 2. Run all tests
pytest

# 3. Run specific test (e.g. Skills API)
pytest tests/test_skills_api.py

Contributing

Issues and Pull Requests are welcome. Please read CONTRIBUTING.md for setup, tests, and commit guidelines. By participating you agree to the CODE_OF_CONDUCT.md.

🤖 AI-Assisted Contribution: We encourage using AI tools to contribute! Check out CONTRIBUTING_WITH_AI.md for best practices.

📜 Submit a Skill Template: Have a great security persona? Submit a Skill Template or add it to examples/templates/. We welcome real-world (sanitized) security questionnaires to improve our templates!


Security

  • Vulnerability reporting: See SECURITY.md for responsible disclosure.
  • Security requirements: Follows security controls in SPEC §7.2.

License

This project is licensed under the MIT License — see the LICENSE file for details.


Star History

Star History Chart


Author and links

If you use DocSentinel in your organization or contribute back, we’d love to hear from you (e.g. via GitHub Discussions or Issues).

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选