AI MCP and Skills
Overview
Model Context Protocol (MCP) is an open-source standard developed by Anthropic that enables AI assistants to securely connect to AttackForge with external data sources and tools.
MCP transforms AI from a conversational knowledge base into a practical assistant that can work with your actual AttackForge data and tools to get real work done, fast!
Skills are reusable packages of instructions, scripts, and resources that teach an AI model how to perform a specific task well. Think of them like specialized playbooks the AI loads on demand.
AttackForge build AI Skills to help your AI models perform tasks in a standardized way, with better and more consistent output and easier maintenance and iteration.

MCP has significant benefits for AttackForge users:
1. Better Confidentiality and Control
Data Stays Where It Belongs
With MCP, your sensitive vulnerability data doesn't need to be sent to AI providers for training. Your AI accesses your data when needed and only for your specific requests. You can even use AI models which are local to your computer, so that data never leaves your computer.
Granular Permissions
You control exactly what data and capabilities the AI can access on behalf of any AttackForge user you authorize to use MCP, ensuring appropriate boundaries and compliance with your security requirements.
2. More Helpful and Accurate Responses
Access to Current AttackForge Information
Instead of being limited to training data, AI assistants using MCP can pull real-time information from AttackForge - for example access to your latest vulnerabilities and projects. This provides context and answers based on your latest data, not outdated information in pre-trained vendor AI models.
Personalized Assistance
MCP enables AI to access your specific context - your AttackForge vulnerabilities, writeups, assets, projects - making responses tailored to your actual situation rather than generic advice.
3. Greater Productivity
Unified Interface
Instead of switching between different APIs and creating complex scripts, you can interact with your AttackForge through a single conversational interface. Ask questions about your data, retrieve records, check statuses, all in one place.
Automated Workflows
The AI can perform multi-step tasks, like pulling data from AttackForge, analyzing it, and updating a spreadsheet or creating a presentation - all from a simple request.
4. Future-Proof Investment
Vendor Independence
If you build workflows using MCP, you're not locked into a specific AI provider (vendor supplied AI models). You can switch AI assistants while keeping all your integrations working.
Growing Ecosystem
As AttackForge continues to build more MCP tools and skills, you'll automatically gain access to new capabilities without needing custom development work and extensive professional services.
AI Agentic Workflows

Check this link for examples on how to configure your agents with AttackForge.
Enabling MCP
To get started with MCP:
AttackForge Enterprise - MCP is available with your licence.
AttackForge Core - MCP can be add-on from
Administration > Subscriptions
To enable MCP - go to Administration > Integrations and enable the toggle for MCP.
IMPORTANT: When MCP is enabled, access to MCP Tools is not yet available. Each tool must be enabled by an AttackForge administrator on a per-user basis for maximum security.

Configuring Remote MCP

Remote MCP are remote Model Context Protocol servers that are hosted on the internet rather than on your local machine. Remote MCP servers extend AI applications' capabilities beyond your local environment, providing access to internet-hosted tools, services, and data sources. Unlike local MCP servers that run on your computer, remote servers are accessible from any MCP client with an internet connection.
The key advantage of remote MCP servers is their accessibility - unlike local servers that require installation and configuration on each device. This makes them particularly useful for web-based AI applications (like AttackForge) and services that require server-side processing or authentication.
Remote MCP servers expose tools, prompts, and resources that AI assistants can use. These servers can integrate with various services such as AttackForge.
AttackForge has a built-in OAuth v2.1 service which is used to authenticate users connecting to AttackForge MCP. Every AttackForge user connecting to AttackForge via remote MCP must explicitly grant the AI assistant permission to do so on behalf of the user.
Self Registration
Self registration allows AttackForge users to register their AI assistant to use AttackForge MCP directly. This saves time and effort for AttackForge administrators having to manually create OAuth2 Client IDs and Client Secrets and having to share that information with enrolling users.
Self registration is handled using the built-in AttackForge OAuth2 Authorization Server which comes with every AttackForge tenant, and is made available when MCP is enabled in AttackForge.
To enable self registration - go to Administration > Integrations > MCP and toggle to option to enable self registration.
IMPORTANT: When Self Registration is enabled, access to MCP Tools is not yet available. Each tool can be enabled on a per-user basis by the AttackForge administrators for maximum security.

Microsoft Copilot Studio Self Registration
Log in to Microsoft Copilot Studio. Select
Agents > Create blank agent

Click on
Tools > Add a tool

Click on
Model Context Protocol > New tool

Click on
Model Context Protocol

Enter in a name for your connecter. For the
Server URLthis should be in the following format:https://{{ATTACKFORGE-HOSTNAME}}/mcp. SelectOAuth 2.0for Authentication. SelectDynamic discoveryfor Type. ClickAdd.

Click on
Create new connection

Click
Create. You will be redirected to AttackForge. If you are not logged in - you will first need to log in. After you have logged in - you will see the screen below. Click onAgree and Continue. You will then be redirected back to Copilot Studio.


You should see a successful connection. Click on
Add and configure.

Your agent should now be connected to AttackForge.

Click on
Tools. Configure the Tools you want to use.

Try a prompt. If you see an error
Let's get you connected first, and then I can find that info for you- click on the link to Open connection manager and clickConnect. Otherwise your prompt should work!



ChatGPT Self Registration
Log in to ChatGPT and from the menu - select
Workspace settings

Select
Apps & Connectors

Click on
Create

Enter in a name for your connecter. For the
MCP Server URLthis should be in the following format:https://{{ATTACKFORGE-HOSTNAME}}/mcp. ClickCreate.

You will be redirected to AttackForge. If you are not logged in - you will first need to log in. After you have logged in - you will see the screen below. Click on
Agree and Continue. You will then be redirected back to ChatGPT.

Click
Publish

Review and actions then click
Publish

AttackForge MCP will now be available.

Try the integration by going to a new chat. Click on
+and selectMore. Select the AttackForge connector, then try a prompt!

Claude Self Registration
Log in to Claude and from the menu - select
Settings

Select
Connectors

Select
Add custom connector

Enter in a name for your connecter. For the
MCP Server URLthis should be in the following format:https://{{ATTACKFORGE-HOSTNAME}}/mcp. ClickAdd.

Click
Connect

You will be redirected to AttackForge. If you are not logged in - you will first need to log in. After you have logged in - you will see the screen below. Click on
Agree and Continue. You will then be redirected back to Claude.

Try the integration by going to a new chat. Click on
Settingsand enable the AttackForge connector, then enabled the relevant tools you have access to. Try a prompt!


Assisted Registration

If self registration is disabled - AI assistants can still get access to AttackForge MCP using assisted registration. The process is as follows:
AttackForge admin manually registers the AI assistant for the required AttackForge user. This process results in the creation of an OAuth 2 Client Id and Client Secret which is then shared with the AttackForge user.
AttackForge user supplies the Client Id and Client Secret to their AI assistant to configure the integration.
Manually Registering MCP Clients
Go to
Users > (Select the user) > Applications > MCP Client

Click on
Add Client. Include a name for the client and insert the redirect URLs. ClickAdd
TIP: Click on the down arrow to see common redirect URLs for popular remote MCP clients

Copy the Client Id and Client Secret.
IMPORTANT: The Client Secret will only be shown one time. Make sure to copy it.

Manually Enrolling ChatGPT
Log in to ChatGPT and from the menu - select
Workspace settings

Select
Apps & Connectors

Click on
Create

Enter in a name for your connecter. For the
MCP Server URLthis should be in the following format:https://{{ATTACKFORGE-HOSTNAME}}/mcp. Enter in the OAuth 2 Client Id and Client Secret. ClickCreate.

You will be redirected to AttackForge. If you are not logged in - you will first need to log in. After you have logged in - you will see the screen below. Click on
Agree and Continue. You will then be redirected back to ChatGPT.

Click
Publish

Review and actions then click
Publish

AttackForge MCP will now be available.

Try the integration by going to a new chat. Click on
+and selectMore. Select the AttackForge connector, then try a prompt!

Manually Enrolling Claude
Log in to Claude and from the menu - select
Settings

Select
Connectors

Select
Add custom connector

Enter in a name for your connecter. For the
MCP Server URLthis should be in the following format:https://{{ATTACKFORGE-HOSTNAME}}/mcp. ClickAdvanced Settings. Enter in the OAuth 2 Client Id and Client Secret. ClickAdd.

Click
Connect

You will be redirected to AttackForge. If you are not logged in - you will first need to log in. After you have logged in - you will see the screen below. Click on
Agree and Continue. You will then be redirected back to Claude.

Try the integration by going to a new chat. Click on
Settingsand enable the AttackForge connector, then enable the relevant tools you have access to. Try a prompt!


Configuring Local MCP

Local MCP are local Model Context Protocol servers that run directly on your machine rather than connecting to remote services, like Claude Desktop and LM Studio.
The key advantages of local MCP servers include:
Complete Data Privacy: Local servers process data on your device, offering complete data privacy since information never leaves your machine.
Offline Functionality: Local servers work without internet connectivity once downloaded, which is crucial for developers working in secure environments or areas with unreliable internet access.
Predictable Performance: Local servers offer predictable performance since they're not dependent on network latency or external service availability.
Local MCP is particularly valuable for sensitive data processing, secure enterprise environments, and scenarios where you need AI capabilities without relying on external services.
LM Studio Configuration
Download and install LM Studio

Open LM Studio. Load your model. Click on
Settings > Program > Install > Edit mcp.json

Open
mcp.jsontab. Add the following local MCP server. Make sure to add your AttackForge hostname for the"AF_HOSTNAME"and your AttackForge User API Key for the"AF_USER_KEY".

Click Save when finished and you should see the following success message.

Open a new chat. Enable
mcp/af-mcp-server.Configure the AF MCP tools you want to run, then try a test prompt!

Claude Desktop Configuration
Download and install Claude Desktop

Open Claude Desktop

Click on
Profile > Settings

Click on
Developer

Within Local MCP Servers - click on
Edit Config

Open
claude_desktop_config.jsonin a text editor, and add the following local MCP server. Make sure to add your AttackForge hostname for the"AF_HOSTNAME"and your AttackForge User API Key for the"AF_USER_KEY"
Save the file. Quit/Close Claude Desktop. Re-open Claude Desktop and open your Settings and click on
Developer. You should seeaf-mcp-serveris now running.

In Settings, click on
Connectorsand observeaf-mcp-serveris available. You can configure the integration and tools from here.

Try the integration by going to a new chat. Click on
Settingsand enable the AttackForge connector, then enable the relevant tools you have access to. Try a prompt!


User Access to MCP
Once a user has connected their AI assistant to AttackForge, they can start to leverage the MCP Tools made available to them.
IMPORTANT: Each MCP Tool must be be enabled on a per-user basis by the AttackForge administrators for maximum security.
Access to Tools
Go to
Users > (Select the user) > Access > MCP

View details for each Tool. Select the tools to enable for the user. Click
Add

Once the tools have been enabled, the user is now able to access those tools in their AI assistant.
MCP Sessions
When a user has established a session with AttackForge MCP using their AI assistant, their sessions will become visible in Users > (Select the user) > Applications > MCP Sessions

Removing User Access to MCP
To remove a users' access to AttackForge MCP - apply each of the following steps.
Remove access to tools
Revoke MCP sessions
Remove MCP clients
Working With Tools
The AttackForge MCP tools fall into three groups:
Read tools -
whoami,find_*,count_*,get_file,get_field_structure,get_args_schema_for_tool. These never modify data.Write tools -
create_*andpatch_*. These create or partially update records.Schema/discovery tools -
get_field_structureandget_args_schema_for_tool, used to discover the tenant-specific shape of your data model before reading custom fields or building write payloads.
The following concepts are shared across many tools and are described once here rather than repeated on every tool.
Filter Syntax
find_* and count_* tools accept an optional filter parameter expressed as a MongoDB-style find() filter.
Supported operators
$regex accepts either form (prefer the second)
Quoting rules - string values use single or double quotes, but operators and field names MUST be unquoted
Examples
The fields you may reference inside filter are listed under each tool's Parameters section.
Some scoping concerns must NOT be expressed inside
filterand have dedicated parameters instead - for exampleproject_idsandvisibilityon vulnerabilities,writeup_library_keyson writeups, andasset_library_keyon assets. See the relevant tool.
Selecting Fields and Custom Fields
find_* tools return only the id of each record by default. To return more:
fields- an array of system field names to include. The allowed values are enumerated per tool (see each tool's Parameters).custom_field_keys- an array of custom field keys to include in each record'scustom_fieldsarray. Discover the available keys for a model withget_field_structure.
This replaces the older behaviour where custom fields were returned implicitly. You now request exactly the fields you need.
Pagination
find_* tools are paginated:
limit- maximum records to return in this page. Defaults to10, capped at50.skip- number of records to skip (offset). Defaults to0.
Each response includes count (records in this page) and total (records matching overall). When count equals limit and skip + count < total, there are more pages - call again with skip advanced by limit. Use the count_* tools when you only need a total and not the records themselves.
Two-Step Workflow for Write Tools
The create_* and patch_* tools take a single args object whose shape is configured per tenant (custom fields, optional features, role-based access) and therefore cannot be hard-coded. Always use the two-step workflow:
Call
get_args_schema_for_toolwith the target tool name to retrieve the current JSON Schema forargs.Build an
argsobject that satisfies that schema, then call the targetcreate_*/patch_*tool.
The returned schema is the same one the server uses for validation, so any payload that satisfies it will pass. Tenant configuration can change between sessions, so do not cache the schema across conversations.
Any rich-text field referenced in the schema must use the AttackForge richtext format described in the richtext_format block returned alongside the schema by get_args_schema_for_tool.
patch_* tools apply a partial update: only the keys you supply in args are changed; omitted keys are left untouched.
Test Cases and Methodology
AttackForge separates the methodology you plan to follow from the record of testing it on a particular engagement. A number of MCP tools cover this area, and choosing the right one depends on understanding which record you are working with.
The Record Types
Testsuite
A reusable methodology: a named, taggable collection of test cases. A testsuite can be added to a project's testing plan, or proposed on a project request when is_visible_on_project_requests is set.
Tools: find_testsuites, count_testsuites, create_testsuite, patch_testsuite.
Library Test Case
A reusable, taggable unit of testing methodology belonging to a testsuite. This is the record that carries the descriptive fields - title, details, code, tags, sort_order and execution_flow.
Tools: find_testcases, count_testcases, create_testcase, patch_testcase.
Project Test Case
A per-project instance of a library test case, created when the testsuite is allocated to a project. It carries the testing state for that project only - status (Tested, Not Tested, Testing In Progress or Not Applicable), assigned_to, project_scope_ids, vulnerability_ids and locked.
A project test case does NOT carry the descriptive fields. To get them, take testcase_id from the project test case and pass it to find_testcases via its testcase_ids parameter.
Tools: find_project_testcases, count_project_testcases, patch_project_testcase, update_project_testcase_lock.
Abuse Case
A test case belonging to one project only. It lives in that project's own abuse-case testsuite rather than in the reusable methodology library, so it is created against a project rather than a testsuite.
Create one with create_abuse_case - create_testcase refuses abuse-case testsuites. Once created, an abuse case is patched with patch_testcase like any other test case, and its per-project instance is patched with patch_project_testcase.
Resolving Descriptive Fields
Because the descriptive fields live on the library test case, a typical read is two calls:
find_project_testcases(project_id=...)requesting thetestcase_idfield.find_testcases(testcase_ids=[...])requestingtitle,detailsand whatever else you need.
Use testcase_ids rather than a filter on id for this step. A search never returns deleted records, so filtering will silently drop retired methodology and project abuse cases; testcase_ids resolves them. Request the is_deleted field to tell retired methodology apart from current.
The same split applies in reverse: title, details, code, tags, sort_order and testsuite_id are not filterable on find_project_testcases. To narrow by any of them, call find_testcases first and filter project test cases on the resulting testcase_id values.
Notes and Workspace Notes
A project test case can carry many notes, which is why they are separate tools rather than fields on the test case. There are two kinds, and they are not interchangeable:
Purpose
The running log of testing progress - what the tester did and found
Reference material for performing the test case - background, tips, payloads
Read when
You want to know how testing is going
You want the material a tester needs to hand
Has a title
No
Yes
Tools
find_ / count_ / create_ / patch_project_testcase_note(s)
find_ / count_ / create_ / patch_project_testcase_workspace_note(s)
Both are rich-text, both may carry attached files (fetch them with get_file), and neither create_* tool can attach files.
Not to be confused with remediation notes, which hang off a vulnerability rather than a test case and record remediation progress or discussion. Those use
find_remediation_notes,count_remediation_notes,create_remediation_noteandpatch_remediation_note.
Locking
A project test case can be locked to freeze it against further editing within the project.
Use
update_project_testcase_lockto lock or unlock.patch_project_testcasecannot change the lock, and refuses to touch a test case while it is locked.A locked test case is excluded from the project's test case counters, so locking or unlocking shifts the project's tested / not tested / total figures.
Locking requires at least View access to the project, and the caller must be an Admin or Project Coordinator.
Custom Fields
Library test cases and project test cases have separate custom field structures. Discover them with get_field_structure(model="testcase") and get_field_structure(model="project-testcase") respectively.
Note that the custom_fields you pass to create_abuse_case are set on the project test case it creates, not on the abuse case itself - use patch_testcase with the returned testcase_id to set custom fields on the abuse case.
Prompt Examples
Interactive Attack Chain Explorer

The Attack Chain Explorer generates an interactive web page from real AttackForge testing data — turning a project's findings into an animated, explorable kill-chain report. Pick from various distinct attack chains — different routes an attacker could realistically take through the engagement. Watch each chain animate stage-by-stage: attacker → recon → actionable stages → outcome. Hit Best fix to see the single highest-leverage remediation, or Break chain to see where any one fix collapses the path.
Tools Required
Skill MD
MITRE ATT&CK Attack Chain - Style 1

The MITRE ATT&CK option will frame the project's findings against MITRE's tactics — Reconnaissance, Initial Access, Execution, Persistence, etc. It's built to land the attack chain narrative, the remediation plan, and the priority call - all on one page, so it suits board / leadership / engineering briefings.
Style 1 — Executive landscape, one-pager
Tools Required
Skill MD
MITRE ATT&CK Attack Chain - Style 2

The MITRE ATT&CK option will frame the project's findings against MITRE's tactics — Reconnaissance, Initial Access, Execution, Persistence, etc. It's built to land the attack chain narrative, the remediation plan, and the priority call - all on one page, so it suits board / leadership / engineering briefings.
Style 2 — Portrait narrative, debrief leave-behind
Tools Required
Skill MD
Cyber Kill Chain

The Cyber Kill Chain option maps every finding in an AttackForge project onto the seven stages of the Lockheed Martin Cyber Kill Chain — but with modernized offensive-security labels: Reconnaissance, Payload Development, Initial Access, Exploitation, Persistence, Command & Control, Mission Impact.
Tools Required
Skill MD
Generate Pentest Executive Summary

Tools Required
Prompt
Generate Vulnerability Descriptions and Recommendations

Tools Required
Prompt
Determine Single Highest-Risk Vulnerability on Project

Tools Required
Prompt
Show Vulnerabilities Assigned to Me

Tools Required
Prompt
Create a Vulnerability Composition Metrics Dashboard

Tools Required
Prompt
Top 10 Vulnerabilities Report

Tools Required
Prompt
Top 10 Vulnerabilities Dashboard


Tools Required
Prompt
Create Interactive Vulnerabilities Chart

Tools Required
Prompt
Review of Vulnerabilities in Retest

Tools Required
Prompt
Top 10 Affected Assets Dashboard

Tools Required
Prompt
CVSS Dashboard

Tools Required
Prompt
Unique OWASP Top 10 Vulnerabilities Report

Tools Required
Prompt
Interactive Executive Project Closeout Scorecard




Tools Required
Prompt
Last updated