Mythic MCP
This server provides a red-team/offensive-security MCP interface to Mythic C2 agents, enabling remote command execution, file operations, credential harvesting, and Active Directory attack automation.
Agent Management: List active agents (
get_all_agents) and target operations by agent_id.Execute Commands: Run arbitrary shell commands (
run_shell_command) or PowerShell scripts (execute_powershell) on target systems.File Operations: Read remote files (
read_file) and upload files to targets (upload_file).Credential Access: Run Mimikatz (
execute_mimikatz) and attempt user impersonation (run_as_user).Privilege Escalation: Run linPEAS/winPEAS (
privilege_escalation_peas) and SharpHound (run_sharphound) for AD enumeration.Active Directory Attacks: Enumerate domain users (
enum_domain_users), perform AD recon (ad_recon), and run Kerberoasting (run_kerberoast).
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Mythic MCPEnumerate all domain users via the active agent"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AI-Powered Red Teaming with Claude, C2 & MCP
A project exploring the integration of Claude, Model Context Protocol (MCP), and Command & Control (C2) Mythic to build an AI-powered copilot for Red Team operations.
The project aims to enable Claude to interact with C2 capabilities through MCP, understand the context and results of an ongoing operation, and provide context-aware recommendations, attack paths, and next-step actions based on the information gathered during the engagement.
Integration Diagram

Related MCP server: BloodyAD MCP
Requirements
uv
python3
Claude Desktop
Mythic C2 (Use docker to run the service)
A Windows victim machine in VMware
Preliminary steps
Install and run the Mythic C2 server. You need to use the official repository and run it in Docker. Repository link: Mythic Repository
Install the agents (Apollo, Apfell, Poseidon) and the profiles (HTTP, WebSocket).
Use some of the payloads to generate a payload to send to the victim machine.
On the victim machine, execute the payload to obtain a session on the Mythic C2 server.
Usage with Claude Desktop
To deploy an MCP server with Claude Desktop, we need to use the Developer Options. You will need to edit the claude_desktop_config.json file to configure the MCP server. The configuration format is as follows:
{
"mcpServers": {
"mythic_mcp": {
"command": "/snap/bin/uv",
"args": [
"--directory",
"/path/to/mythic_mcp/",
"run",
"main.py",
"mythic_admin",
"mythic_admin_password",
"localhost",
"7443"
]
}
}
}To find the mythic_admin and mythic_admin_password credentials after deploying the Mythic server, you can use the following commands:
sudo ./mythic-cli config get admin_user
sudo ./mythic-cli config get admin_passwordHow to Use
Once you have an active session in C2 and have uploaded the configuration file to Claude, you can use any prompt. However, we recommend running a few verification prompts first to ensure that the connection between C2, Claude, and the MCP server is working correctly.
Verify the available sessions
How many sessions are currently available?Verify the available commands
Which commands are available?Available Tools
12 toolsad_reconC
Run AD reconnaissance commands and collate results.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. 'Run AD reconnaissance commands' is extremely opaque: it doesn't state whether operations are read-only or potentially modifying, what commands are executed, errors are handled, or what 'collate results' means in practice. There is zero depiction of side effects or privileges required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no filler. It successfully front-loads the core action. However, its brevity borders on under-specification, but as a drafting matter it is efficient, so it earns a high score for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is likely complex (running multiple AD commands and aggregating results), yet the description provides almost no operational context. There is no output schema to clarify returns, no mention of agent_id semantics, and no indication of what the collated results look like. The description is woefully incomplete for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required parameter, agent_id, with no description (0% coverage). The tool description does not mention this parameter at all, leaving its meaning, format, and purpose completely unexplained. The description fails to compensate for the schema's silence.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Run AD reconnaissance commands') and an additional purpose ('collate results'), which distinguishes it from general shell execution or specific AD tools like run_sharphound or enum_domain_users. However, it lacks detail on which commands are included or what 'reconnaissance' covers, so it's clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. Sibling tools like run_sharphound, enum_domain_users, and run_kerberoast are more specific AD reconnaissance tools, but the description does not explain whether ad_recon should be used instead or in conjunction. The reader is left to infer the intended context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enum_domain_usersB
Attempt to enumerate domain users. Uses AD cmdlets if available, falls back to net user /domain.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the operation is an 'attempt' and includes a fallback method, but it does not specify whether this is read-only, what side effects (if any) might occur, what the output format is, or what happens on failure. This is insufficient for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose, and every word earns its place. It efficiently conveys the tool's function and fallback mechanism without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter, no output schema), and the description covers the core action and method. However, it lacks important context such as required privileges, potential failure modes, or what the result looks like. Given the absence of annotations and schema details, the description could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not explain the 'agent_id' parameter. While the parameter name is somewhat self-explanatory, the description adds no value beyond the schema, and with no parameter documentation, the agent must infer the semantics from the tool name alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'enumerate' and the resource 'domain users', and it distinguishes the tool by specifying the method (AD cmdlets or net user fallback). This differentiates it from broader siblings like ad_recon or run_sharphound.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (when you need to enumerate domain users) but does not provide explicit guidance on when to prefer it over alternatives like ad_recon or run_sharphound, nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_mimikatzC
Runs mimikatz with the provided arguments, returning the output.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | ||
| mimikatz_arguments | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full responsibility for behavioral disclosure. It only states that mimikatz runs and output is returned, omitting critical details like potential credential dumping, administrative requirements, security risks, or side effects. This is a significant gap for a sensitive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It is appropriately concise, though the brevity sacrifices content quality in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity and sensitivity of mimikatz, the description is severely incomplete. It lacks information about where the tool runs (agent_id), what mimikatz does, expected output format, or any warnings, making it insufficient for safe and correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning beyond the parameter names. It vaguely references 'provided arguments' but does not explain agent_id or the expected format of mimikatz_arguments, leaving the agent without guidance for filling parameters correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs mimikatz with provided arguments and returns output. The verb 'Runs' and specific resource 'mimikatz' distinguish it from sibling tools like run_shell_command or execute_powershell, which are generic execution tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as run_shell_command or execute_powershell. It does not mention any prerequisites, exclusions, or preferred scenarios, leaving the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_powershellB
Execute a PowerShell script on the target agent. The script is sent raw and encoded to UTF-16LE for -EncodedCommand.
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | ||
| agent_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a useful technical detail: the script is encoded to UTF-16LE and sent via -EncodedCommand, which reveals how the execution is performed. However, with no annotations, it fails to disclose output behavior, side effects, permissions, or failure modes, which are critical for an execution tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise, consisting of two clear sentences with no redundant information. Every word earns its place, and the structure is front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an execution tool, the description is inadequate. It omits crucial information such as output/return behavior, execution duration, privilege requirements, and error handling. The encoding detail is helpful but does not compensate for the lack of annotations and output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides zero description coverage for parameters, but the description only explains script encoding and does not clarify the semantics of agent_id or the script content itself. It adds minimal value beyond parameter names, so the agent must infer meaning from names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it executes a PowerShell script on a target agent, which is a specific verb+resource and distinguishes it from sibling tools like run_shell_command. However, it does not explicitly highlight when to prefer this over other execution tools, so it doesn't fully meet the standard for sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided regarding when to use this tool versus alternatives such as run_shell_command. It does not mention prerequisites, scenarios, or exclusions, leaving the agent without direction for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_agentsA
Returns a list of active agents
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. The word 'Returns' implies a read-only operation, but it does not explicitly state that there are no side effects, nor does it provide any additional behavioral context such as authentication requirements or limits. The description is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no wasted words. It conveys the essential purpose in a directly front-loaded manner, earning a perfect score for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description is nearly complete. It tells the agent what the tool returns (a list of active agents), which is sufficient for basic invocation. However, it does not define what constitutes an 'active' agent or describe the return format, which leaves minor ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero properties and the description does not need to explain parameters. According to the rubric, a tool with 0 params gets a baseline of 4. The description adds no parameter information, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Returns a list of active agents' clearly states the tool's function with a specific verb and resource, but it does not differentiate it from sibling tools. The purpose is unambiguous, but no comparison to alternatives is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus the sibling tools. The description simply states what it does without any context or exclusions, leaving the agent to infer usage from the tool name and list of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
privilege_escalation_peasB
Run linPEAS or winPEAS on the target agent for privilege escalation discovery.
Args:
agent_id: Mythic agent ID
os_type: 'linux' or 'windows'
peas_base64: Base64 encoded linpeas.sh or winPEAS.exe
mode: 'quiet' or 'full'
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | quiet | |
| os_type | Yes | ||
| agent_id | Yes | ||
| peas_base64 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits, but it only says 'Run'. It does not mention that the tool uploads and executes arbitrary base64 binaries (which could be destructive, loud, or require specific privileges), nor does it describe the side effects or resource impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise: a clear purpose sentence followed by a compact parameter list. Every line adds value, and the structure is front-loaded with the main intent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that executes arbitrary code on a target, the description is incomplete. It lacks usage context, behavior expectations, and output details. No annotations or output schema exist to compensate, and the sibling list offers similar actions without differentiators, so the agent is left without enough context to select and invoke it safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful semantics for all parameters beyond the schema's bare titles. It specifies agent_id as 'Mythic agent ID', os_type as 'linux' or 'windows', peas_base64 as the encoded binary, and mode as 'quiet' or 'full'. However, it stops short of explaining what quiet vs full behavior entails, so not a perfect score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Run linPEAS or winPEAS on the target agent for privilege escalation discovery.' This is a specific verb-resource-goal combination that distinguishes it from sibling tools like run_shell_command or execute_mimikatz.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives. While it mentions the purpose 'for privilege escalation discovery', it does not state prerequisites, exclusions, or contexts where other tools (e.g., run_shell_command) might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_fileA
Reads a file using the ReadFile win32 API call. Returns the contents of that file.
Args:
agent_id: ID of agent to read file from
file_path: Path to the file to read on the target server
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | ||
| file_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that it returns file contents but does not mention side effects, permissions, error handling, or whether the operation is read-only. This is a significant gap for a tool with no annotation safety hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, with a clear first sentence stating the tool's purpose, followed by a compact Args section. Every sentence adds value, with no padding or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple file-read tool, the description covers the core purpose and parameters, and mentions the return value. However, it lacks context on error conditions, file accessibility, or encoding, which an agent might need. It is moderately complete but leaves clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no parameter descriptions (0% coverage), so the description must compensate. It clarifies both parameters: 'agent_id: ID of agent to read file from' and 'file_path: Path to the file to read on the target server', adding meaningful context beyond the raw schema field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Reads a file using the ReadFile win32 API call. Returns the contents of that file.' This specifies a distinct verb and resource, distinguishing it from siblings like run_shell_command or upload_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the description of parameters ('ID of agent to read file from', 'Path to the file to read on the target server'), but there is no explicit statement of when to use this tool over alternatives or any exclusions. The guidance is minimal but present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_as_userC
Attempt to authenticate as another user (network calls only) for the current session.
Args:
username: Username of network account to use
password: Password of network account to use
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | ||
| password | Yes | ||
| username | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior, but it only notes that authentication is an 'attempt' and is 'for the current session.' It omits side effects, required permissions, failure modes, and the impact on subsequent operations. The phrase 'network calls only' is ambiguous and does not clarify the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded, with a single clear sentence followed by an args list. Explanations for username and password are useful and avoid fluff. However, the args section is somewhat redundant with the schema, and the missing agent_id is a structural gap.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three required parameters, no output schema, and no annotations, the description is insufficient. It fails to clarify the role of agent_id, the nature of 'network calls,' or the authentication's effect on the current session. For a security-sensitive tool, this lack of context is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for all three required parameters. It explains username and password meaningfully, but completely fails to mention agent_id, a required field. This leaves a critical parameter undocumented, offering only partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb and resource: 'Attempt to authenticate as another user.' It distinguishes itself from sibling tools like run_shell_command or ad_recon by focusing on authentication rather than execution or reconnaissance. The qualifier '(network calls only)' adds further specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, recommended contexts, or any exclusions. No sibling tools are referenced, and the 'network calls only' hint is too vague to serve as a usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_kerberoastB
Upload and run Rubeus (Kerberoasting).
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | kerberoast | |
| agent_id | Yes | ||
| rubeus_base64 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It mentions uploading and running Rubeus, but does not disclose the system impacts, permissions required, output format, or that Kerberoasting involves network requests and potential hash extraction. This is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler. It front-loads the main action and purpose. While it is brief, it is not under-specified to the point of being a tautology.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no annotations, and no output schema, this minimal description is insufficient. It omits any guidance on parameter usage, expected outputs, or system behavior, leaving the agent to guess at essential details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for three parameters. The description does not explain what rubeus_base64, agent_id, or args mean or how they should be populated. Since coverage is low and the description fails to compensate, parameter semantics are essentially absent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool uploads and runs Rubeus, a Kerberoasting tool. It identifies a specific verb+resource+scope, distinguishing it from generic shell or upload tools. However, it does not explicitly differentiate from similar sibling tools like run_sharphound, so it lacks full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(Kerberoasting)' provides a clear context for when to use this tool: when performing Kerberoasting attacks. While it does not mention exclusions or alternatives, the context is explicit rather than implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_sharphoundA
Run SharpHound (BloodHound collector) on a Windows agent.
SharpHound.exe must already exist on the target system.
Args:
agent_id: ID of the Mythic agent
collection: SharpHound collection methods (Default: All)
output_dir: Directory to store SharpHound output ZIP
stealth: Use stealth collection (recommended)
| Name | Required | Description | Default |
|---|---|---|---|
| stealth | No | ||
| agent_id | Yes | ||
| collection | No | All | |
| output_dir | No | C:\Users\Temp |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only mentions the prerequisite and output directory, but does not disclose potential side effects like network activity, file creation on the target, or security/AV risks. This is a significant transparency gap for a security tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient and well-structured with an intro sentence, a prerequisite note, and a list of arguments. Every sentence provides necessary information with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers prerequisites and output location but lacks information on return format, how to retrieve the output ZIP, or behavioral risks. With no annotations and no output schema, it leaves meaningful gaps for a complex tool like SharpHound.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Given 0% schema description coverage, the description compensates by explaining each parameter: agent_id as the Mythic agent ID, collection methods, output_dir for the ZIP, and stealth as recommended. This adds meaningful context beyond the schema's type/defaults, though it could offer more detail on allowed collection values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs SharpHound (BloodHound collector) on a Windows agent, which is a specific verb and resource. It doesn't explicitly differentiate from sibling AD tools like ad_recon, but the tool name and description are specific enough to distinguish the core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear prerequisite (SharpHound.exe must already exist) and recommends stealth mode, which gives context on when to use the tool. It doesn't mention exclusions or alternatives, so it stops short of an explicit 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_shell_commandB
Execute a shell script command line against a running agent. This script is executed using the default command line interpreter.
Args:
agent_id: ID of agent to execute command on
command_line: A command to be executed
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | ||
| command_line | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description only notes that the command uses the default interpreter, omitting safety-critical details like potential system impact, required permissions, or return/error behavior. For a command execution tool, this is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the purpose, followed by a clear Args list. Every sentence contributes, with no redundant boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool can execute arbitrary shell commands, the description is minimal: it does not address output format, error handling, security implications, or what 'running agent' means precisely. Sibling tools with specialized purposes underscore the need for more context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The Args section provides definitions for both agent_id and command_line, adding meaning beyond bare schema type information. However, it lacks details like command syntax, quoting rules, or constraints, leaving the agent to guess at proper usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Execute' with a clear resource 'a running agent', stating the tool runs a shell command line. It distinguishes itself from specialized siblings like execute_powershell by specifying the default command line interpreter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as execute_powershell or run_as_user. The description only states what the tool does, leaving usage context to be inferred without explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_fileA
Upload a file to the Mythic server, and then upload the file to the remote target
Args:
agent_id: ID of the agent to execute command on
file_name: Name to give the file when uploading to Mythic server
remote_path: Full path to where the file will be uploaded
content: Base64 encoded contents of the file
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | ||
| agent_id | Yes | ||
| file_name | Yes | ||
| remote_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavioral traits on its own. It does explain the two-step upload process and mentions that content is base64 encoded, but it does not state potential side effects, auth requirements, error behaviors, or whether it overwrites existing files. This is a moderate level of disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and well-structured: a two-sentence purpose statement followed by a clean Arg list. Every sentence earns its place without redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has four required parameters, no output schema, and no annotations. The description provides a clear action statement and parameter definitions, which is a good baseline. However, it omits return value behavior, error handling, and edge cases like file overwrites, leaving some gaps for a tool with no structured output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero description coverage, so the description must compensate. It does by listing each parameter with a concise explanation in the Args section, clarifying agent_id, file_name, remote_path, and content. This adds significant meaning beyond the bare schema, though it lacks deeper format or constraint details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's function: uploading a file to the Mythic server and then to a remote target. The verb 'upload' and the two-stage resource description make the purpose clear and distinguishable from sibling tools like read_file or run_shell_command.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used for uploading files but provides no explicit guidance on when to use it instead of alternatives, nor does it mention any exclusions or prerequisites. This gives a clear context but lacks explicit decision-making support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
12 tool updates
v0.1.0- First observed
ad_recon - First observed
enum_domain_users - First observed
execute_mimikatz - First observed
execute_powershell - First observed
get_all_agents - First observed
privilege_escalation_peas - First observed
read_file - First observed
run_as_user - First observed
run_kerberoast - First observed
run_sharphound - First observed
run_shell_command - First observed
upload_file
TDQS
Most tools target distinct actions (file read vs. upload, shell vs. PowerShell, mimikatz vs. Rubeus), but ad_recon and enum_domain_users overlap in purpose, as enum_domain_users is a specific subset of AD reconnaissance. This is a minor ambiguity rather than a major one.
The majority follow a verb_noun pattern (read_file, run_shell_command, execute_powershell, upload_file), but ad_recon and privilege_escalation_peas deviate by using nouns or abbreviations without a clear verb. The inconsistency is noticeable but not chaotic.
With 12 tools, the set is well-scoped for a post-exploitation/Mythic C2 server. Each tool serves a clear function in the red-team workflow, and the count fits comfortably within the ideal range without feeling bloated or sparse.
The set covers core post-exploitation activities: execution, file operations, credential theft, privilege escalation, and AD reconnaissance. Missing features like process listing or lateral movement are notable but not critical for the primary purpose, and agents can often work around these gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
Hyperion — MCP tool marketplace for AI agents: web, OSINT, security, research via one key.
MEOK MCP Hardening MCP — automated security red-team for any MCP server. Maps OWASP LLM Top 10
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA demonstration server that allows large language models to perform penetration testing tasks autonomously by interfacing with the Mythic C2 framework.78-
- AlicenseNot gradedqualityCmaintenanceEnables Active Directory enumeration and abuse operations through the bloodyAD tool. Supports LDAP queries, user/group management, DNS operations, and security testing directly from AI assistants.16MIT
- AlicenseCqualityDmaintenanceEnables LLMs to perform Active Directory penetration testing using tools like NetExec, Bloodhound, Nmap, Certipy, and John the Ripper. Automates vulnerability discovery, attack path analysis, and documentation generation for security assessments.266MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to autonomously execute over 200 open-source penetration testing tools via MCP, including reconnaissance, web exploitation, and brute-forcing, through a unified server architecture with Docker sandboxing for safe execution.52MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/johanrobbenites/MCP-IA-for-Offensive-Security'
If you have feedback or need assistance with the MCP directory API, please join our Discord server