Local RAG service for AIDEFEND AI security knowledge base with dual-mode support (REST API + MCP). Provides secure, private access to AI defense strategies through MCP protocol and REST endpoints.
The AIDEFEND MCP server provides 18 tools with consistent naming (verb_noun prefix) and structured schemas. However, descriptions are generic and lack specificity about LLM-relevant context (when to use, what downstream tools to call, error recovery paths). Parameters are typed but most lack depth of constraint documentation (ranges, formats, enums where applicable). Output schemas are undocumented, it is unclear what structure each tool returns, which breaks the LLM's ability to plan downstream calls. Security is well-handled (no exposed secrets in parameters), and tool composition is reasonable (each tool has a single responsibility), but the overall definition quality falls short of production-grade because LLMs would struggle to select tools reliably without richer descriptions and documented output formats.
Analyze defense coverage against a list of threat techniques and identify gaps
Analyze and assess an organization's current security posture against AIDEFEND threat coverage
Classify and categorize a threat description against known AIDEFEND threat categories
Compare multiple defense techniques to understand their differences, strengths, and use cases
Perform comprehensive search across multiple fields and techniques in the AIDEFEND knowledge base
Generate an incident response playbook for a specific threat with defensive techniques and response steps
Output schemas are completely undocumented. No tool declares what fields it returns, their types, or structure. LLMs cannot plan downstream calls or extract needed data when output structure is unknown.
Descriptions are generic and lack LLM-optimization context. They state WHAT the tool does but not WHEN to use it, what prerequisites exist, or what downstream actions become possible. Average description length ~50 chars; production baseline is 194 chars with dependency hints and selection guidance.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 57 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Get the current status of the AIDEFEND service including database health and sync state
Find defense techniques that are effective against a specific threat or adversarial technique
Generate a structured implementation plan for deploying defense techniques against a threat
Get a quick reference guide for implementing defense strategies for a specific threat
Retrieve secure code examples for implementing a specific AIDEFEND defense technique
Retrieve comprehensive statistics about the AIDEFEND knowledge base including technique counts and coverage metrics
Retrieve detailed information about a specific AIDEFEND technique including implementation guidance and mitigation strategies
Analyze how well current defenses cover a specific threat or threat category
Map AIDEFEND techniques to compliance frameworks like NIST, CIS, or PCI-DSS
Search the AIDEFEND knowledge base using vector similarity and semantic matching
Manually trigger synchronization of AIDEFEND knowledge base from upstream source
Validate whether a provided technique ID exists and is actionable in the AIDEFEND framework
Parameter constraints are minimal. No numeric ranges (e.g., top_k, max_results, max_snippets), no regex patterns, no enum-based restrictions. For example, top_k and max_results appear in multiple tools with no documented bounds, LLMs could pass absurd values (top_k=1000000) that break performance.
No error handling guidance documented. Tools provide no indication of failure modes, recovery paths, or what the LLM should do if a call fails. For example, validate_technique_id returns no guidance on what to do if a technique_id is invalid.
Parameter descriptions are minimal. For example, query_aidefend's 'query' parameter has description 'The search query', no hint about expected format (natural language, structured, regex?), length limits, or what fields are searched. Baseline production tools include format guidance, constraints, and selection context.
No tool chaining support documented. If query_aidefend returns technique IDs, does get_technique_detail accept those IDs directly? Are they in the same format? LLMs need explicit guidance on which tool outputs feed into which tool inputs to plan multi-step workflows.
No pagination guidance for tools returning lists. query_aidefend and comprehensive_search accept max_results/top_k but do not indicate whether results are paginated, if there's a cursor, or how to retrieve the next batch. Large result sets can exhaust context windows.
Parameter names could be more specific. For example, 'threat_id' is used in multiple tools but the description does not specify whether it expects a CVE ID, CWE ID, threat actor name, or MITRE ATT&CK technique ID. Ambiguous parameter types force LLMs to guess or make extra discovery calls.