Crypto Tools MCP Server
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., "@Crypto Tools MCP Servercheck FIPS compliance for AES-256"
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.
Crypto Tools MCP Server
Defense-grade cryptographic compliance and analysis tools for MCP.
Part of the Agentic System - a 24/7 autonomous AI framework with persistent memory.
Features
Defense Compliance Modules
FIPS 140-3 Validator - Validate algorithms against Federal Information Processing Standards
CNSA 2.0 Analyzer - NSA Commercial National Security Algorithm Suite readiness
Post-Quantum Readiness - NIST FIPS 203/204/205 quantum vulnerability assessment
Key Lifecycle Manager - Key state management per NIST SP 800-57 Part 1 Rev 5
Crypto Audit Engine - Code/config scanning with CWE mapping and SARIF output
Classical Cryptography
Caesar Cipher - Encrypt, decrypt, and crack with frequency analysis
Vigenere Cipher - Polyalphabetic substitution cipher
XOR Analysis - XOR encryption/decryption and brute-force key recovery
ROT13 - Self-inverse Caesar variant
Frequency Analysis - Letter frequency and Index of Coincidence
Cipher Detection - Automatic cipher type identification
Related MCP server: fallvault-mcp
Tools
Compliance Tools
Tool | Description |
| Validate algorithms against FIPS 140-3 approved list |
| Check CNSA 2.0 readiness with gap analysis |
| Post-quantum cryptography readiness assessment |
| Key lifecycle management per SP 800-57 |
| Scan code for cryptographic issues (CWE mapped) |
| Unified report across all standards |
Classical Crypto Tools
Tool | Description |
| Encrypt plaintext with Caesar cipher |
| Decrypt ciphertext with known shift |
| Crack Caesar cipher using frequency analysis |
| Analyze letter frequencies in text |
| ROT13 encode/decode (self-inverse) |
| Encrypt with Vigenere cipher |
| Decrypt with known Vigenere key |
| XOR encrypt/decrypt with key |
| Brute-force XOR with single-byte keys |
| Identify cipher type used |
| Generate cryptographically secure random key |
| Validate key strength for an algorithm |
FIPS 140-3 Compliance
Validates algorithms against the FIPS 140-3 approved list per NIST SP 800-131A Rev 2.
Approved Algorithms
Category | Algorithms | Standard |
Symmetric | AES-128, AES-192, AES-256, AES-GCM, AES-CCM | FIPS 197, SP 800-38D |
Hash | SHA-224, SHA-256, SHA-384, SHA-512, SHA-3 family | FIPS 180-4, FIPS 202 |
MAC | HMAC-SHA-2, CMAC-AES, GMAC-AES | FIPS 198-1, SP 800-38B |
Signature | RSA (2048+), ECDSA (P-256/384/521), EdDSA | FIPS 186-5 |
Post-Quantum | ML-KEM, ML-DSA, SLH-DSA | FIPS 203, 204, 205 |
DRBG | CTR_DRBG, Hash_DRBG, HMAC_DRBG | SP 800-90A Rev 1 |
KDF | SP 800-108, SP 800-56C, HKDF, PBKDF2 | SP 800-108, SP 800-56C |
Key Wrap | AES-KW, AES-KWP | SP 800-38F |
Disallowed Algorithms
Algorithm | Reason |
MD5 | Collision attacks trivial |
SHA-1 | Practical collision attacks (SHAttered, 2017) |
DES | 56-bit key, brute-forceable since 1998 |
3DES/TDEA | 64-bit block size (Sweet32), deprecated 2023 |
RC4 | Statistical biases, banned in TLS |
Blowfish | 64-bit block size, not FIPS approved |
Dual_EC_DRBG | NSA backdoor, withdrawn |
Usage Example
check_fips_compliance(algorithms="AES-256,SHA-384,RSA-2048,MD5,3DES")CNSA 2.0 (National Security Systems)
Analyzes cryptographic posture against NSA's Commercial National Security Algorithm Suite 2.0.
CNSA 2.0 Required Algorithms
Use Case | Algorithm | Parameter |
Symmetric Encryption | AES-256 | 256-bit key (not 128/192) |
Hashing | SHA-384 | Minimum (not SHA-256) |
Key Encapsulation | ML-KEM-1024 | NIST Level 5 (not 512/768) |
Digital Signatures | ML-DSA-87 | NIST Level 5 (not 44/65) |
Hash-Based Signatures | SLH-DSA-256 | NIST Level 5 (alternative) |
CNSA 2.0 Transition Timeline
Category | Deadline | Requirement |
Software/firmware signing | 2025 | ML-DSA-87 or SLH-DSA-256 |
Web servers/browsers (TLS) | 2025 | ML-KEM-1024 + ML-DSA-87 |
Cloud services | 2025 | Full CNSA 2.0 suite |
Networking equipment | 2026 | ML-KEM-1024 + ML-DSA-87 |
Operating systems | 2027 | Native PQC support |
Custom/niche applications | 2030 | Complete PQC migration |
All NSS (full compliance) | 2033 | Classical algorithms retired |
CNSA 1.0 vs 2.0
Use Case | CNSA 1.0 | CNSA 2.0 | Change |
Symmetric | AES-256 | AES-256 | No change |
Hash | SHA-384 | SHA-384 | No change |
Signatures | ECDSA-P384, RSA-3072+ | ML-DSA-87, SLH-DSA-256 | Classical -> PQC |
Key Exchange | ECDH-P384, DH-3072+ | ML-KEM-1024 | ECDH -> Lattice KEM |
Usage Example
analyze_cnsa_compliance(algorithms="AES-256,ECDSA-P384,SHA-256,RSA-2048")Post-Quantum Cryptography (FIPS 203/204/205)
Assesses readiness for the quantum computing threat per NIST post-quantum standards.
NIST PQC Standards
Standard | Algorithm | Type | NIST Level | Key Size | Sig/CT Size |
FIPS 203 | ML-KEM-512 | KEM | 1 | 800 B | 768 B |
FIPS 203 | ML-KEM-768 | KEM | 3 | 1,184 B | 1,088 B |
FIPS 203 | ML-KEM-1024 | KEM | 5 | 1,568 B | 1,568 B |
FIPS 204 | ML-DSA-44 | Signature | 2 | 1,312 B | 2,420 B |
FIPS 204 | ML-DSA-65 | Signature | 3 | 1,952 B | 3,309 B |
FIPS 204 | ML-DSA-87 | Signature | 5 | 2,592 B | 4,627 B |
FIPS 205 | SLH-DSA-128s | Signature | 1 | 32 B | 7,856 B |
FIPS 205 | SLH-DSA-256s | Signature | 5 | 64 B | 29,792 B |
Quantum Vulnerability
Algorithm | Attack | Quantum Security |
RSA (all sizes) | Shor's algorithm | 0 bits (broken) |
ECDSA/ECDH (all curves) | Shor's algorithm | 0 bits (broken) |
DH (all sizes) | Shor's algorithm | 0 bits (broken) |
AES-128 | Grover's algorithm | 64 bits (reduced) |
AES-256 | Grover's algorithm | 128 bits (adequate) |
SHA-256 | Grover's algorithm | 128 bits (adequate) |
HNDL Threat Assessment
Harvest-Now-Decrypt-Later (HNDL): adversaries intercept encrypted data today to decrypt once quantum computers are available. The tool calculates HNDL risk based on data sensitivity, shelf life, and algorithm vulnerability.
Usage Example
assess_pqc_readiness(
algorithms="RSA-2048,ECDSA-P256,AES-256,SHA-256",
data_sensitivity="critical",
data_shelf_life_years=15,
system_type="nss"
)Key Lifecycle Management (SP 800-57)
Manages cryptographic key states and cryptoperiods per NIST SP 800-57 Part 1 Rev 5.
Key States
Pre-activation -> Active -> Deactivated -> Destroyed
| |
v v
Suspended Compromised -> Destroyed-CompromisedCryptoperiod Limits
Key Type | Max Active Period |
Session key (TLS) | 24 hours |
API key | 90 days |
Master key | 1 year |
SSH key | 1 year |
TLS certificate key | 398 days |
Symmetric encryption | 2 years |
Signing private key | 3 years |
Intermediate CA | 3-5 years |
Root CA | 10-20 years |
Usage Examples
# Create and track a key
manage_key_lifecycle(action="create", key_id="prod-aes-1", name="Production AES Key",
key_type="symmetric_encryption", algorithm="AES-256",
owner="security-team", location="AWS KMS")
# Activate the key
manage_key_lifecycle(action="transition", key_id="prod-aes-1", new_state="active")
# Check compliance
manage_key_lifecycle(action="check", key_id="prod-aes-1")
# Get full inventory
manage_key_lifecycle(action="inventory")
# Check rotation schedule
manage_key_lifecycle(action="rotation")
# Validate key management practices
manage_key_lifecycle(action="validate_practice",
practice_description="Keys stored in HSM with RBAC, rotated annually...")Crypto Audit Engine
Scans code and configuration for cryptographic security issues with CWE mapping.
Detection Categories
Category | Rules | CWE IDs |
Hardcoded Secrets | Keys, AWS creds, hex material | CWE-798 |
Weak Random | Non-CSPRNG usage | CWE-330, CWE-338 |
Broken Algorithms | MD5, SHA-1, DES, RC4 | CWE-327, CWE-328 |
Insecure Modes | ECB, CBC without HMAC | CWE-327 |
Missing KDF | Raw password as key | CWE-327 |
Weak Key Length | RSA <2048, short symmetric | CWE-326 |
Certificate Issues | verify=False, CERT_NONE | CWE-295 |
Insecure TLS | SSLv3, TLS 1.0, TLS 1.1 | CWE-757 |
Timing Attacks | Non-constant-time comparison | CWE-208 |
SARIF Output
The audit engine outputs SARIF (Static Analysis Results Interchange Format) for CI/CD integration with GitHub Code Scanning, Azure DevOps, and other platforms.
Usage Example
# Audit source code
audit_crypto_usage(text="import hashlib\nh = hashlib.md5(data)\nkey = 'hardcoded_secret_key'")
# Get SARIF output for CI/CD
audit_crypto_usage(text=source_code, output_format="sarif")Comprehensive Compliance Report
Generate a unified report covering all standards.
generate_compliance_report(
algorithms="AES-256,RSA-2048,SHA-256,ECDSA-P256",
scan_text=source_code,
system_type="federal",
data_sensitivity="high",
data_shelf_life_years=10
)Compliance Coverage Matrix
Standard | Control | Coverage |
FIPS 140-3 | Algorithm validation | Full |
SP 800-131A Rev 2 | Algorithm transitions | Full |
SP 800-57 Part 1 | Key management | Full |
SP 800-53 SC-12 | Key establishment | Full |
SP 800-53 SC-13 | Cryptographic protection | Full |
SP 800-53 SC-17 | PKI certificates | Partial |
SP 800-53 SC-28 | Information at rest | Partial |
CNSA 2.0 | NSS algorithm suite | Full |
CNSSP 15 | AES policy | Full |
FIPS 203 | ML-KEM | Full |
FIPS 204 | ML-DSA | Full |
FIPS 205 | SLH-DSA | Full |
OMB M-23-02 | PQC migration | Full |
SP 800-88 | Media sanitization | Guidance |
Testing
# Run all tests with coverage
python -m pytest tests/ -v --cov=crypto_tools_mcp --cov-report=term-missing
# Run compliance tests only
python -m pytest tests/test_compliance.py -v
# Run classical cipher tests only
python -m pytest tests/test_encryption.py tests/test_hashing.py -vTest coverage: 412 tests across 6 test modules covering classical ciphers, key management, MCP tool registration, and all five compliance modules (FIPS, CNSA, PQC, Key Lifecycle, Crypto Audit).
Installation
# Clone and install
git clone https://github.com/marc-shade/crypto-tools-mcp.git
cd crypto-tools-mcp
pip install -e .
# Or install with uv
uv pip install -e .MCP Configuration
Add to your Claude Desktop or MCP client configuration:
{
"mcpServers": {
"crypto-tools": {
"command": "crypto-tools-mcp"
}
}
}Part of the MCP Ecosystem
This server integrates with other MCP servers for comprehensive AGI capabilities:
Server | Purpose |
4-tier persistent memory with semantic search | |
Persistent task queues and goal decomposition | |
Full AGI orchestration with 21 tools | |
Distributed task routing across nodes | |
Inter-node AI communication | |
Production-only policy enforcement |
See agentic-system-oss for the complete framework.
Available Tools
18 toolsanalyze_cnsa_complianceA
Check NSA CNSA 2.0 readiness for National Security Systems.
Analyzes algorithms against CNSA 2.0 requirements (AES-256, SHA-384, ML-KEM-1024, ML-DSA-87), tracks transition timeline, and assesses crypto agility.
Args: algorithms: Comma-separated algorithm names (e.g. "AES-256,ECDSA-P384,SHA-256") include_gap_analysis: Include full gap analysis with migration roadmap (default True) scan_text: Optional source code or config text to scan
Returns: JSON CNSA 2.0 compliance analysis with gap assessment
| Name | Required | Description | Default |
|---|---|---|---|
| algorithms | Yes | ||
| include_gap_analysis | No | ||
| scan_text | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool performs analysis, tracks transition timeline, assesses crypto agility, and returns JSON. However, it does not mention whether it modifies any state or has side effects, which is a minor 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 concise (about 4 sentences) with a clear 'Args:' section. It front-loads the purpose and contains no redundant information. Every sentence adds value.
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?
An output schema exists, so the description's mention of returning JSON is sufficient. Parameter documentation is complete. The tool's complexity is moderate, and the description covers essential aspects comprehensively.
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?
Input schema has 0% description coverage, but the description provides clear meaning for all three parameters: algorithms as comma-separated names, include_gap_analysis as optional boolean with default, scan_text as optional string. This fully compensates for the schema gap.
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 checks NSA CNSA 2.0 readiness for National Security Systems, specifying the verb, resource, and context. It distinguishes from sibling tools like check_fips_compliance and generate_compliance_report.
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 usage for CNSA compliance analysis but does not explicitly state when to use this tool over alternatives like assess_pqc_readiness or audit_crypto_usage. No when-not or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assess_pqc_readinessB
Assess post-quantum cryptography readiness per FIPS 203/204/205.
Evaluates quantum vulnerability of current algorithms, calculates quantum risk scores, assesses Harvest-Now-Decrypt-Later threats, and generates PQC migration roadmaps.
Args: algorithms: Comma-separated algorithm names (e.g. "RSA-2048,ECDSA-P256,AES-256") data_sensitivity: Data sensitivity level - "low", "medium", "high", or "critical" data_shelf_life_years: How many years data must remain confidential system_type: System type - "nss" (National Security), "federal", or "general" include_hndl: Include Harvest-Now-Decrypt-Later assessment (default True) include_roadmap: Include migration roadmap (default True)
Returns: JSON post-quantum readiness assessment with risk scores and migration plan
| Name | Required | Description | Default |
|---|---|---|---|
| algorithms | Yes | ||
| data_sensitivity | No | high | |
| data_shelf_life_years | No | ||
| system_type | No | general | |
| include_hndl | No | ||
| include_roadmap | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description fails to disclose behavioral traits such as authorization requirements, rate limits, or side effects. It only describes functionality without operational context.
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?
Concise description with front-loaded purpose and structured parameter list. Every sentence adds value without 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?
Given the 6 parameters and output schema, the description covers the tool's purpose, inputs, and output type. It lacks only some behavioral context, but is otherwise 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?
The Args section in the description adds meaning to all 6 parameters beyond the bare schema, which has 0% description coverage. It explains valid values for data_sensitivity and default behaviors for booleans.
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?
Clearly states it assesses post-quantum cryptography readiness per FIPS 203/204/205, evaluates vulnerability, calculates risk scores, and generates migration roadmaps. Distinguishes from sibling tools like brute_force_xor or caesar_crack by focusing on PQC.
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 explicit guidance on when to use this tool versus alternatives like analyze_cnsa_compliance or check_fips_compliance. The description explains parameters but does not provide context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_crypto_usageA
Scan text or code for cryptographic security issues.
Detects hardcoded keys, weak algorithms, insecure modes (ECB), missing key derivation, disabled certificate validation, insecure TLS versions, and more. Maps findings to CWE IDs.
Args: text: Source code, configuration, or documentation text to audit output_format: Output format - "json" (default) or "sarif" for CI/CD integration
Returns: JSON audit report with findings, CWE mappings, and remediation
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| output_format | No | json |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description is adequate for a read-only scan tool. It doesn't explicitly state non-destructive or safe behavior, but the scanning nature is clear.
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?
Concise two-paragraph description with no wasted words. Clearly separates purpose, detection list, arguments, and returns.
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's complexity and the presence of an output schema, the description covers scope, parameters, and return format adequately.
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 explains both parameters, adding default values and purpose beyond the sparse schema. This compensates for the 0% schema description coverage.
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 scans for cryptographic security issues and lists specific detections. It distinguishes itself from some siblings (e.g., compliance tools) but doesn't explicitly contrast with all related 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 implies usage by listing detections but lacks explicit when-to-use guidance or alternatives. Users must infer from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brute_force_xorA
Brute force XOR cipher with single-byte or short keys.
Args: ciphertext_hex: Hex-encoded ciphertext max_key_length: Maximum key length to try (1-4)
Returns: JSON with potential plaintexts
| Name | Required | Description | Default |
|---|---|---|---|
| ciphertext_hex | Yes | ||
| max_key_length | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 disclosing behavioral traits. The description does not mention whether the tool is read-only, destructive, or any side effects. It only states that it returns potential plaintexts, leaving the agent uninformed about safety or resource implications.
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 extremely concise, using a clear docstring format with Args and Returns. Every sentence is necessary and no extraneous information is included.
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 only two simple parameters and an output schema exists (mentioned but not shown), the description is fairly complete. It covers the purpose, parameters, and return type. However, it could explicitly note that max_key_length accepts 1-4 and mention the output schema 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%, so the description must add value. It explains that 'ciphertext_hex' is hex-encoded ciphertext and 'max_key_length' has a default of 4 and range 1-4, which adds necessary context beyond the basic type definitions. However, it could provide more detail, such as example hex format or the exact output structure.
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: brute-forcing XOR ciphers with single-byte or short keys. It uses a specific verb 'brute force' and resource 'XOR cipher', and distinguishes itself from sibling tools like 'xor_cipher' and 'caesar_crack' by specifying the attack method.
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 does not explicitly state when to use this tool versus alternatives like 'xor_cipher' or frequency analysis. It implies usage for short-key XOR cracking but provides no guidance on when not to use it or when other tools are preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
caesar_crackA
Crack Caesar cipher using frequency analysis.
Args: ciphertext: Encrypted text to crack show_all: Show all 26 possible decryptions
Returns: JSON with most likely plaintext and shift value
| Name | Required | Description | Default |
|---|---|---|---|
| ciphertext | Yes | ||
| show_all | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the method (frequency analysis) and return format (JSON with plaintext and shift). However, lacks details like language dependency (assumes English?), error handling, or limitations. No annotations are present, so the description carries the full burden, which is partially met.
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?
Structured with Args and Returns sections, no redundant sentences. Extremely concise while conveying essential information.
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 existence of an output schema (not shown but signaled), the description adequately covers the return format. However, it could mention that frequency analysis assumes English text, which is a key constraint for accurate cracking. Overall, sufficient for a well-typed tool.
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?
Provides clear, separate descriptions for each parameter in the Args section: 'ciphertext: Encrypted text to crack' and 'show_all: Show all 26 possible decryptions'. The schema itself has no parameter descriptions, so the description fully compensates with 100% coverage.
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?
Clearly states 'Crack Caesar cipher using frequency analysis', specifying both the method and target cipher. Distinguishes from siblings like caesar_decrypt (which requires a known key) and frequency_analysis (which only performs analysis).
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 explicit guidance on when to use this tool vs alternatives like caesar_decrypt. The description implies it's for unknown shifts but does not state exclusions or provide context for selection among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
caesar_decryptB
Decrypt ciphertext using Caesar cipher with known shift.
Args: ciphertext: Text to decrypt shift: Number of positions that were shifted
Returns: JSON with decrypted plaintext
| Name | Required | Description | Default |
|---|---|---|---|
| ciphertext | Yes | ||
| shift | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It does not disclose handling of non-alphabetic characters, case sensitivity, or edge cases. Only states a straightforward decryption.
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?
Very concise, uses docstring format with Args/Returns. Two sentences for purpose plus parameter descriptions, no wasted words.
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 Caesar cipher tool, description covers the essentials. Could mention letter-only handling or case, but output schema exists and context is mostly 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_description_coverage is 0%, so description must compensate. It provides basic explanations for ciphertext and shift, but no constraints (e.g., shift range 1-25) or format 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 clearly states the tool decrypts ciphertext using the Caesar cipher with a known shift. It distinguishes itself from siblings like caesar_crack (which cracks without known shift) and caesar_encrypt.
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 on when to use this tool vs alternatives (e.g., caesar_crack if shift unknown, rot13 for fixed shift). No exclusions or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
caesar_encryptB
Encrypt plaintext using Caesar cipher.
Args: plaintext: Text to encrypt shift: Number of positions to shift (default: 3)
Returns: JSON with encrypted ciphertext
| Name | Required | Description | Default |
|---|---|---|---|
| plaintext | Yes | ||
| shift | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the full burden of disclosing behavior. It mentions encryption with a shift but omits details like alphabet wrapping, case sensitivity, or handling of non-alphabetic characters, which are important for an agent to invoke the tool correctly.
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 extremely concise: a single sentence for the purpose, followed by a minimal parameter list. It is front-loaded with the main action, and every sentence adds value without any waste.
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's simplicity and the presence of an output schema (as indicated by context signals), the description is adequate but incomplete. It misses behavioral specifics such as how the shift wraps around the alphabet and how non-letters are treated, which are needed for a fully informed 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%, so the description must add meaning. It does explain each parameter briefly ('Text to encrypt', 'Number of positions to shift'), which clarifies their purpose beyond the schema's bare titles. However, it lacks details like allowed range for shift or data format.
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 encrypts plaintext using the Caesar cipher, specifying the verb 'encrypt' and the resource. It distinguishes itself from sibling tools like caesar_decrypt and caesar_crack by its encryption function.
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 vigenere_encrypt or rot13. It lacks any explicit context or exclusion criteria, leaving the agent without decision-support information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_fips_complianceA
Validate cryptographic algorithms against FIPS 140-3 approved list.
Checks algorithm compliance, key lengths, security strength per SP 800-57, and maps findings to NIST 800-53 controls (SC-12, SC-13).
Args: algorithms: Comma-separated list of algorithm names (e.g. "AES-256,SHA-384,RSA-2048,MD5") scan_text: Optional source code or config text to scan for algorithm usage
Returns: JSON FIPS 140-3 compliance report with pass/fail per algorithm
| Name | Required | Description | Default |
|---|---|---|---|
| algorithms | Yes | ||
| scan_text | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 describes the process (compliance checks, key length verification, mapping to controls) and the output (JSON report). It does not mention side effects or limitations, but is generally transparent for a validation 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 concise and front-loaded with the primary purpose. It uses a brief explanation followed by clear parameter and return value descriptions. Every sentence adds value without 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?
Given the tool's simplicity (2 params, 1 required) and presence of an output schema, the description adequately covers purpose, parameters, and return type. No additional context seems necessary for an agent to use this 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 0% description coverage, but the description's 'Args' block adds full semantics: 'algorithms' is a comma-separated list, 'scan_text' is optional source code. This compensates completely for the missing schema descriptions.
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 validates cryptographic algorithms against FIPS 140-3, with specific verbs 'Validate' and 'Checks'. It distinguishes from siblings like 'analyze_cnsa_compliance' and 'assess_pqc_readiness' by focusing on FIPS compliance and mapping to NIST controls.
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 usage for FIPS compliance validation and mentions specific checks (key lengths, security strength). However, it does not explicitly state when not to use it or list alternatives, though the sibling list provides context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_cipher_typeB
Attempt to identify the type of cipher used.
Args: ciphertext: Encrypted text to analyze
Returns: JSON with cipher type analysis
| Name | Required | Description | Default |
|---|---|---|---|
| ciphertext | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavior. It only mentions 'attempt to identify,' but fails to specify whether the tool is read-only, what happens on failure, or any side effects. The return is described vaguely as 'JSON with cipher type analysis.'
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 extremely concise with two lines of content plus an arguments list. The first sentence immediately states the purpose, and every sentence is necessary. 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?
Given the tool has an output schema (not shown) and only one parameter, the description is minimally adequate. However, it lacks details on return format, error conditions, or limitations of the analysis. More context would be beneficial.
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 no property descriptions (0% coverage), so the description adds value by explaining 'ciphertext' as 'Encrypted text to analyze.' This is minimal but clarifies the parameter's role. Baseline 3 is appropriate.
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: 'Attempt to identify the type of cipher used.' This is a specific verb ('identify') and resource ('cipher type'), making it distinguishable from sibling tools like caesar_crack or brute_force_xor, which focus on cracking specific ciphers.
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. With siblings like frequency_analysis and various cipher crackers, the description lacks context for selection, e.g., 'Use this first to determine the cipher type before attempting decryption.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
frequency_analysisA
Perform letter frequency analysis on text.
Args: text: Text to analyze
Returns: JSON with letter frequencies and comparison to English
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are given, so the description must cover behavioral traits. It describes return values but does not state whether the tool is read-only or if it has side effects. For a simple analysis tool, this is adequate but not comprehensive.
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 with only five lines, including structured Args and Returns sections. Every sentence adds value with no 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?
Given the tool's simplicity (one parameter, no nested objects) and the presence of an output schema (context indicates true), the description adequately covers the purpose and return format. It does not detail the output schema, but that is not required per guidelines.
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 only parameter 'text' has schema type 'string' with no description. The description adds 'Text to analyze', which restates the parameter name without further clarification. Schema coverage is 0%, but the parameter is simple and the description provides minimal extra meaning.
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 'perform' and the resource 'letter frequency analysis on text', specifying the action and input. It is distinct from sibling tools like caesar_crack or detect_cipher_type, which focus on different operations.
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. Among siblings, detect_cipher_type or brute_force_xor may be related, but no exclusions or contexts are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_compliance_reportA
Generate comprehensive cryptographic compliance report covering FIPS 140-3, CNSA 2.0, post-quantum readiness, and code audit.
Produces a unified report suitable for security assessments, compliance audits, and migration planning.
Args: algorithms: Comma-separated algorithm names to evaluate scan_text: Optional source code or config text to audit system_type: System type - "nss", "federal", or "general" data_sensitivity: Data sensitivity - "low", "medium", "high", or "critical" data_shelf_life_years: How many years data must remain confidential
Returns: JSON comprehensive compliance report across all standards
| Name | Required | Description | Default |
|---|---|---|---|
| algorithms | Yes | ||
| scan_text | No | ||
| system_type | No | general | |
| data_sensitivity | No | high | |
| data_shelf_life_years | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as side effects, permissions required, or rate limits. It only states the output is a JSON report, leaving the agent unaware of potential write operations or authentication needs for a tool that likely reads cryptographic data.
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 reasonably concise, with two main sentences followed by a parameter list. It avoids unnecessary details and uses line breaks for readability. The parameter descriptions are succinct but informative.
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 five parameters and an output schema exists, the description sufficiently covers the report's scope and all parameters. It explains what the report covers and what each parameter does, though it could mention the output format or any constraints on the algorithms parameter.
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?
Despite 0% schema description coverage, the description adds meaningful details for each parameter: algorithms as comma-separated names, scan_text as optional source code, system_type with listed options (nss, federal, general), data_sensitivity with levels, and data_shelf_life_years as years. This compensates for the bare schema and aids correct invocation.
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 generates a comprehensive cryptographic compliance report covering FIPS 140-3, CNSA 2.0, post-quantum readiness, and code audit. This specific verb-resource combination distinguishes it from sibling tools like check_fips_compliance or analyze_cnsa_compliance, which focus on individual standards.
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 mentions the tool is suitable for security assessments, compliance audits, and migration planning, but does not explicitly state when to use this tool versus more specific siblings. The context suggests it is the comprehensive option, but no direct guidance or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_keyA
Generate a cryptographically secure random key.
Args: length: Key length (8-64 characters) charset: Character set - alphanumeric, hex, alpha, or full purpose: Description of key purpose for audit log
Returns: JSON with generated key and security info
| Name | Required | Description | Default |
|---|---|---|---|
| length | No | ||
| charset | No | alphanumeric | |
| purpose | No | general |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden but adds minimal behavioral info beyond stating it is cryptographically secure. It does not disclose whether the operation has side effects, requires special permissions, or affects system state.
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 extremely concise with a clear structure: a one-line summary followed by an Args list and Returns line. Every sentence adds value 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?
Given the presence of an output schema, the description covers all key aspects: generated key, length constraints, charset options, audit trail purpose. It is nearly complete for a key generation tool.
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% (no descriptions in input schema), but the description provides meaningful parameter details: length range (8-64), charset options (alphanumeric, hex, alpha, full), and purpose for audit. This compensates well for the lack of schema descriptions.
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 generates a cryptographically secure random key, which is a specific verb-resource combination. It distinguishes itself from sibling tools like validate_key and manage_key_lifecycle.
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 on when to use this tool versus alternatives like manage_key_lifecycle or validate_key. The description lacks context about prerequisites or scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_key_lifecycleA
Manage cryptographic key lifecycle per NIST SP 800-57.
Actions: create, transition, check, inventory, rotation, policies, destroy_guidance, report, validate_practice
Args: action: Action to perform - "create", "transition", "check", "inventory", "rotation", "policies", "destroy_guidance", "report", "validate_practice" key_id: Key identifier (required for create, transition, check) name: Human-readable key name (for create) key_type: Key type e.g. "symmetric_encryption", "tls_key", "api_key" (for create) algorithm: Algorithm e.g. "AES-256", "RSA-4096" (for create) key_length_bits: Key length in bits (for create) new_state: Target state for transition - "active", "deactivated", "compromised", "destroyed" reason: Reason for state transition owner: Key owner/custodian location: Key storage location (e.g. "HSM", "AWS KMS") purpose: Key purpose description practice_description: Text description of key management practices (for validate_practice)
Returns: JSON key lifecycle management result
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| key_id | No | ||
| name | No | ||
| key_type | No | symmetric_encryption | |
| algorithm | No | AES-256 | |
| key_length_bits | No | ||
| new_state | No | ||
| reason | No | ||
| owner | No | ||
| location | No | ||
| purpose | No | ||
| practice_description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Provides standard reference and action list, but lacks disclosure of side effects, permission requirements, or irreversible actions. With no annotations, description adds some context but remains incomplete.
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?
Starts with clear purpose statement, then structured list of actions and parameters. No redundant sentences, but the description could be more front-loaded with essential context.
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?
Covers actions and parameters adequately, but lacks examples, error handling, or ordering of operations. Output schema exists but not explained. Adequate for a complex tool but with noticeable 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?
Schema has 0% description coverage. Description compensates by explicitly listing each parameter with its purpose and applicable context, especially for actions. Clear mapping of parameters to actions.
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?
Clearly states 'Manage cryptographic key lifecycle per NIST SP 800-57' and enumerates specific actions. Distinct from sibling tools which focus on specific cryptographic operations or compliance checks.
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?
Implied usage via action list, but no explicit guidance on when to use this tool versus alternatives like generate_key or validate_key. No when-not or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rot13A
Apply ROT13 cipher (self-inverse: encoding = decoding).
Args: text: Text to encode/decode
Returns: JSON with ROT13 result
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full burden. It notes self-inverse behavior and JSON return, but lacks details on case handling, non-alphabetic characters, or potential edge cases. Barely adequate.
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?
Extremely concise—three lines with clear purpose, argument doc, and return description. No fluff; 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?
Given low complexity and presence of an output schema, the description adequately covers input, operation, and output. However, it lacks notes on typical usage, character set, or limitations, but is complete enough for a straightforward cipher.
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%, but the description defines 'text' as 'Text to encode/decode', adding functional meaning beyond the schema's type-only definition. For a single simple parameter, this is sufficient.
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 'Apply ROT13 cipher' with the self-inverse property, distinguishing it from sibling tools like caesar_encrypt/caesar_decrypt. The verb 'Apply' and resource 'ROT13 cipher' are specific.
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 on when to use rot13 versus alternatives like caesar or vigenere ciphers. The self-inverse hint is present but no explicit when/not or sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_keyA
Validate a key's strength for the specified algorithm.
Args: key: Key to validate algorithm: Target algorithm (caesar, vigenere, xor)
Returns: JSON with validation results and recommendations
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| algorithm | No | vigenere |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states the return is 'JSON with validation results and recommendations,' providing some transparency, but lacks details on side effects, error conditions, or whether it modifies state.
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 with three lines plus Args and Returns, front-loading the purpose. No unnecessary words or redundant information.
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 0% schema coverage and no annotations, the description is adequate but relies on the presence of an output schema for detail. It lacks specifics on validation criteria and output structure.
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 meaning beyond the schema by listing valid algorithms (caesar, vigenere, xor) in the Args section, compensating for 0% schema description coverage. However, it does not detail key format or strength criteria.
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 validates a key's strength for a specified algorithm, using specific verbs and resources. It distinguishes from siblings like generate_key (key generation) and others.
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 usage for validating key strength before encryption or similar operations, but does not explicitly state when to use this tool versus alternatives like analyze_cnsa_compliance or detect_cipher_type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vigenere_decryptC
Decrypt ciphertext using Vigenère cipher with known key.
Args: ciphertext: Text to decrypt key: Decryption key
Returns: JSON with decrypted plaintext
| Name | Required | Description | Default |
|---|---|---|---|
| ciphertext | Yes | ||
| key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose behavioral traits such as key validation, case sensitivity, error handling, or that an incorrect key yields garbled output. This is insufficient for a decryption 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 short and front-loaded with the main purpose. However, the Args and Returns sections are redundant given the schema and output schema, but not overly verbose.
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 but lacks details on prerequisites (e.g., key must be alphabetic), edge cases (e.g., non-alphabetic characters), and error conditions. An output schema exists, so return value description is not needed, but other context is missing.
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%, meaning the description adds no additional meaning beyond the input schema. The Args section merely restates parameter names and types without explaining constraints or formats.
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 decrypts ciphertext using the Vigenère cipher with a known key. It uses a specific verb and resource, but does not distinguish from sibling tools like vigenere_encrypt or caesar_decrypt.
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 on when to use this tool over alternatives like caesar_decrypt or brute_force_xor. The description does not mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vigenere_encryptA
Encrypt plaintext using Vigenère cipher.
Args: plaintext: Text to encrypt key: Encryption key (letters only) validate: Whether to validate key strength (default: True)
Returns: JSON with encrypted ciphertext
| Name | Required | Description | Default |
|---|---|---|---|
| plaintext | Yes | ||
| key | Yes | ||
| validate | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the return format (JSON with ciphertext) and hints at key validation via the 'validate' parameter, but it does not describe behavior on validation failure, handling of non-letter characters, or limitations. The phrase 'validate key strength' is ambiguous.
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 short and front-loaded with the purpose. The Args and Returns sections are structured and easy to parse. One minor point: the validation description could be clearer, but overall it is appropriately sized for a simple tool.
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 with 3 parameters and a straightforward output. The description covers the main functionality but lacks details on edge cases (e.g., non-alphabetic input, key validation errors). Given the output schema exists, the description does not need to detail return values beyond 'JSON with encrypted ciphertext,' which is sufficient.
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. It adds meaningful descriptions for all three parameters in the Args section (e.g., 'key: Encryption key (letters only)'), which clarifies constraints not in the schema (e.g., key must be letters). This adds significant value beyond type 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 starts with 'Encrypt plaintext using Vigenère cipher,' which clearly states the tool's action (encrypt), resource (plaintext), and algorithm (Vigenère). This distinctly differentiates it from siblings like vigenere_decrypt, caesar_encrypt, and other crypto 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 does not explicitly state when to use this tool versus alternatives like vigenere_decrypt or validate_key. It implies use for encryption, but lacks guidance on prerequisites (e.g., key must be letters only) or when not to use it. However, the context of sibling tools gives implicit differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xor_cipherA
XOR encrypt/decrypt text with a key.
Args: text: Text or hex string to process key: XOR key input_hex: If True, treat input as hex string
Returns: JSON with XOR result in multiple formats
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| key | Yes | ||
| input_hex | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It mentions encrypt/decrypt functionality and return format, but lacks details on edge cases like key handling, character encoding, or reversibility.
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: a one-line summary followed by clean args/returns sections. Every sentence adds value, 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?
Given the tool's simplicity and presence of an output schema, the description covers essential functionality and parameters. It could mention encoding or key length issues, but is largely 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%, but the description adds meaning for each parameter: text is 'Text or hex string', key is 'XOR key', input_hex explains its boolean purpose, compensating well for the schema gap.
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 'XOR encrypt/decrypt text with a key', providing a specific verb and resource, and distinguishes from sibling tools like caesar_encrypt and vigenere_encrypt.
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 offers no guidance on when to use this tool versus alternatives, such as when to prefer XOR over other ciphers or any prerequisites.
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.
18 tool updates
v0.3.0- First observed
analyze_cnsa_compliance - First observed
assess_pqc_readiness - First observed
audit_crypto_usage - First observed
brute_force_xor - First observed
caesar_crack - First observed
caesar_decrypt - First observed
caesar_encrypt - First observed
check_fips_compliance - First observed
detect_cipher_type - First observed
frequency_analysis - First observed
generate_compliance_report - First observed
generate_key - First observed
manage_key_lifecycle - First observed
rot13 - First observed
validate_key - First observed
vigenere_decrypt - First observed
vigenere_encrypt - First observed
xor_cipher
TDQS
Most tools have distinct purposes: Caesar encrypt/decrypt/crack are clearly different; Vigenere and XOR similarly. Compliance tools (FIPS, CNSA, PQC, combined report) overlap somewhat but descriptions clarify their scope. A few analytical tools (frequency_analysis, detect_cipher_type) are distinct. Overall, minimal confusion.
Names are all lowercase with underscores. Most follow a verb_noun pattern (e.g., generate_key, check_fips_compliance). However, 'frequency_analysis' uses noun_noun and 'rot13' is just a name, deviating from the pattern. Predominantly consistent.
18 tools is slightly above the ideal range (3-15) but still reasonable for the breadth of coverage: classical ciphers, compliance, key management, and analysis. Not excessive; each tool serves a clear function.
The set covers classical ciphers and compliance/audit well, but lacks modern cryptographic operations (AES encryption, hashing, digital signatures). Key management is about metadata, not key pair generation. These are notable gaps for a 'crypto tools' server.
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
Production-grade cryptography toolkit with 31 MCP tools for classical, PQC, and KMS workflows.
QuantumOracle — 18 post-quantum crypto tools: Kyber, Dilithium, hybrid schemes, migration.
Crypto transaction firewall and risk tools for MCP agents.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to perform quantum-resistant cryptographic operations using NIST-standardized algorithms including ML-KEM, ML-DSA, and SPHINCS+. Supports key generation, encryption, digital signatures, and security analysis for post-quantum cryptography research and development.1MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for sovereign AES-256-GCM backup encryption and decryption. Enables encrypting, decrypting, verifying, and scoring passphrases with zero network calls.MIT
- AlicenseAqualityAmaintenancePost-quantum readiness for AI coding agents: scans code for quantum-vulnerable cryptography (RSA/ECDH/ECDSA/DH) and returns NIST ML-KEM/ML-DSA/SLH-DSA (and hybrid) migration guidance, with fix verification and dependency checks. Content-based, advisory tools only; runs local (npx @quantakrypto/mcp) or as a hosted OAuth endpoint.1610Apache 2.0
- AlicenseBqualityBmaintenanceProvides six MCP tools for AI agents to compute post-quantum cryptography migration facts, such as credential sizes, fragment counts, and failure taxonomy, enabling accurate migration decisions without estimation.6Apache 2.0
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/marc-shade/crypto-tools-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server