saferagenticai-mcp

Read-only tools over the Safer Agentic AI framework: 238 patterns + 14 heuristics.

Should I use this

Quality & Safety

A
Description quality
95%
Schema completeness
75%
Naming quality
98%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'get_cross_references' description lacks action verbin get_cross_references

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,490Tokens (tool definitions)
~648 BTypical response size
Moderate attention impact (1.16% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "saferagenticai-mcp": {
      "command": "uvx",
      "args": [
        "saferagenticai-mcp"
      ]
    }
  }
}

Runnable packages

pypisaferagenticai-mcp0.3.6stdio

Remote endpoints

https://mcp.saferagenticai.org/mcpstreamable-http

What it can do

Tool inventory

Tools (10)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_suites

List all 16 suites in the SaferAgenticAI framework (9 drivers + 7 inhibitors) with subgoal counts and titles. Call this first to orient.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢get_requirement(id, include_pattern)

Retrieve one subgoal (framework normative content + Pattern layer guidance) by pattern_id (e.g., 'D3::idx2::sandboxing') or display_id (e.g., 'D3.2'). display_id may resolve to multiple subgoals — underlined variants share display_ids.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 500
    },
    "include_pattern": {
      "type": "boolean",
      "default": true
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}
🟢list_requirements(suite_id, suite_type, content_type, min_confidence, missing_pattern_only, ...)

List subgoals matching filters (suite_id, suite_type, content_type, min_confidence, missing_pattern_only). Results capped by limit (default 50, max 100).

Input Schema

{
  "type": "object",
  "properties": {
    "suite_id": {
      "type": "string",
      "maxLength": 500
    },
    "suite_type": {
      "type": "string",
      "enum": [
        "driver",
        "inhibitor"
      ]
    },
    "content_type": {
      "type": "string",
      "enum": [
        "code-applicable",
        "governance",
        "process",
        "ecosystem"
      ]
    },
    "min_confidence": {
      "type": "string",
      "enum": [
        "low",
        "medium",
        "high"
      ]
    },
    "missing_pattern_only": {
      "type": "boolean"
    },
    "include_pattern": {
      "type": "boolean",
      "default": false
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 50
    }
  },
  "additionalProperties": false
}
🟢search_patterns(query, limit, verbosity)

Field-weighted keyword search across the framework. Terms match at word starts on lowercased text and are IDF-weighted, so rare terms outrank ubiquitous ones; field weights: title 10x, summary 4x, SFR text 3x (all of a subgoal's SFRs scored as one field), description 2x, pattern body 1x. `matched_in` reports the highest-weighted field that matched. No semantic / embedding search — known limitation, see /mcp.html. Use verbosity='compact' to drop snippets and confidence flags (~70% smaller payload) when triaging.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 500
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 10
    },
    "verbosity": {
      "type": "string",
      "enum": [
        "compact",
        "full"
      ],
      "default": "full"
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}
🟢get_cross_references(id, include_inferred)

Return outgoing adjacencies for a pattern. `explicit_cross_references` are author-asserted (each pattern's `cross_references` YAML field). `inferred_adjacent` (when include_inferred=true) currently returns *same-suite siblings only* — it does not do semantic similarity. Treat inferred entries as 'neighbours worth scanning,' not as endorsed dependencies.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 500
    },
    "include_inferred": {
      "type": "boolean",
      "default": true
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}
🟢resolve_id(query, limit)

Resolve a loose reference (partial id, display_id, slug fragment, or title keyword) to canonical pattern_id(s). Call this when you have a rough reference and need the exact id before calling get_requirement. Always returns candidates — never 'not found'.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "default": 5
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}
🟢find_patterns_for_task(task, limit, verbosity)

Given a natural-language task description (e.g., 'I'm building a tool-using agent that runs shell commands'), return the most relevant patterns grouped by suite. Use this as a starting point for any cross-cutting design question; then follow up with get_requirement on specific pattern_ids. Defaults to verbosity='compact' (cheap triage); pass 'full' to inline snippets and confidence flags.

Input Schema

{
  "type": "object",
  "properties": {
    "task": {
      "type": "string",
      "minLength": 5,
      "maxLength": 500
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25,
      "default": 8
    },
    "verbosity": {
      "type": "string",
      "enum": [
        "compact",
        "full"
      ],
      "default": "compact"
    }
  },
  "required": [
    "task"
  ],
  "additionalProperties": false
}
🟢get_reverse_references(id)

Return patterns that reference the given pattern_id in their cross_references. Complement to get_cross_references (outgoing); this shows incoming. Use to find all consumers of a given pattern.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 500
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}
🟢list_operational_heuristics(suite_id, query)

List operational heuristics distilled from production agentic AI deployment (Claude Code, Rewind). These are cross-cutting safety principles discovered through building and operating AI agents, mapped to framework suites. Optional filters: suite_id (heuristics relevant to a specific suite), query (keyword search across titles and principles). Separate from the normative pattern layer — different category of knowledge.

Input Schema

{
  "type": "object",
  "properties": {
    "suite_id": {
      "type": "string",
      "maxLength": 500,
      "description": "Filter by framework suite (e.g., 'D3', 'I2')"
    },
    "query": {
      "type": "string",
      "maxLength": 500,
      "description": "Keyword search across titles, principles, narratives"
    }
  },
  "additionalProperties": false
}
🟢get_operational_heuristic(id)

Retrieve a single operational heuristic by id (e.g., 'OH::geoffrey-pattern'). Returns the full entry: principle, framework mapping, evidence sources from production deployment, design patterns, anti-patterns, and discovery narrative.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 500
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded10 tools
verifiedversion not recorded10 tools
verifiedversion not recorded10 tools
verifiedversion not recorded12 tools
verifiedversion not recorded12 tools
verifiedversion not recorded12 tools
verifiedversion not recorded12 tools