Skip to content

Commit 40faf35

Browse files
committed
adding ai configs
1 parent 6bca629 commit 40faf35

126 files changed

Lines changed: 24897 additions & 3505 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.DS_Store

0 Bytes
Binary file not shown.

.vscode/settings.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"snyk.advanced.organization": "afafb600-273d-4eb1-99f3-2bd590a4680f",
3+
"snyk.advanced.autoSelectOrganization": true
4+
}
Lines changed: 1 addition & 0 deletions
Loading

custom_theme/assets/css/extra.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
img {
2+
display: block;
3+
margin: 0 auto;
4+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
tags: [AI, LLM, Enterprise]
3+
date: 2026-04-16
4+
---
5+
![](/files/Pasted%20image%2020260416154601.png)
6+
7+
When a vulnerability is updated or deleted, Faction automatically runs a background review of any incomplete checklist items associated with the assessment. The AI compares each checklist item against the full list of vulnerabilities and marks items as Fail where a matching vulnerability is found.
8+
9+
!!! note
10+
This feature is only available on Enterprise and having and active AI Configuration.
11+
12+
13+
- Items are only marked Fail — the AI does not mark items as passed
14+
- Items already manually reviewed (Pass, Fail, or N/A) are not overwritten
15+
- The notes field on each failed item is updated to read: "Updated by Faction AI: matching {Vulnerability Name}"
16+
- Results are logged to the server console for auditability
17+
18+
This feature works with any checklist type, including OWASP Top 10, PTES, and custom checklists. If checklist items have vulnerability mappings configured (e.g. an OWASP item mapped to Injection vulnerabilities), those mappings are included as hints in the AI prompt to improve accuracy.
19+
20+
21+
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
tags: [LLM, AI, Enterprise]
3+
date: 2026-04-16
4+
---
5+
You can connect exiting Anthropic subscription to Faction.
6+
![](/files/Pasted%20image%2020260416155103.png)
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
tags: [LLM, AI, Enterprise]
3+
date: 2026-04-16
4+
---
5+
6+
Below are the steps to create an Azure OpenAI endpoint that can be used with Faction' AI capabilities.
7+
8+
1. Create an AI Foundry Instance if you have not already done so. Skip to **step 12** if this part is already complete.
9+
2. You have the option to use different types of AI subscriptions. We are using our Copilot subscription for this instance
10+
![](/files/Pasted%20image%2020260416162533.png)
11+
3. Click Click Review and Create
12+
4. Click Create
13+
5. Click "Go to Resource". This should take you to the AI Foundry Portal
14+
![](/files/Pasted%20image%2020260416162800.png)
15+
6. Once you at the Foundry Portal Click "Model Catalog" in the left side bar.
16+
![](/files/Pasted%20image%2020260416162913.png)
17+
7. Search for a model like `gpt-4o` and select it. *Note some models require additional approvals to use.*
18+
8. Click "Use this Model"
19+
![](/files/Pasted%20image%2020260416162926.png)
20+
9. Name it something meaningful like `faction-gpt-4o`
21+
![](/files/Pasted%20image%2020260416162944.png)
22+
10. Click "Create Resource and deploy"
23+
11. Once deployed you should be able to see its settings and get your API Key. Leave this page open and navigate to Faction's AI configs in Admin (Admin->AI Config)
24+
12. Add a new LLM Config and map the attributes as shown below:
25+
![](/files/Pasted%20image%2020260416162951.png)
26+
13. Now click "Test Connection" to verify it works
27+
28+
![](/files/Pasted%20image%2020260416162956.png){ align=center }
29+
30+
Now you are ready to use all of Factions AI features like automatic report generation, automated checklists, and executive summary generation.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
tags: [LLM, AI, Enterprise]
3+
date: 2026-04-16
4+
---
5+
Connect to any API that implements the OpenAI chat completions interface. This option allows fully on-premises AI processing with no data leaving your environment with tools such as LM Studio or Ollama.
6+
7+
![](/files/Pasted%20image%2020260416154927.png)
8+
9+
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
tags: [LLM, AI, Enterprise]
3+
date: 2026-04-16
4+
---
5+
### Executive Summary Generation
6+
![](/files/Pasted%20image%2020260416155206.png)
7+
8+
Faction can generate a professional executive summary of an assessment's findings using the active AI configuration. The summary is structured into three sections:
9+
- Introduction — A high-level overview of the overall security posture
10+
- Key Findings — A prioritized list of vulnerabilities ordered by severity
11+
- Recommendations — Actionable remediation guidance based on the findings
12+
13+
The summary is generated from all vulnerabilities in the assessment, including their names, descriptions, risk levels, likelihood, and impact scores. Output is formatted as HTML and inserted directly into the report.
14+
15+
Below is an example of the generated summary.
16+
![](/files/Pasted%20image%2020260416155308.png)
17+
18+
19+
### AI Report Writing Assistant
20+
21+
Within any report section, assessors can invoke the AI writing assistant to generate or expand content. The assistant accepts a custom prompt and optional context, and returns formatted HTML output suitable for the report.
22+
23+
For instance, just jot down your steps to reproduce a finding while leaving the description and recommendations empty. Then ask Faction AI to generate the relevant sections for you based on any other data field in faction. *You can even ask it to combine different vulnerabilities into one!*
24+
25+
![](/files/Pasted%20image%2020260416155751.png)
26+
27+
28+
29+
Lines changed: 220 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,220 @@
1+
---
2+
tags: [LLM, AI, MCP, API]
3+
date: 2026-04-16
4+
---
5+
# Faction MCP Server
6+
![](/files/Pasted%20image%2020260416160827.png)
7+
8+
The [Faction](https://github.com/factionsecurity/faction) MCP server exposes assessments, vulnerabilities, retests, and audit logs to any MCP-compatible AI client. This is a really powerful addition to Faction that allows you to:
9+
- Integrate any CLI tool into Faction
10+
- Use any AI provider to create create/edit vulnerabilities descriptions and recommendations
11+
- Generate executive summaries that include full detail of all vulnerabilities and observations to summarize and prioritize the risk assessment.
12+
- Integrate Local LLMs into Faction so you are not sharing with 3rd party providers
13+
- Fully Supports [opencode](https://github.com/opencode-ai/opencode), [claude code](https://claude.com/product/claude-code), [copilot-cli](https://github.com/features/copilot/cli/), [LM Studio](https://lmstudio.ai/), and may others
14+
15+
## Prerequisites
16+
17+
- Docker (or Podman) installed
18+
- A running Faction instance
19+
- A Faction API key — generate one under your user profile in Faction
20+
21+
---
22+
23+
## Option 1: Docker Desktop MCP Catalog (Coming Soon)
24+
25+
Install directly from the Docker Desktop MCP Catalog. Enter your `FACTION_API_KEY` and `FACTION_BASE_URL` when prompted.
26+
27+
---
28+
29+
## Option 2: Docker Compose (Docker or Podman)
30+
31+
This option works anywhere Docker Compose or Podman Compose is available.
32+
33+
### 1. Configure credentials
34+
35+
```bash
36+
cp .env.example .env
37+
```
38+
39+
Edit `.env` and fill in your values:
40+
41+
```env
42+
FACTION_API_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
43+
FACTION_BASE_URL=https://faction.yourcompany.com
44+
```
45+
46+
### 2. Build the image
47+
48+
```bash
49+
docker compose build
50+
```
51+
52+
Podman:
53+
```bash
54+
podman-compose build
55+
```
56+
57+
### 3. Configure your MCP client
58+
!!! note
59+
Edit the `.env` file mentioned above and live it in the same folder as the docker-comose.yml for it to use your API credenticals
60+
61+
#### Claude Code MCP Configuration
62+
Add the following to your MCP client config (e.g. `~/.claude/settings.json` for Claude Code, or `claude_desktop_config.json` for Claude Desktop):
63+
64+
**Docker:**
65+
```json
66+
{
67+
"mcpServers": {
68+
"faction": {
69+
"command": "docker",
70+
"args": [
71+
"compose",
72+
"-f", "/absolute/path/to/faction-mcp/docker-compose.yml",
73+
"run", "--rm", "-T", "faction-mcp"
74+
]
75+
}
76+
}
77+
}
78+
```
79+
80+
**Podman:**
81+
```json
82+
{
83+
"mcpServers": {
84+
"faction": {
85+
"command": "podman-compose",
86+
"args": [
87+
"-f", "/absolute/path/to/faction-mcp/docker-compose.yml",
88+
"run", "--rm", "-T", "faction-mcp"
89+
]
90+
}
91+
}
92+
}
93+
```
94+
95+
> The `-T` flag disables pseudo-TTY allocation so stdio passes through cleanly to the MCP client.
96+
97+
To update credentials, edit `.env` — no rebuild required.
98+
99+
#### LLM Studio MCP Configuration
100+
Go to Integration then click Install:
101+
![](/files/Pasted%20image%2020260416162037.png)
102+
```json
103+
{
104+
"mcpServers": {
105+
"faction": {
106+
"command": "docker",
107+
"args": [
108+
"compose",
109+
"-f",
110+
"/Users/joshsummitt/Code/faction-mcp/docker-compose.yml",
111+
"run",
112+
"--rm",
113+
"-T",
114+
"faction-mcp"
115+
]
116+
}
117+
}
118+
```
119+
120+
#### opencode MCP Configuration
121+
Edit `~/.config/opencode/opencode.json` and add the following config:
122+
```json
123+
{
124+
"mcp": {
125+
"faction": {
126+
"type": "local",
127+
"command": [
128+
"docker",
129+
"compose",
130+
"-f",
131+
"/Users/joshsummitt/Code/faction-mcp/docker-compose.yml",
132+
"run",
133+
"--rm",
134+
"-T",
135+
"faction-mcp"
136+
],
137+
"enabled" : true
138+
}
139+
}
140+
141+
...other stuff..
142+
}
143+
144+
```
145+
146+
#### coplilot-cli MCP Configuration
147+
Edit `~/.config/microsoft-copilot/mcp.json`
148+
149+
```json
150+
{
151+
"mcpServers": {
152+
"faction": {
153+
"command": "docker",
154+
"args": [
155+
"compose",
156+
"-f", "/Users/joshsummitt/Code/faction-all/free/faction-mcp/docker-compose.yml",
157+
"run", "--rm", "-T", "faction-mcp"
158+
]
159+
}
160+
}
161+
}
162+
```
163+
164+
---
165+
166+
## Available Tools
167+
168+
### Assessments
169+
170+
| Tool | Description |
171+
|------|-------------|
172+
| `get_assessment_queue` | Get all non-completed assessments assigned to the authenticated user |
173+
| `get_assessment` | Get full details for a specific assessment by ID |
174+
| `update_assessment` | Update assessment fields: notes, executive summary, distribution list, custom fields |
175+
| `get_assessment_vulnerabilities` | Get full vulnerability data for an assessment (large response — includes HTML and screenshots) |
176+
| `get_vulnerability_summary_data` | Get stripped vulnerability data optimized for generating executive summaries |
177+
178+
### Vulnerabilities
179+
180+
| Tool | Description |
181+
|------|-------------|
182+
| `get_vulnerabilities` | Get all vulnerabilities opened within a date range |
183+
| `get_vulnerability` | Get a vulnerability by ID |
184+
| `get_vulnerability_by_tracking` | Get a vulnerability by tracking ID (e.g. Jira ticket) |
185+
| `set_vulnerability_tracking` | Assign a tracking ID to a vulnerability |
186+
| `set_vulnerability_status` | Set remediation status (dev/prod closed dates) |
187+
| `get_risk_levels` | Get configured risk level definitions |
188+
| `get_categories` | Get all vulnerability categories |
189+
| `get_category` | Get a specific category by ID |
190+
| `create_category` | Create a new vulnerability category (manager role required) |
191+
192+
### Vulnerability Templates
193+
194+
| Tool | Description |
195+
|------|-------------|
196+
| `get_vulnerability_templates` | Get all default vulnerability templates |
197+
| `search_vulnerability_templates` | Search templates by name (partial match) |
198+
| `get_vulnerability_template` | Get a specific template by ID |
199+
| `create_vulnerability_templates` | Create or update default vulnerability templates |
200+
201+
### Retests / Verifications
202+
203+
| Tool | Description |
204+
|------|-------------|
205+
| `get_verification_queue` | Get the retest queue assigned to the authenticated user |
206+
| `get_all_verifications` | Get all verifications, optionally filtered by date range |
207+
| `get_user_verifications` | Get verifications for a specific user |
208+
| `complete_verification` | Mark a retest as passed or failed |
209+
| `schedule_retest` | Schedule a retest for a vulnerability |
210+
211+
### Audit Logs
212+
213+
| Tool | Description |
214+
|------|-------------|
215+
| `get_audit_log` | Get the system audit log for a date range (admin role required) |
216+
| `get_assessment_audit_log` | Get audit log entries for all assessments in a date range |
217+
| `get_assessment_audit_log_by_id` | Get audit log entries for a specific assessment |
218+
| `get_user_audit_log` | Get audit log entries for a specific user |
219+
220+
---

0 commit comments

Comments
 (0)