Enkrypt AI MCP Server
OfficialEnables connectivity with the Cursor IDE (GitHub's code editor) to provide prompt auditing and AI safety analysis within the coding environment.
Click on "Deploy 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., "@Enkrypt AI MCP Server check this prompt for jailbreak attempts"
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.
Enkrypt AI MCP Server
The Enkrypt AI MCP Server allows you to integrate red-teaming, prompt auditing, and AI safety analysis directly into any Model Context Protocol (MCP)–compatible client such as Claude Desktop or Cursor IDE.
With this server, you can analyze prompts, detect jailbreak attempts, simulate adversarial attacks, and bring AI safety tooling directly into your assistant-driven workflows.
🚀 Features
Real-time prompt risk analysis
Red-teaming via adversarial prompt generation
Tool-based LLM monitoring using the MCP standard
Seamless integration with Claude Desktop, Cursor IDE, and other MCP clients
Related MCP server: genpark-prompt-injection-jailbreak-neutralizer-skill
💠 Installation
Before getting started, ensure you have uv installed on your machine.
1. Clone the repository
git clone https://github.com/enkryptai/enkryptai-mcp-server.git
cd enkryptai-mcp-server2. Install dependencies
uv pip install -e .🔑 Get Your API Key
To use the Enkrypt tools, you’ll need a free API key from:
https://app.enkryptai.com/settings/api
⚙️ Configuration
You can connect this MCP server to any MCP-compatible client. Here's how to do it with Cursor and Claude Desktop.
🖥️ Cursor
Open Settings → MCP tab in Cursor
Click "Add new global MCP server"
Paste the following config into the
mcp.jsonfile:
{
"mcpServers": {
"EnkryptAI-MCP": {
"command": "uv",
"args": [
"--directory",
"PATH/TO/enkryptai-mcp-server",
"run",
"src/mcp_server.py"
],
"env": {
"ENKRYPTAI_API_KEY": "YOUR ENKRYPTAI API KEY"
}
}
}
}Replace:
PATH/TO/enkryptai-mcp-serverwith the absolute path to the cloned repoYOUR ENKRYPTAI API KEYwith your API key
The server will launch and appear in your MCP tools list.
💬 Claude Desktop
Open the Claude menu in your system menu bar (not inside the app window)
Go to Settings… → Developer tab
Click Edit Config
This opens or creates the MCP config file at:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Replace the contents with:
{
"mcpServers": {
"EnkryptAI-MCP": {
"command": "uv",
"args": [
"--directory",
"PATH/TO/enkryptai-mcp-server",
"run",
"src/mcp_server.py"
],
"env": {
"ENKRYPTAI_API_KEY": "YOUR ENKRYPTAI API KEY"
}
}
}
}Make sure to:
Set the correct repo path
Paste in your API key
Finally, restart Claude Desktop. Once it reloads, you’ll see a hammer icon in the chat box, indicating your MCP tools are active.
Available Tools
28 toolsadd_agentB
Add a new agent using the provided configuration.
Args: config: A dictionary containing the agent configuration details. The structure of the AgentConfig is as follows: Example usage: { "model_saved_name": "example_agent_name", # The name under which the agent is saved. "model_version": "v1", # The version of the agent. "testing_for": "agents", # The purpose for which the agent is being tested. (Always agents) "model_name":"", # Blank always "model_config": { "model_provider": "custom", #Always custom "endpoint_url": "", #the endpoint url of the agent (Mandatory) "input_modalities": ["text"], #Always text "output_modalities": ["text"], #Always text "custom_headers": [{ # A list of custom headers to be sent to the agent. (Mandatory) "key": "Content-Type", "value": "application/json" }...], "custom_response_format": "", # Ask user for the response format of the agent in jq format (Mandatory) "custom_response_content_type": "json", # The content type of the agent's response (always json) (Mandatory) "custom_payload":{json that the user provides}, # Ask user for the payload to be sent to the agent (always keep placeholder for prompt as '{prompt}') (Mandatory) "tools": [{ # Ask user for a list of tools to be used by the agent. (MANDATORY) "name": "name of the tool", "description": "description of the tool" }...] }, } NOTE: DO NOT ASSUME ANY FIELDS AND ASK THE USER FOR ALL THE DETAILS BEFORE PASSING THE CONFIG TO THE TOOL. Ask the user for all the mandatory details before passing the config to the tool.
Returns: A dictionary containing the response message and details of the added agent.
Inputs: config (required).
add_agent_redteam_taskC
Add a redteam task using a saved agent.
Args: agent_saved_name: The saved name of the agent to be used for the redteam task. agent_version: The version of the agent to be used for the redteam task. agent_redteam_model_config: The configuration for the redteam task. ASK USER FOR ALL THESE DETAILS. Example usage: sample_redteam_model_config = { "test_name": redteam_test_name, "dataset_configuration": { #Ask user for all these details, do not fill it on your own (system_description, policy_description. Tools can be gotten from agent config otherwise ask user) "system_description": "Ask user for this", # Ask user for the system description of the agent for the custom use-case. (Mandatory exactly same as what the user has input) "policy_description": "Ask user for this", # Ask user for the policy which the agent for the custom use-case should follow. (Optional) "tools": [ { "name": "ask user for this", # The name of the tool to be used for the custom use-case. (Mandatory) "description": "ask user for this" # The description of the tool to be used for the custom use-case. (Mandatory) } ], #The following are the default values for the custom use-case. Change them only if the user asks for a different test size. "max_prompts": 500, # The maximum number of prompts to be used for the custom use-case. "scenarios": 2, # The number of scenarios to be used for the custom use-case. "categories": 2, # The number of categories to be used for the custom use-case. "depth": 1, # The depth of the custom use-case. } "redteam_test_configurations": { #IMPORTANT: Before setting the redteam test config, ask the user which tests they would want to run and the sample percentage "alignment_and_governance_test": { "sample_percentage": 2, "attack_methods": { "basic": [ "basic" ], "advanced": { "static": [ "encoding" ] } } }, "input_and_content_integrity_test": { "sample_percentage": 2, "attack_methods": { "basic": [ "basic" ], "advanced": { "static": [ "encoding" ] } } }, "infrastructure_and_integration_test": { "sample_percentage": 2, "attack_methods": { "basic": [ "basic" ], "advanced": { "static": [ "encoding" ] } } }, "security_and_privacy_test": { "sample_percentage": 2, "attack_methods": { "basic": [ "basic" ], "advanced": { "static": [ "encoding" ] } } }, "human_factors_and_societal_impact_test": { "sample_percentage": 2, "attack_methods": { "basic": [ "basic" ], "advanced": { "static": [ "encoding" ] } } }, "access_control_test": { "sample_percentage": 2, "attack_methods": { "basic": [ "basic" ], "advanced": { "static": [ "encoding" ] } } }, "physical_and_actuation_safety_test": { "sample_percentage": 2, "attack_methods": { "basic": [ "basic" ], "advanced": { "static": [ "encoding" ] } } }, "reliability_and_monitoring_test": { "sample_percentage": 2, "attack_methods": { "basic": [ "basic" ], "advanced": { "static": [ "encoding" ] } } } }, }
Returns: A dictionary containing the response message and details of the added redteam task.
Inputs: agent_redteam_model_config (required), agent_saved_name (required), agent_version (required).
add_custom_redteam_taskA
Add a custom use-case basedredteam task using a saved model. NOTE: Not compatible with audio and image modalities.
Args: model_saved_name: The saved name of the model to be used for the redteam task. model_version: The version of the model to be used for the redteam task. custom_redteam_model_config: The configuration for the customredteam task. Example usage: sample_redteam_model_config = { "test_name": redteam_test_name, "dataset_configuration": { #Ask user for all these details, do not fill it on your own (system_description, policy_description and tools) "system_description": "", # The system description of the model for the custom use-case. (Mandatory) "policy_description": "", # The policy which the model for the custom use-case should follow. (Optional) "tools": [ { "name": "web_search", # The name of the tool to be used for the custom use-case. (Optional) "description": "The tool web search is used to search the web for information related to finance." # The description of the tool to be used for the custom use-case. (Optional) } ], #The following are the default values for the custom use-case. Change them only if the user asks for a different test size. "max_prompts": 500, # The maximum number of prompts to be used for the custom use-case. "scenarios": 2, # The number of scenarios to be used for the custom use-case. "categories": 2, # The number of categories to be used for the custom use-case. "depth": 1, # The depth of the custom use-case. } "redteam_test_configurations": { #IMPORTANT: Before setting the redteam test config, ask the user which tests they would want to run and the sample percentage. Note: The custom test is mandatory. other 5 are optional. "bias_test": { "sample_percentage": 2, "attack_methods": {"basic": ["basic"]}, }, "cbrn_test": { "sample_percentage": 2, "attack_methods": {"basic": ["basic"]}, }, "insecure_code_test": { "sample_percentage": 2, "attack_methods": {"basic": ["basic"]}, }, "toxicity_test": { "sample_percentage": 2, "attack_methods": {"basic": ["basic"]}, }, "harmful_test": { "sample_percentage": 2, "attack_methods": {"basic": ["basic"]}, }, "custom_test": { "sample_percentage": 100, # The sample percentage for the custom use-case. Keep it at 100 unless the user asks for a different sample percentage. "attack_methods": {"basic": ["basic"]}, } }, }
Befor calling this tool, ensure that the model name is availble. If not, save a new model then start the redteaming task.Returns: A dictionary containing the response message and details of the added redteam task.
Inputs: custom_redteam_model_config (required), model_saved_name (required), model_version (required).
add_deploymentC
Add a new deployment using the provided configuration.
Args: deployment_config: A dictionary containing the deployment configuration details.
Example Usage:
{
"deployment_config": {
sample_deployment_config = {
"name": deployment_name,
"model_saved_name": model_saved_name,
"input_guardrails_policy": {
"policy_name": policy_name,
"enabled": True,
"additional_config": {
"pii_redaction": False #Add these if any additional detectors than that in the policy are needed
},
"block": [
"injection_attack", # Could be any of the active detectors (Ask user if they want to block)
"policy_violation"
]
},
"output_guardrails_policy": {
"policy_name": policy_name,
"enabled": False,
"additional_config": {
"hallucination": False, #Add these if any additional detectors than that in the policy are needed
"adherence": False,
"relevancy": False
},
"block": [
"nsfw" # Could be any of the active detectors (Ask user if they want to block)
]
},
}
}Always ask user if they want to block any of the detectors in the policy for both input and output. (if you dont know what detectors are present in the policy, you can use the get_guardrails_policy tool) Returns: A dictionary containing the response message and details of the added deployment.
Inputs: deployment_config (required).
add_guardrails_policyB
Add a new guardrails policy.
Args: policy_name: The name of the policy to add. detectors: detectors_config: Dictionary of detector configurations. Each key should be the name of a detector, and the value should be a dictionary of settings for that detector. Available detectors and their configurations are as follows:
- injection_attack: Configured using InjectionAttackDetector model. Example: {"enabled": True}
- pii: Configured using PiiDetector model. Example: {"enabled": False, "entities": ["email", "phone"]}
- nsfw: Configured using NsfwDetector model. Example: {"enabled": True}
- toxicity: Configured using ToxicityDetector model. Example: {"enabled": True}
- topic: Configured using TopicDetector model. Example: {"enabled": True, "topic": ["politics", "religion"]}
- keyword: Configured using KeywordDetector model. Example: {"enabled": True, "banned_keywords": ["banned_word1", "banned_word2"]}
- policy_violation: Configured using PolicyViolationDetector model. Example: {"enabled": True, "need_explanation": True, "policy_text": "Your policy text here"}
- bias: Configured using BiasDetector model. Example: {"enabled": True}
- copyright_ip: Configured using CopyrightIpDetector model. Example: {"enabled": True}
- system_prompt: Configured using SystemPromptDetector model. Example: {"enabled": True, "index": "system_prompt_index"}
Example usage:
{
"injection_attack": {"enabled": True},
"nsfw": {"enabled": True}
}Returns: A dictionary containing the response message and policy details.
Inputs: detectors (required), policy_description (required), policy_name (required).
add_modelA
Add a new model using the provided configuration.
Args: config: A dictionary containing the model configuration details. The structure of the ModelConfig is as follows: Example usage: { "model_saved_name": "example_model_name", # The name under which the model is saved. "model_version": "v1", # The version of the model. "testing_for": "foundationModels", # The purpose for which the model is being tested. (Always foundationModels) "model_name":"example_model", # The name of the model. (e.g., gpt-4o, claude-3-5-sonnet, etc.) "model_config": { "model_provider": "example_provider", # The provider of the model. (e.g., openai, anthropic, etc.) "endpoint_url":"https://api.example.com/model", # The endpoint URL for the model only required if provider type is custom, otherwise don't include this key. "apikey":"example_api_key", # The API key to access the model. "system_prompt": "Some system prompt", # The system prompt for the model, only required if the user specifies, otherwise blank. "input_modalities": ["text"], # The type of data the model works with (Possible values: text, image, audio) keep it as text unless otherwise specified. "output_modalities": ["text"], # The type of data the model works with keep it as text only. If user asks for others, that modality is on our roadmap, please contact hello@enkryptai.com if you need early access to this. }, } Ask the user for all the details before passing the config to the tool.
Returns: A dictionary containing the response message and details of the added model.
Inputs: config (required).
add_model_from_urlB
Add a new model using the provided configuration.
Args: config: A dictionary containing the url model configuration details. The structure of the ModelConfig is as follows: Example usage: { "model_saved_name": "example_model_name", # The name under which the model is saved. "model_version": "v1", # The version of the model. "testing_for": "URL", # The purpose for which the model is being tested. (Always URL) "model_name":"example_url", # The url of the chatbot site provided by user. "model_config": { "model_provider": "url", # Always fixed to 'url' "endpoint_url":"example_url", # Same as model_name "apikey":"none", # The API key to access the model. "input_modalities": ["text"], # Always fixed to ['text'] "output_modalities": ["text"], # Always fixed to ['text'] }, } Ask the user for the url before passing the config to the tool.
Returns: A dictionary containing the response message and details of the added model.
Inputs: config (required).
add_redteam_taskA
Add a redteam task using a saved model.
Args: model_saved_name: The saved name of the model to be used for the redteam task. model_version: The version of the model to be used for the redteam task. redteam_model_config: The configuration for the redteam task. Example usage: sample_redteam_model_config = { "test_name": redteam_test_name, "dataset_name": "standard", "redteam_test_configurations": { #IMPORTANT: Before setting the redteam test config, ask the user which tests they would want to run and the sample percentage. "bias_test": { "sample_percentage": 2, "attack_methods": {"basic": ["basic"]}, }, "cbrn_test": { "sample_percentage": 2, "attack_methods": {"basic": ["basic"]}, }, "insecure_code_test": { "sample_percentage": 2, "attack_methods": {"basic": ["basic"]}, }, "toxicity_test": { "sample_percentage": 2, "attack_methods": {"basic": ["basic"]}, }, "harmful_test": { "sample_percentage": 2, "attack_methods": {"basic": ["basic"]}, }, }, } These are the only 5 tests available. Ask the user which ones to run and sample percentage for each as well.
Before calling this tool, ensure that the model name is availble. If not, save a new model then start the redteaming task.
NOTE: Tests compatible with audio and image modalities are only: cbrn and harmful. Other test types are not compatible with audio and image modalities.Returns: A dictionary containing the response message and details of the added redteam task.
Inputs: model_saved_name (required), model_version (required), redteam_model_config (required).
get_deployment_detailsB
Retrieve details of a specific deployment using its name.
Args: deployment_name: The name of the deployment to retrieve details for.
Returns: A dictionary containing the details of the deployment.
Inputs: deployment_name (required).
get_guardrails_policyC
Get all guardrails policies.
Inputs: no named parameters.
get_model_detailsC
Retrieve details of a specific model using its saved name.
Args: model_saved_name: The name under which the model is saved. model_version: The version of the model to be used for the redteam task. Returns: A dictionary containing the details of the model.
Inputs: model_saved_name (required), model_version (required).
get_redteam_task_detailsC
Retrieve details of a redteam task.
Args: test_name: The name of the redteam test.
Returns: A dictionary containing the details of the redteam task including the system prompt of the target model used.
Inputs: test_name (required).
get_redteam_task_results_summaryC
Get the results summary of a redteam task.
Args: test_name: The name of the redteam test.
Returns: A dictionary containing the results summary of the redteam task.
After getting the results summary, suggest the following actions to the user to mitigate the risk:
1. Mitigate the risks by using a tailored system prompt
2. Create a guardrails policy to mitigate the risks
Inputs: test_name (required).
get_redteam_task_statusC
Get the status of a redteam task.
Args: test_name: The name of the redteam test.
Returns: A dictionary containing the status of the redteam task.
Inputs: test_name (required).
guardrails_detectA
Detect sensitive content using Guardrails.
Args: ctx: The context object containing the request context. text: The text to detect sensitive content in. detectors_config: Dictionary of detector configurations. Each key should be the name of a detector, and the value should be a dictionary of settings for that detector. Available detectors and their configurations are as follows:
- injection_attack: Configured using InjectionAttackDetector model. Example: {"enabled": True}
- pii: Configured using PiiDetector model. Example: {"enabled": False, "entities": ["email", "phone"]}
- nsfw: Configured using NsfwDetector model. Example: {"enabled": True}
- toxicity: Configured using ToxicityDetector model. Example: {"enabled": True}
- topic: Configured using TopicDetector model. Example: {"enabled": True, "topic": ["politics", "religion"]}
- keyword: Configured using KeywordDetector model. Example: {"enabled": True, "banned_keywords": ["banned_word1", "banned_word2"]}
- policy_violation: Configured using PolicyViolationDetector model. Example: {"enabled": True, "need_explanation": True, "policy_text": "Your policy text here"}
- bias: Configured using BiasDetector model. Example: {"enabled": True}
- copyright_ip: Configured using CopyrightIpDetector model. Example: {"enabled": True}
- system_prompt: Configured using SystemPromptDetector model. Example: {"enabled": True, "index": "system_prompt_index"}
Example usage:
{
"injection_attack": {"enabled": True},
"nsfw": {"enabled": True}
}Returns: A dictionary containing the detection results with safety assessments.
Inputs: detectors_config (required), text (required).
harden_system_promptA
Harden the system prompt by using the redteam results summary and the system prompt.
Args: redteam_results_summary: A dictionary containing only the top 20 categories of the redteam results summary in terms of success percent (retrieve using get_redteam_task_results_summary tool). NOTE: If there are more than 20 items in category array, only pass the top 20 categories with the highest success percent. Format: { "category": [ { "Bias": { "total": 6, "test_type": "adv_info_test", "success(%)": 66.67 } }, contd. ] } system_prompt: The system prompt to be hardened (retrieve using get_redteam_task_details tool).
Returns: A dictionary containing the response message and details of the hardened system prompt.
Inputs: redteam_results_summary (required), system_prompt (required).
list_deploymentsC
List all deployments and print details of the first deployment.
Returns: A dictionary containing the list of deployments.
Inputs: no named parameters.
list_modelsC
List all models and print details of the first model.
Returns: A dictionary containing the list of models.
Inputs: no named parameters.
list_redteam_tasksB
List all redteam tasks, optionally filtered by status.
Args: status: The status to filter tasks by (e.g., "Finished"). If None, list all tasks.
Returns: A dictionary containing the list of redteam tasks.
Inputs: status.
mitigation_guardrails_policyB
Create a guardrails policy by using the redteam results summary.
Args: redteam_results_summary: A dictionary containing only the top 20 categories of the redteam results summary in terms of success percent (retrieve using get_redteam_task_results_summary tool). NOTE: If there are more than 20 items in category array, only pass the top 20 categories with the highest success percent. Format: { "category": [ { "Bias": { "total": 6, "test_type": "adv_info_test", "success(%)": 66.67 } }, contd. ] }
Returns: A dictionary containing the response message and details of the created guardrails policy.
After getting the configuration, create the guardrails policy using the add_guardrails_policy tool.
Inputs: redteam_results_summary (required).
modify_deployment_configC
Modify the deployment configuration and update the deployment.
Args: deployment_name: The name of the deployment to be modified. new_deployment_config: The new deployment configuration to be modified.
Example Usage:
{
"deployment_config": {
sample_deployment_config = {
"name": deployment_name,
"model_saved_name": model_saved_name,
"input_guardrails_policy": {
"policy_name": policy_name,
"enabled": True,
"additional_config": {
"pii_redaction": False #Add these if any additional detectors than that in the policy are needed
},
"block": [
"injection_attack", # Could be any of the active detectors (Ask user if they want to block)
"policy_violation"
]
},
"output_guardrails_policy": {
"policy_name": policy_name,
"enabled": False,
"additional_config": {
"hallucination": False, #Add these if any additional detectors than that in the policy are needed
"adherence": False,
"relevancy": False
},
"block": [
"nsfw" # Could be any of the active detectors (Ask user if they want to block)
]
},
}
}Returns: A dictionary containing the response message and details of the modified deployment.
Inputs: deployment_name (required), new_deployment_config (required).
modify_model_configB
Modify the model configuration and update the model.
Args: new_model_config: The sample model configuration to be modified. Example usage: { "model_saved_name": "example_model_name", # The name under which the model is saved. "testing_for": "LLM", # The purpose for which the model is being tested. (Always LLM) "model_name": "example_model", # The name of the model. (e.g., gpt-4o, claude-3-5-sonnet, etc.) "modality": "text", # The type of data the model works with (e.g., text, image). "model_config": { "model_version": "1.0", # The version of the model. "model_provider": "example_provider", # The provider of the model. (e.g., openai, anthropic, etc.) "endpoint_url": "https://api.example.com/model", # The endpoint URL for the model. "apikey": "example_api_key", # The API key to access the model. }, } test_model_saved_name: The saved name of the model to be tested.
Returns: A dictionary containing the response message and details of the modified model.
Inputs: new_model_config (required), test_model_saved_name (required).
remove_deploymentB
Remove an existing deployment.
Args: deployment_name: The name of the deployment to remove.
Returns: A dictionary containing the response message and details of the deleted deployment.
Inputs: deployment_name (required).
remove_guardrails_policyC
Remove an existing guardrails policy.
Args: policy_name: The name of the policy to remove.
Returns: A dictionary containing the response message and details of the deleted policy.
Inputs: policy_name (required).
remove_modelC
Remove a model.
Args: test_model_saved_name: The saved name of the model to be removed.
Returns: A dictionary containing the response message and details of the deleted model.
Inputs: test_model_saved_name (required).
retrieve_policy_configurationB
Retrieve and print the policy configuration for a given policy name.
Args: policy_name: The name of the policy to retrieve.
Returns: A dictionary containing the policy configuration.
Inputs: policy_name (required).
update_guardrails_policyB
Update an existing guardrails policy with new configuration.
Args: policy_name: The name of the policy to update. detectors: Dictionary of detector configurations. Each key should be the name of a detector, and the value should be a dictionary of settings for that detector. Available detectors and their configurations are as follows:
- injection_attack: Configured using InjectionAttackDetector model. Example: {"enabled": True}
- pii: Configured using PiiDetector model. Example: {"enabled": False, "entities": ["email", "phone"]}
- nsfw: Configured using NsfwDetector model. Example: {"enabled": True}
- toxicity: Configured using ToxicityDetector model. Example: {"enabled": True}
- topic: Configured using TopicDetector model. Example: {"enabled": True, "topic": ["politics", "religion"]}
- keyword: Configured using KeywordDetector model. Example: {"enabled": True, "banned_keywords": ["banned_word1", "banned_word2"]}
- policy_violation: Configured using PolicyViolationDetector model. Example: {"enabled": True, "need_explanation": True, "policy_text": "Your policy text here"}
- bias: Configured using BiasDetector model. Example: {"enabled": True}
- copyright_ip: Configured using CopyrightIpDetector model. Example: {"enabled": True}
- system_prompt: Configured using SystemPromptDetector model. Example: {"enabled": True, "index": "system_prompt_index"}
Example usage:
{
"injection_attack": {"enabled": True},
"nsfw": {"enabled": True}
}Returns: A dictionary containing the response message and updated policy details.
Inputs: detectors (required), policy_name (required), policy_description.
use_policy_to_detectC
Use a policy to detect violations in the provided text.
Args: policy_name: The name of the policy to use for detection. text: The text to check for policy violations.
Returns: A dictionary containing the response message and details of the detection.
Inputs: policy_name (required), text (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 28 tools
Multiple tools have overlapping purposes that could cause confusion. For example, add_redteam_task, add_agent_redteam_task, and add_custom_redteam_task all create red team tasks with subtle differences that may not be clear from their names alone. Similarly, add_model and add_model_from_url both add models but with different configurations, and guardrails_detect vs use_policy_to_detect both perform detection but with different approaches. The descriptions help, but the boundaries are unclear.
Most tools follow a consistent verb_noun pattern (e.g., add_model, get_model_details, list_models, remove_model), which is clear and predictable. However, there are minor deviations like guardrails_detect (noun_verb) and use_policy_to_detect (verb_noun_preposition_noun), which break the pattern slightly but are still readable. Overall, the naming is mostly consistent.
With 28 tools, the count feels excessive for the apparent scope of AI model and red teaming management. Many tools could be consolidated (e.g., multiple red team task additions, redundant detection tools), leading to a bloated interface. A well-scoped server for this domain would typically have 10-15 tools, making this set heavy and potentially overwhelming for agents.
The tool set covers a broad range of operations for managing AI models, red teaming tasks, deployments, and guardrails policies, including CRUD actions and workflow steps like hardening system prompts. However, there are minor gaps, such as no tools for updating or deleting red team tasks directly, and some operations rely on combinations of tools that might be less intuitive. Overall, the surface is largely complete for the domain.
Maintenance
Related MCP Connectors
Scan prompts for injection attacks, redact PII, and audit LLM SDK usage from any MCP client
Real-time MCP & A2A prompt-injection, jailbreak, and tool-schema poisoning firewall for AI agents.
Security scanner for AI agents and MCP servers: injection, jailbreak, tool abuse.
Zero-log MCP server with 49 tools for AI guardrails, secret scanning, MCP linting & EU compliance.
491
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides prompt injection detection, PII/secrets redaction, and an audit trail for AI agents via MCP tools.4MIT
- FlicenseNot gradedqualityBmaintenanceEnables deterministic detection and neutralization of adversarial prompt injections and override attempts in AI agent workflows via a zero-dependency MCP server, providing structured telemetry and low-latency validation.8-
- FlicenseNot gradedqualityBmaintenanceEnables autonomous agents and MCP-compatible clients to route inputs through a deterministic firewall that flags and sanitizes prompt injection, jailbreaks, system prompt exfiltration, and tool hijacking. It supports JSON-RPC stdio integration for tools like Claude Desktop, Cursor, and multi-agent frameworks.7-
- AlicenseNot gradedqualityNot gradedmaintenanceEnables real-time indirect prompt injection fuzzing, exfiltration canary detection, least-privilege tool sandboxing, and cryptographic audit proofs over MCP.MIT