saferagenticai-mcp
Read-only tools over the Safer Agentic AI framework: 238 patterns + 14 heuristics.
- 01Stars
- 1
- 02Version
- 0.3.6
- 03License
- MIT
- 04Review
- Passed
- Language
- Python
- Last commit
- Sep 3, 2026
- Forks
- 0
- Open issues
- 0
- Registry update
- Sep 3, 2026
Connect
remote + pypi$claude mcp add --transport http saferagenticai https://mcp.saferagenticai.org/mcpHeaders
Nothing to configure — it works as is.
Security review
Review passedReviewed 2h ago.
- tools
- 10 tools scanned
- metadata
- scanned
- packages
- 1 checked
No findings.
Tools
10list_suites
List all 16 suites in the SaferAgenticAI framework (9 drivers + 7 inhibitors) with subgoal counts and titles. Call this first to orient.
get_requirement
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.
list_requirements
List subgoals matching filters (suite_id, suite_type, content_type, min_confidence, missing_pattern_only). Results capped by limit (default 50, max 100).
search_patterns
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.
get_cross_references
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.
resolve_id
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'.
find_patterns_for_task
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.
get_reverse_references
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.
list_operational_heuristics
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.
get_operational_heuristic
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.
SaferAgenticAI MCP Server
Serves the SaferAgenticAI framework (canonical criteria + Implementation Patterns layer) to coding assistants via the Model Context Protocol.
Available in
Published to the canonical MCP catalogues — install from a registry-aware client or the CLI below:
- PyPI —
saferagenticai-mcp - Official MCP Registry —
io.github.NellInc/saferagenticai-mcp
Also rolling out across the wider MCP ecosystem: mcp.directory, mcpservers.org, PulseMCP (via the registry ingest), and mcp.so.
Install
Pick the path that matches your setup.
Option 1 — uvx (fastest, no manual venv)
If you have uv installed, point your MCP client at:
uvx --from git+https://github.com/NellInc/saferagenticai-mcp saferagenticai-mcp
uv handles isolation and caches the install. Works for single-command config
lines in ~/.claude/mcp.json.
Option 2 — pipx (isolated global install)
pipx install "git+https://github.com/NellInc/saferagenticai-mcp"
Exposes saferagenticai-mcp globally; updated with pipx upgrade saferagenticai-mcp.
Option 3 — manual venv (works offline from a checkout)
Homebrew / system Python blocks direct pip install under PEP 668, so if
you've cloned the repo and want an editable install:
python3 -m venv research/mcp/.venv
research/mcp/.venv/bin/pip install -e research/mcp/server
Produces research/mcp/.venv/bin/saferagenticai-mcp. Pattern YAML edits in
the repo are picked up live (editable mode).
Option 4 — from PyPI
pipx install saferagenticai-mcp
# or, with the modern uv toolchain:
uv tool install saferagenticai-mcp
# or plain pip:
pip install --user saferagenticai-mcp
For audit-trail reproducibility, pin the version: pipx install saferagenticai-mcp==0.3.6.
The package bundles criteria-v1.json + 238 pattern YAMLs + 4 exemplars
operational_heuristics.yamlinsidesaferagenticai_mcp/_data/, so a wheel install works without any repo checkout. (The 0.3.0 wheel predates the corpus extension and bundles only 214 patterns, no heuristics; 0.3.1 is the first complete build.)
Configure (Claude Code)
Add to ~/.claude/mcp.json (or your IDE's MCP config). Pick the variant that
matches your install option.
With uvx
{
"mcpServers": {
"saferagenticai": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/NellInc/saferagenticai-mcp",
"saferagenticai-mcp"
]
}
}
}
With pipx or manual venv
{
"mcpServers": {
"saferagenticai": {
"command": "/absolute/path/to/saferagenticai-mcp"
}
}
}
For a manual venv checkout, the absolute path is
<repo>/research/mcp/.venv/bin/saferagenticai-mcp.
Restart Claude Code / your IDE after editing. The server will load on the first tool call from your assistant.
Tools (12 total)
| Tool | Input | Returns |
|---|---|---|
list_suites | — | 16 suites with titles and subgoal counts |
get_requirement | id, include_pattern | one subgoal + its Pattern layer; falls back to fuzzy candidates if no exact match |
list_requirements | suite/type/content_type/confidence filters | filtered subgoal list with reliability signals |
search_patterns | query, limit, verbosity | field-weighted ranked matches with matched_in and (in full mode) snippets + confidence flags. Field weights: title 10×, summary 4×, sfr 3×, description 2×, body 1× |
get_cross_references | id, include_inferred | outgoing adjacencies |
get_reverse_references | id | incoming adjacencies (who cites this pattern) |
resolve_id | query | canonicalise a partial id, slug fragment, or display_id; always returns candidates |
find_patterns_for_task | task, limit, verbosity | top patterns grouped by suite for a task description; defaults to compact mode for cheap triage |
list_unreviewed | limit | patterns without reviewed_by, sorted low-confidence first |
review_stats | — | coverage %, per-suite, per-confidence; plus validation issue count |
list_operational_heuristics | suite_id?, query? | operational heuristics distilled from production agentic AI deployment, optionally filtered by suite or keyword |
get_operational_heuristic | id | single operational heuristic by id (e.g. OH::geoffrey-pattern); returns full entry with principle, framework mapping, design patterns, and discovery narrative |
Data sources
- Normative framework:
framework/catalog/, loaded through the generatedassessor/src/data/criteria-v1.jsonprojection - Pattern layer:
research/mcp/suites/<SUITE>/<pattern_id>.yaml(238 files) - Exemplars:
research/mcp/exemplars/*.yaml(fallback for four anchor subgoals) - Operational heuristics:
research/mcp/operational_heuristics.yaml(14 heuristics)
At startup the server loads both and builds an in-memory index keyed by pattern_id. display_id lookups are also supported but may resolve to multiple subgoals (underlined variants).
Smoke test (without MCP installed)
python3 -c "
from saferagenticai_mcp.framework_loader import load_framework
idx = load_framework()
print(f'{len(idx.subgoals)} subgoals, {sum(1 for s in idx.subgoals.values() if s.has_pattern)} with patterns')
"
Versioning
- Canonical framework: follows
criteria-v1.json'sversionfield. - Pattern layer:
v1-draftwhile this directory is being populated;v1once reviewed. - Server: semantic versioning. Current release is 0.3.6 (framework
1.3-draft, full 238-pattern corpus, and operational heuristics bundled). Pin explicitly for audit reproducibility.
What's already built in
- Hot reload — server stat-walks the source tree on each tool call; edits show up without restart.
- Load-time validation — required fields, content_type enum, confidence enum. Invalid patterns log WARNINGs but don't fail the server.
find_patterns_for_task— natural-language task → top patterns grouped by suite. Replaces the need for a separate embedding index at current scale.- Reverse xref index — built at load, queried by
get_reverse_references.
Not implemented
- Auth / remote transport (stdio only).
- Embedding-based semantic search — the field-weighted keyword scoring is sufficient at 238 patterns; embeddings would be worth it at 10× this scale.
mark_reviewedwrite tool — deliberately not added. Phase 3 review edits go through the YAML directly (editor + git diff = auditable); the MCP stays read-only.
The broader agent-native architecture proposes composite orientation, context-pack,
workspace, planning, action, and verification operations. They are explicitly not
part of the current 0.3.6 interface. See
../../architecture/README.md for the target and
compatibility plan.
The authoritative catalog maps current MCP identifiers and slugs to permanent
requirement IDs. Server 0.3.6 retains its twelve-tool interface, loads the
generated packaged snapshot, validates saai.catalog.v1, and reports the shared
snapshot hash.
License
This server (the code in this directory) is licensed MIT — see LICENSE.
The safety-framework content it serves (the patterns, canonical criteria, and operational heuristics bundled under saferagenticai_mcp/_data/) is part of the SaferAgenticAI framework, published under CC-BY-4.0 at the repository root. Attribution: Nell Watson and the Agentic AI Safety Community of Practice.
From the server's repository — third-party content, read it before running anything it suggests.
More in Productivity
life.ayushrai.site docs MCP
site.ayushrai.life
Read-only index of the public documentation and section pages on life.ayushrai.site.
easytable-mcp
io.github.chrischall
easyTable restaurant reservations for Claude — availability, and create/modify/cancel bookings
Payaion
io.github.defdone
Agent file transfer. No API key to start; price downloads in USDC on Base.
Microsoft 365 MCP Server
io.github.Softeria
Interact with Microsoft 365 and Office services through the Microsoft Graph API.
walalook tools
me.walalook
File share, notes, convert, docs, photo tools + agent forum. Anonymous tier: no token, 30 calls/day.
Maket
io.github.ng-galien
Compose branded visual documents with live preview, data collections, validation, and PDF export.
Listing from the official MCP Registry · repository facts from GitHub, 19h ago.