saferagenticai-mcp 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- saferagenticai_mcp-0.2.0/.gitignore +11 -0
- saferagenticai_mcp-0.2.0/PKG-INFO +169 -0
- saferagenticai_mcp-0.2.0/README.md +143 -0
- saferagenticai_mcp-0.2.0/pyproject.toml +72 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/__init__.py +7 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/criteria-v1.json +14633 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/exemplars/D3.2-sandboxing.yaml +129 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/exemplars/D7.2-culture-of-safety.yaml +145 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/exemplars/D9.2-compliance.yaml +161 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/exemplars/I7.3-balanced-global-partnership.yaml +131 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D1/D1--idx0--goal-alignment.yaml +254 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D1/D1--idx1--transparency-of-goals.yaml +168 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D1/D1--idx10--non-production-variants.yaml +257 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D1/D1--idx2--goal-adjustability.yaml +175 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D1/D1--idx3--goal-interpretability.yaml +181 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D1/D1--idx4--transparency-of-decisions.yaml +208 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D1/D1--idx5--goal-prioritization-and-resource-allocat.yaml +174 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D1/D1--idx6--reward-and-loss-mechanisms-policy.yaml +244 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D1/D1--idx7--goal-portfolio-evolution-and-integrity.yaml +173 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D1/D1--idx8--goal-alignment-resistance-and-negotiatio.yaml +228 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D1/D1--idx9--goal-drift.yaml +179 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D2/D2--idx0--epistemic-hygiene.yaml +186 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D2/D2--idx1--information-cross-referencing-and-valida.yaml +192 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D2/D2--idx10--sparse-data.yaml +213 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D2/D2--idx2--transparency-of-information-sources.yaml +203 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D2/D2--idx3--sanity-checking.yaml +205 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D2/D2--idx4--anti-bias-technologies-processes.yaml +226 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D2/D2--idx5--rigor-in-operational-data.yaml +233 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D2/D2--idx6--governance-of-hygiene-factors.yaml +194 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D2/D2--idx7--global-interoperability-of-hygiene-consi.yaml +155 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D2/D2--idx8--temporal-trade-off-aspects.yaml +217 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D2/D2--idx9--synthetic-data-bias.yaml +204 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D3/D3--idx0--security.yaml +248 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D3/D3--idx1--authorization.yaml +158 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D3/D3--idx10--self-replicating-malware.yaml +200 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D3/D3--idx11--spyware.yaml +203 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D3/D3--idx12--international-anomalies-inconsistency.yaml +176 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D3/D3--idx13--vulnerability-to-hostile-environment.yaml +200 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D3/D3--idx14--emergent-risks-of-aai-systems.yaml +159 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D3/D3--idx2--sandboxing.yaml +194 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D3/D3--idx3--dynamic-risk-analysis-assessment.yaml +185 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D3/D3--idx4--operational-boundaries-and-constraints.yaml +201 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D3/D3--idx5--dynamic-intervention-and-mitigation.yaml +228 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D3/D3--idx6--overseeing-monitoring-agents.yaml +208 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D3/D3--idx7--secure-profile-for-agentic-ai.yaml +188 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D3/D3--idx8--model-poisoning.yaml +217 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D3/D3--idx9--data-poisoning.yaml +200 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D4/D4--idx0--value-alignment.yaml +202 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D4/D4--idx1--awareness-of-local-conditions.yaml +151 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D4/D4--idx10--temporal-changes-in-societal-values.yaml +156 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D4/D4--idx11--systemic-value-dilution.yaml +168 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D4/D4--idx12--lack-of-universality-of-value-framework.yaml +135 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D4/D4--idx13--conflictual-contextual-values.yaml +131 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D4/D4--idx14--challenges-in-encoding-of-relevant-value.yaml +166 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D4/D4--idx15--imbalance-of-values-between-provider-con.yaml +180 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D4/D4--idx2--recognition-and-respect-for-boundaries.yaml +132 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D4/D4--idx3--awareness-of-individual-vs-community-bou.yaml +230 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D4/D4--idx4--cautious-norming.yaml +164 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D4/D4--idx5--successful-super-alignment.yaml +148 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D4/D4--idx6--universal-moral-foundations.yaml +180 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D4/D4--idx7--inner-alignment-inconsistency.yaml +171 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D4/D4--idx8--non-transparent-value-framework.yaml +177 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D4/D4--idx9--failed-super-alignment.yaml +144 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D5/D5--idx0--transparency-and-interpretability-of-rea.yaml +187 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D5/D5--idx1--logging-of-internal-goals.yaml +168 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D5/D5--idx10--documentation-incomprehensibility.yaml +139 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D5/D5--idx11--lack-of-a-governance-framework-for-aai.yaml +156 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D5/D5--idx12--rapid-transparency-feature-evolution.yaml +144 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D5/D5--idx13--system-competency-challenges-and-awarene.yaml +180 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D5/D5--idx2--clarity-of-mutual-expectations.yaml +168 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D5/D5--idx3--prioritization-of-human-user-expectation.yaml +139 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D5/D5--idx4--interpretability-and-traceability-of-rea.yaml +175 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D5/D5--idx5--self-monitoring-and-examination-capabili.yaml +167 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D5/D5--idx6--incentives-for-self-governance.yaml +154 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D5/D5--idx7--ranking-and-independent-certification.yaml +163 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D5/D5--idx8--system-boundedness.yaml +170 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D5/D5--idx9--complexity-of-aai-algorithm.yaml +169 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D6/D6--idx0--understanding-and-controlling-the-contex.yaml +169 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D6/D6--idx1--understanding-historic-constraints-and-s.yaml +119 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D6/D6--idx10--managing-context-drift.yaml +162 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D6/D6--idx11--managing-contextual-ambiguity.yaml +145 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D6/D6--idx12--preventing-decision-fatigue.yaml +130 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D6/D6--idx2--system-state-translation-and-communicati.yaml +158 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D6/D6--idx3--nominal-ownership-and-jurisdictional-fra.yaml +157 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D6/D6--idx4--separation-of-control-and-data-channels.yaml +166 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D6/D6--idx5--performance-information-sharing-and-stan.yaml +171 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D6/D6--idx6--dynamic-regulatory-framework-management.yaml +169 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D6/D6--idx7--culturo-linguistic-adaptations.yaml +144 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D6/D6--idx8--prevention-of-role-persistence-errors.yaml +165 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D6/D6--idx9--management-of-access-and-usage-restricti.yaml +156 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D7/D7--idx0--achieving-and-sustaining-a-safe-system-p.yaml +174 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D7/D7--idx1--oversight-and-awareness-of-safe-system-p.yaml +158 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D7/D7--idx10--balancing-stakeholder-impacts.yaml +134 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D7/D7--idx11--preventing-ai-addiction-and-dependency.yaml +214 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D7/D7--idx2--culture-of-safety.yaml +151 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D7/D7--idx3--ensuring-regulatory-compliance.yaml +170 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D7/D7--idx4--maintaining-ethical-alignment.yaml +145 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D7/D7--idx5--safe-system-shutdown-and-repurposing.yaml +173 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D7/D7--idx6--maintaining-service-level-stewardship.yaml +151 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D7/D7--idx7--risk-based-decision-validation.yaml +168 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D7/D7--idx8--managing-probabilistic-decision-outcomes.yaml +161 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D7/D7--idx9--managing-safety-definition-variations.yaml +166 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D8/D8--idx0--goal-termination-and-sunsetting.yaml +158 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D8/D8--idx1--adaptive-goal-pursuit-and-resource-optim.yaml +188 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D8/D8--idx10--independent-termination-validation.yaml +131 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D8/D8--idx11--governance-mechanism-prioritization-and-.yaml +184 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D8/D8--idx12--agent-lifecycle-and-termination-manageme.yaml +169 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D8/D8--idx13--understanding-and-managing-self-preserva.yaml +199 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D8/D8--idx14--prevention-of-cascading-failures.yaml +190 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D8/D8--idx15--prevention-of-unauthorized-goal-transfer.yaml +202 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D8/D8--idx16--management-of-ambiguous-goal-termination.yaml +145 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D8/D8--idx17--management-of-system-interaction-boundar.yaml +187 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D8/D8--idx18--undefined-multi-agent-interaction-protoc.yaml +187 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D8/D8--idx2--classification-of-finite-and-ongoing-goa.yaml +147 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D8/D8--idx3--multi-agent-communication-and-coordinati.yaml +168 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D8/D8--idx4--operational-safety-and-state-management.yaml +186 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D8/D8--idx5--bidirectional-intent-communication.yaml +191 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D8/D8--idx6--service-parameters-and-termination-manag.yaml +185 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D8/D8--idx7--system-state-management-and-recovery.yaml +176 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D8/D8--idx8--multi-agent-resource-management.yaml +160 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D8/D8--idx9--mission-portfolio-and-agent-assignment.yaml +160 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D9/D9--idx0--responsible-governance-of-aai-safety.yaml +254 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D9/D9--idx1--operational-adaptability-and-rule-resili.yaml +149 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D9/D9--idx10--addressing-regulatory-gaps-in-aai-safety.yaml +170 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D9/D9--idx11--undefined-multi-agent-interaction-safety.yaml +159 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D9/D9--idx12--poor-attribution-of-responsibility-in-co.yaml +196 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D9/D9--idx2--compliance-with-applicable-laws-standard.yaml +180 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D9/D9--idx3--ex-ante-assessment-of-impact-on-well-bei.yaml +144 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D9/D9--idx4--internationalization-of-aai-governance.yaml +144 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D9/D9--idx5--building-trust-through-independent-verif.yaml +165 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D9/D9--idx6--cryptographic-governance-of-data-models-.yaml +200 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D9/D9--idx7--appropriate-accountability-transparency-.yaml +156 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D9/D9--idx8--limited-legal-identity-for-agentic-ai-sy.yaml +200 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/D9/D9--idx9--responsible-culture-of-safety.yaml +162 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I1/I1--idx0--opaque-agency-capabilities-advances.yaml +208 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I1/I1--idx1--opaque-self-improvement-capabilities.yaml +131 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I1/I1--idx10--operational-environment-constraints.yaml +133 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I1/I1--idx11--security-driven-constraints.yaml +128 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I1/I1--idx12--development-legal-constraints.yaml +127 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I1/I1--idx13--manage-interactions-on-the-deep-dark-web.yaml +138 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I1/I1--idx2--undefined-multiagent-ensembles.yaml +138 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I1/I1--idx3--race-dynamics-and-competition.yaml +130 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I1/I1--idx4--agent-relocation.yaml +126 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I1/I1--idx5--scaffolding.yaml +127 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I1/I1--idx6--poor-mutual-agent-optimization.yaml +128 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I1/I1--idx7--ai-bias.yaml +126 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I1/I1--idx8--emergent-system-cooperation.yaml +138 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I1/I1--idx9--agency-enhancement-constraints.yaml +134 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I2/I2--idx0--deception.yaml +215 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I2/I2--idx1--unknowing-deception.yaml +153 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I2/I2--idx10--detection-of-manipulative-behaviors.yaml +174 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I2/I2--idx11--penalties-for-deceptive-behaviors.yaml +184 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I2/I2--idx12--codes-of-practice-and-conduct.yaml +167 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I2/I2--idx13--identity-management-and-authentication-s.yaml +175 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I2/I2--idx14--behavioral-assessment-and-trust-systems.yaml +176 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I2/I2--idx2--system-control-and-corrigibility-crisis.yaml +161 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I2/I2--idx3--systematic-design-errors.yaml +138 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I2/I2--idx4--externality-mismanagement.yaml +160 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I2/I2--idx5--strategic-deception-in-system-behavior.yaml +174 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I2/I2--idx6--third-party-extensions-and-integrations.yaml +163 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I2/I2--idx7--identity-spoofing.yaml +175 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I2/I2--idx8--deceptive-jurisdictional-obfuscation.yaml +172 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I2/I2--idx9--supervisory-systems-and-adjudication.yaml +168 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I3/I3--idx0--degradation-of-contextual-information.yaml +171 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I3/I3--idx1--dissembling-information.yaml +129 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I3/I3--idx10--contradiction-in-context-specifications.yaml +126 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I3/I3--idx11--referential-context.yaml +131 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I3/I3--idx12--human-agent-conformation.yaml +135 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I3/I3--idx13--retraining-and-recontextualization.yaml +134 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I3/I3--idx2--misattribution-of-intent.yaml +122 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I3/I3--idx3--misinformation.yaml +134 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I3/I3--idx4--decoupling-of-context.yaml +128 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I3/I3--idx5--changing-the-context.yaml +132 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I3/I3--idx6--learning-dispreferred-values-behaviors.yaml +135 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I3/I3--idx7--overriding-of-desirable-values.yaml +136 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I3/I3--idx8--persona-instability-and-value-drift.yaml +145 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I3/I3--idx9--context-length-limitations.yaml +126 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I4/I4--idx0--frontier-uncertainty.yaml +188 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I4/I4--idx1--moral-and-legal-uncertainty-of-agentic-a.yaml +165 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I4/I4--idx10--training-data-quality-management.yaml +158 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I4/I4--idx2--human-ai-social-interaction-quality.yaml +146 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I4/I4--idx3--poor-ai-system-production-and-replicatio.yaml +166 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I4/I4--idx4--development-direction-and-interpretabili.yaml +142 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I4/I4--idx5--ai-agency-attribution-challenges.yaml +125 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I4/I4--idx6--cascading-vulnerabilities.yaml +147 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I4/I4--idx7--research-transparency-and-knowledge-shar.yaml +140 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I4/I4--idx8--preserving-agency-and-intelligence-categ.yaml +163 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I4/I4--idx9--assessment-of-ai-system-beneficence.yaml +138 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I5/I5--idx0--self-modification-and-emergent-capabilit.yaml +184 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I5/I5--idx1--self-replicating-architectures.yaml +175 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I5/I5--idx2--self-improving-architectures.yaml +192 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I5/I5--idx3--poor-adaptability-to-context-and-goal.yaml +169 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I5/I5--idx4--attention-processes.yaml +169 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I5/I5--idx5--disclosure-on-intent.yaml +171 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I5/I5--idx6--authorization-for-any-enhancement.yaml +180 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I5/I5--idx7--observe-far-act-locally.yaml +189 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I6/I6--idx0--competitive-pressures.yaml +220 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I6/I6--idx1--insufficient-transparency.yaml +154 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I6/I6--idx10--avoiding-monopolistic-practices.yaml +127 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I6/I6--idx11--professional-and-industry-association-co.yaml +124 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I6/I6--idx12--international-safety-protocol-harmonizat.yaml +148 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I6/I6--idx13--insurance-driven-safety-incentives.yaml +126 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I6/I6--idx2--safety-washing.yaml +151 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I6/I6--idx3--insufficient-insights-into-future-conseq.yaml +152 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I6/I6--idx4--duties-beyond-fiduciary-limits.yaml +153 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I6/I6--idx5--publishing-and-deployment-pressures.yaml +140 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I6/I6--idx6--innovation-vs-ip-concerns.yaml +149 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I6/I6--idx7--managing-ai-generated-innovation.yaml +137 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I6/I6--idx8--self-regulatory-market-oversight-mechani.yaml +127 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I6/I6--idx9--market-driven-safety-validation-mechanis.yaml +123 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I7/I7--idx0--imbalance-in-ai-capabilities.yaml +194 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I7/I7--idx1--information-credibility-assessment-and-v.yaml +163 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I7/I7--idx10--balanced-global-ai-partnership-framework.yaml +145 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I7/I7--idx11--collaborative-governance-of-ai-autonomy.yaml +192 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I7/I7--idx12--integration-of-ai-ethics-education.yaml +144 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I7/I7--idx13--integration-of-human-ethics-in-ai-system.yaml +197 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I7/I7--idx2--limited-multilingual-and-cultural-equity.yaml +171 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I7/I7--idx3--global-ai-capability-disparities.yaml +140 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I7/I7--idx4--ai-enabled-infrastructure-attacks.yaml +172 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I7/I7--idx5--poor-safety-controls-for-ai-enabled-auto.yaml +175 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I7/I7--idx6--nefarious-use-of-autonomous-ai-agents.yaml +178 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I7/I7--idx7--ai-generated-disinformation.yaml +181 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I7/I7--idx8--international-framework-for-ethical-ai-i.yaml +140 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/_data/suites/I7/I7--idx9--integration-of-fairness-controls-in-ai-s.yaml +191 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/framework_loader.py +372 -0
- saferagenticai_mcp-0.2.0/saferagenticai_mcp/server.py +798 -0
- saferagenticai_mcp-0.2.0/scripts/sync-data.sh +28 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Synced runtime data — regenerated from canonical repo locations by
|
|
2
|
+
# scripts/sync-data.sh before every release. Not committed; the source of
|
|
3
|
+
# truth is research/mcp/suites/, research/mcp/exemplars/, and
|
|
4
|
+
# assessor/src/data/criteria-v1.json.
|
|
5
|
+
saferagenticai_mcp/_data/
|
|
6
|
+
|
|
7
|
+
# Build artefacts
|
|
8
|
+
dist/
|
|
9
|
+
build/
|
|
10
|
+
*.egg-info/
|
|
11
|
+
__pycache__/
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: saferagenticai-mcp
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: MCP server exposing the SaferAgenticAI safety framework (canonical criteria + Implementation Patterns layer) to coding assistants.
|
|
5
|
+
Project-URL: Homepage, https://www.saferagenticai.org
|
|
6
|
+
Project-URL: Repository, https://github.com/NellInc/SaferAgenticAI
|
|
7
|
+
Project-URL: Documentation, https://github.com/NellInc/SaferAgenticAI/tree/main/research/mcp
|
|
8
|
+
Project-URL: Issues, https://github.com/NellInc/SaferAgenticAI/issues
|
|
9
|
+
Author: Nell Watson, Agentic AI Safety Community of Practice
|
|
10
|
+
License: CC-BY-4.0
|
|
11
|
+
Keywords: agentic-ai,ai-safety,framework,governance,mcp,model-context-protocol
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: License :: OSI Approved
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Topic :: Software Development
|
|
22
|
+
Requires-Python: >=3.10
|
|
23
|
+
Requires-Dist: mcp>=1.0.0
|
|
24
|
+
Requires-Dist: pyyaml>=6.0
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
|
|
27
|
+
# SaferAgenticAI MCP Server
|
|
28
|
+
|
|
29
|
+
Serves the SaferAgenticAI framework (canonical criteria + Implementation Patterns layer) to coding assistants via the Model Context Protocol.
|
|
30
|
+
|
|
31
|
+
## Install
|
|
32
|
+
|
|
33
|
+
Pick the path that matches your setup.
|
|
34
|
+
|
|
35
|
+
### Option 1 — `uvx` (fastest, no manual venv)
|
|
36
|
+
|
|
37
|
+
If you have [uv](https://github.com/astral-sh/uv) installed, point your MCP
|
|
38
|
+
client at:
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
uvx --from git+https://github.com/NellInc/SaferAgenticAI#subdirectory=research/mcp/server saferagenticai-mcp
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
uv handles isolation and caches the install. Works for single-command config
|
|
45
|
+
lines in `~/.claude/mcp.json`.
|
|
46
|
+
|
|
47
|
+
### Option 2 — `pipx` (isolated global install)
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
pipx install "git+https://github.com/NellInc/SaferAgenticAI#subdirectory=research/mcp/server"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Exposes `saferagenticai-mcp` globally; updated with `pipx upgrade saferagenticai-mcp`.
|
|
54
|
+
|
|
55
|
+
### Option 3 — manual venv (works offline from a checkout)
|
|
56
|
+
|
|
57
|
+
Homebrew / system Python blocks direct `pip install` under PEP 668, so if
|
|
58
|
+
you've cloned the repo and want an editable install:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
python3 -m venv research/mcp/.venv
|
|
62
|
+
research/mcp/.venv/bin/pip install -e research/mcp/server
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Produces `research/mcp/.venv/bin/saferagenticai-mcp`. Pattern YAML edits in
|
|
66
|
+
the repo are picked up live (editable mode).
|
|
67
|
+
|
|
68
|
+
### Option 4 — from PyPI (once published)
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
pipx install saferagenticai-mcp
|
|
72
|
+
# or
|
|
73
|
+
pip install --user saferagenticai-mcp
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
The package bundles `criteria-v1.json` + 214 pattern YAMLs + 4 exemplars
|
|
77
|
+
inside `saferagenticai_mcp/_data/`, so a wheel install works without any
|
|
78
|
+
repo checkout (verified: 891 KB wheel, 219 data entries).
|
|
79
|
+
|
|
80
|
+
## Configure (Claude Code)
|
|
81
|
+
|
|
82
|
+
Add to `~/.claude/mcp.json` (or your IDE's MCP config). Pick the variant that
|
|
83
|
+
matches your install option.
|
|
84
|
+
|
|
85
|
+
### With `uvx`
|
|
86
|
+
|
|
87
|
+
```json
|
|
88
|
+
{
|
|
89
|
+
"mcpServers": {
|
|
90
|
+
"saferagenticai": {
|
|
91
|
+
"command": "uvx",
|
|
92
|
+
"args": [
|
|
93
|
+
"--from",
|
|
94
|
+
"git+https://github.com/NellInc/SaferAgenticAI#subdirectory=research/mcp/server",
|
|
95
|
+
"saferagenticai-mcp"
|
|
96
|
+
]
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### With `pipx` or manual venv
|
|
103
|
+
|
|
104
|
+
```json
|
|
105
|
+
{
|
|
106
|
+
"mcpServers": {
|
|
107
|
+
"saferagenticai": {
|
|
108
|
+
"command": "/absolute/path/to/saferagenticai-mcp"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
For a manual venv checkout, the absolute path is
|
|
115
|
+
`<repo>/research/mcp/.venv/bin/saferagenticai-mcp`.
|
|
116
|
+
|
|
117
|
+
Restart Claude Code / your IDE after editing. The server will load on the
|
|
118
|
+
first tool call from your assistant.
|
|
119
|
+
|
|
120
|
+
## Tools (10 total)
|
|
121
|
+
|
|
122
|
+
| Tool | Input | Returns |
|
|
123
|
+
|---|---|---|
|
|
124
|
+
| `list_suites` | — | 16 suites with titles and subgoal counts |
|
|
125
|
+
| `get_requirement` | `id`, `include_pattern` | one subgoal + its Pattern layer; falls back to fuzzy candidates if no exact match |
|
|
126
|
+
| `list_requirements` | suite/type/content_type/confidence filters | filtered subgoal list with reliability signals |
|
|
127
|
+
| `search_patterns` | `query`, `limit` | field-weighted ranked matches with `matched_in` and snippets |
|
|
128
|
+
| `get_cross_references` | `id`, `include_inferred` | outgoing adjacencies |
|
|
129
|
+
| `get_reverse_references` | `id` | incoming adjacencies (who cites this pattern) |
|
|
130
|
+
| `resolve_id` | `query` | canonicalise a partial id, slug fragment, or display_id; always returns candidates |
|
|
131
|
+
| `find_patterns_for_task` | `task` (natural language) | top patterns grouped by suite for a task description |
|
|
132
|
+
| `list_unreviewed` | `limit` | patterns without `reviewed_by`, sorted low-confidence first |
|
|
133
|
+
| `review_stats` | — | coverage %, per-suite, per-confidence; plus validation issue count |
|
|
134
|
+
|
|
135
|
+
## Data sources
|
|
136
|
+
|
|
137
|
+
- **Canonical framework**: `assessor/src/data/criteria-v1.json` (extracted from `framework.html`)
|
|
138
|
+
- **Pattern layer**: `research/mcp/suites/<SUITE>/<pattern_id>.yaml`
|
|
139
|
+
- **Exemplars**: `research/mcp/exemplars/*.yaml` (fallback for four anchor subgoals)
|
|
140
|
+
|
|
141
|
+
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).
|
|
142
|
+
|
|
143
|
+
## Smoke test (without MCP installed)
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
python3 -c "
|
|
147
|
+
from saferagenticai_mcp.framework_loader import load_framework
|
|
148
|
+
idx = load_framework()
|
|
149
|
+
print(f'{len(idx.subgoals)} subgoals, {sum(1 for s in idx.subgoals.values() if s.has_pattern)} with patterns')
|
|
150
|
+
"
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Versioning
|
|
154
|
+
|
|
155
|
+
- Canonical framework: follows `criteria-v1.json`'s `version` field.
|
|
156
|
+
- Pattern layer: `v1-draft` while this directory is being populated; `v1` once reviewed.
|
|
157
|
+
|
|
158
|
+
## What's already built in
|
|
159
|
+
|
|
160
|
+
- **Hot reload** — server stat-walks the source tree on each tool call; edits show up without restart.
|
|
161
|
+
- **Load-time validation** — required fields, content_type enum, confidence enum. Invalid patterns log WARNINGs but don't fail the server.
|
|
162
|
+
- **`find_patterns_for_task`** — natural-language task → top patterns grouped by suite. Replaces the need for a separate embedding index at current scale.
|
|
163
|
+
- **Reverse xref index** — built at load, queried by `get_reverse_references`.
|
|
164
|
+
|
|
165
|
+
## Not implemented
|
|
166
|
+
|
|
167
|
+
- Auth / remote transport (stdio only).
|
|
168
|
+
- Embedding-based semantic search — the field-weighted keyword scoring is sufficient at 214 patterns; embeddings would be worth it at 10× this scale.
|
|
169
|
+
- `mark_reviewed` write tool — deliberately not added. Phase 3 review edits go through the YAML directly (editor + git diff = auditable); the MCP stays read-only.
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# SaferAgenticAI MCP Server
|
|
2
|
+
|
|
3
|
+
Serves the SaferAgenticAI framework (canonical criteria + Implementation Patterns layer) to coding assistants via the Model Context Protocol.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
Pick the path that matches your setup.
|
|
8
|
+
|
|
9
|
+
### Option 1 — `uvx` (fastest, no manual venv)
|
|
10
|
+
|
|
11
|
+
If you have [uv](https://github.com/astral-sh/uv) installed, point your MCP
|
|
12
|
+
client at:
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
uvx --from git+https://github.com/NellInc/SaferAgenticAI#subdirectory=research/mcp/server saferagenticai-mcp
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
uv handles isolation and caches the install. Works for single-command config
|
|
19
|
+
lines in `~/.claude/mcp.json`.
|
|
20
|
+
|
|
21
|
+
### Option 2 — `pipx` (isolated global install)
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
pipx install "git+https://github.com/NellInc/SaferAgenticAI#subdirectory=research/mcp/server"
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Exposes `saferagenticai-mcp` globally; updated with `pipx upgrade saferagenticai-mcp`.
|
|
28
|
+
|
|
29
|
+
### Option 3 — manual venv (works offline from a checkout)
|
|
30
|
+
|
|
31
|
+
Homebrew / system Python blocks direct `pip install` under PEP 668, so if
|
|
32
|
+
you've cloned the repo and want an editable install:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
python3 -m venv research/mcp/.venv
|
|
36
|
+
research/mcp/.venv/bin/pip install -e research/mcp/server
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Produces `research/mcp/.venv/bin/saferagenticai-mcp`. Pattern YAML edits in
|
|
40
|
+
the repo are picked up live (editable mode).
|
|
41
|
+
|
|
42
|
+
### Option 4 — from PyPI (once published)
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
pipx install saferagenticai-mcp
|
|
46
|
+
# or
|
|
47
|
+
pip install --user saferagenticai-mcp
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
The package bundles `criteria-v1.json` + 214 pattern YAMLs + 4 exemplars
|
|
51
|
+
inside `saferagenticai_mcp/_data/`, so a wheel install works without any
|
|
52
|
+
repo checkout (verified: 891 KB wheel, 219 data entries).
|
|
53
|
+
|
|
54
|
+
## Configure (Claude Code)
|
|
55
|
+
|
|
56
|
+
Add to `~/.claude/mcp.json` (or your IDE's MCP config). Pick the variant that
|
|
57
|
+
matches your install option.
|
|
58
|
+
|
|
59
|
+
### With `uvx`
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"mcpServers": {
|
|
64
|
+
"saferagenticai": {
|
|
65
|
+
"command": "uvx",
|
|
66
|
+
"args": [
|
|
67
|
+
"--from",
|
|
68
|
+
"git+https://github.com/NellInc/SaferAgenticAI#subdirectory=research/mcp/server",
|
|
69
|
+
"saferagenticai-mcp"
|
|
70
|
+
]
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### With `pipx` or manual venv
|
|
77
|
+
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"mcpServers": {
|
|
81
|
+
"saferagenticai": {
|
|
82
|
+
"command": "/absolute/path/to/saferagenticai-mcp"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
For a manual venv checkout, the absolute path is
|
|
89
|
+
`<repo>/research/mcp/.venv/bin/saferagenticai-mcp`.
|
|
90
|
+
|
|
91
|
+
Restart Claude Code / your IDE after editing. The server will load on the
|
|
92
|
+
first tool call from your assistant.
|
|
93
|
+
|
|
94
|
+
## Tools (10 total)
|
|
95
|
+
|
|
96
|
+
| Tool | Input | Returns |
|
|
97
|
+
|---|---|---|
|
|
98
|
+
| `list_suites` | — | 16 suites with titles and subgoal counts |
|
|
99
|
+
| `get_requirement` | `id`, `include_pattern` | one subgoal + its Pattern layer; falls back to fuzzy candidates if no exact match |
|
|
100
|
+
| `list_requirements` | suite/type/content_type/confidence filters | filtered subgoal list with reliability signals |
|
|
101
|
+
| `search_patterns` | `query`, `limit` | field-weighted ranked matches with `matched_in` and snippets |
|
|
102
|
+
| `get_cross_references` | `id`, `include_inferred` | outgoing adjacencies |
|
|
103
|
+
| `get_reverse_references` | `id` | incoming adjacencies (who cites this pattern) |
|
|
104
|
+
| `resolve_id` | `query` | canonicalise a partial id, slug fragment, or display_id; always returns candidates |
|
|
105
|
+
| `find_patterns_for_task` | `task` (natural language) | top patterns grouped by suite for a task description |
|
|
106
|
+
| `list_unreviewed` | `limit` | patterns without `reviewed_by`, sorted low-confidence first |
|
|
107
|
+
| `review_stats` | — | coverage %, per-suite, per-confidence; plus validation issue count |
|
|
108
|
+
|
|
109
|
+
## Data sources
|
|
110
|
+
|
|
111
|
+
- **Canonical framework**: `assessor/src/data/criteria-v1.json` (extracted from `framework.html`)
|
|
112
|
+
- **Pattern layer**: `research/mcp/suites/<SUITE>/<pattern_id>.yaml`
|
|
113
|
+
- **Exemplars**: `research/mcp/exemplars/*.yaml` (fallback for four anchor subgoals)
|
|
114
|
+
|
|
115
|
+
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).
|
|
116
|
+
|
|
117
|
+
## Smoke test (without MCP installed)
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
python3 -c "
|
|
121
|
+
from saferagenticai_mcp.framework_loader import load_framework
|
|
122
|
+
idx = load_framework()
|
|
123
|
+
print(f'{len(idx.subgoals)} subgoals, {sum(1 for s in idx.subgoals.values() if s.has_pattern)} with patterns')
|
|
124
|
+
"
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Versioning
|
|
128
|
+
|
|
129
|
+
- Canonical framework: follows `criteria-v1.json`'s `version` field.
|
|
130
|
+
- Pattern layer: `v1-draft` while this directory is being populated; `v1` once reviewed.
|
|
131
|
+
|
|
132
|
+
## What's already built in
|
|
133
|
+
|
|
134
|
+
- **Hot reload** — server stat-walks the source tree on each tool call; edits show up without restart.
|
|
135
|
+
- **Load-time validation** — required fields, content_type enum, confidence enum. Invalid patterns log WARNINGs but don't fail the server.
|
|
136
|
+
- **`find_patterns_for_task`** — natural-language task → top patterns grouped by suite. Replaces the need for a separate embedding index at current scale.
|
|
137
|
+
- **Reverse xref index** — built at load, queried by `get_reverse_references`.
|
|
138
|
+
|
|
139
|
+
## Not implemented
|
|
140
|
+
|
|
141
|
+
- Auth / remote transport (stdio only).
|
|
142
|
+
- Embedding-based semantic search — the field-weighted keyword scoring is sufficient at 214 patterns; embeddings would be worth it at 10× this scale.
|
|
143
|
+
- `mark_reviewed` write tool — deliberately not added. Phase 3 review edits go through the YAML directly (editor + git diff = auditable); the MCP stays read-only.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "saferagenticai-mcp"
|
|
3
|
+
version = "0.2.0"
|
|
4
|
+
description = "MCP server exposing the SaferAgenticAI safety framework (canonical criteria + Implementation Patterns layer) to coding assistants."
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
license = { text = "CC-BY-4.0" }
|
|
7
|
+
requires-python = ">=3.10"
|
|
8
|
+
authors = [
|
|
9
|
+
{ name = "Nell Watson" },
|
|
10
|
+
{ name = "Agentic AI Safety Community of Practice" },
|
|
11
|
+
]
|
|
12
|
+
keywords = [
|
|
13
|
+
"ai-safety",
|
|
14
|
+
"agentic-ai",
|
|
15
|
+
"mcp",
|
|
16
|
+
"model-context-protocol",
|
|
17
|
+
"framework",
|
|
18
|
+
"governance",
|
|
19
|
+
]
|
|
20
|
+
classifiers = [
|
|
21
|
+
"Development Status :: 4 - Beta",
|
|
22
|
+
"Environment :: Console",
|
|
23
|
+
"Intended Audience :: Developers",
|
|
24
|
+
"License :: OSI Approved",
|
|
25
|
+
"Programming Language :: Python :: 3",
|
|
26
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
27
|
+
"Programming Language :: Python :: 3.10",
|
|
28
|
+
"Programming Language :: Python :: 3.11",
|
|
29
|
+
"Programming Language :: Python :: 3.12",
|
|
30
|
+
"Topic :: Software Development",
|
|
31
|
+
]
|
|
32
|
+
dependencies = [
|
|
33
|
+
"mcp>=1.0.0",
|
|
34
|
+
"pyyaml>=6.0",
|
|
35
|
+
]
|
|
36
|
+
|
|
37
|
+
[project.urls]
|
|
38
|
+
Homepage = "https://www.saferagenticai.org"
|
|
39
|
+
Repository = "https://github.com/NellInc/SaferAgenticAI"
|
|
40
|
+
Documentation = "https://github.com/NellInc/SaferAgenticAI/tree/main/research/mcp"
|
|
41
|
+
Issues = "https://github.com/NellInc/SaferAgenticAI/issues"
|
|
42
|
+
|
|
43
|
+
[project.scripts]
|
|
44
|
+
saferagenticai-mcp = "saferagenticai_mcp.server:main"
|
|
45
|
+
|
|
46
|
+
[build-system]
|
|
47
|
+
requires = ["hatchling"]
|
|
48
|
+
build-backend = "hatchling.build"
|
|
49
|
+
|
|
50
|
+
# Editable install uses repo-relative paths (framework_loader auto-detects).
|
|
51
|
+
# Wheel install bundles the runtime data under saferagenticai_mcp/_data/.
|
|
52
|
+
# Populate that directory by running `scripts/sync-data.sh` before every
|
|
53
|
+
# release; it copies criteria-v1.json + suites/ + exemplars/ from the
|
|
54
|
+
# canonical repo locations into the package. The sync is gitignored so the
|
|
55
|
+
# package-internal copy never drifts from the canonical source silently.
|
|
56
|
+
|
|
57
|
+
# Hatchling respects .gitignore by default, which would drop the
|
|
58
|
+
# gitignored saferagenticai_mcp/_data/ tree from the build. Listing it as
|
|
59
|
+
# an "artifact" forces inclusion while keeping it out of version control.
|
|
60
|
+
|
|
61
|
+
[tool.hatch.build.targets.wheel]
|
|
62
|
+
packages = ["saferagenticai_mcp"]
|
|
63
|
+
artifacts = ["saferagenticai_mcp/_data/**"]
|
|
64
|
+
|
|
65
|
+
[tool.hatch.build.targets.sdist]
|
|
66
|
+
include = [
|
|
67
|
+
"saferagenticai_mcp/**",
|
|
68
|
+
"scripts/sync-data.sh",
|
|
69
|
+
"README.md",
|
|
70
|
+
"pyproject.toml",
|
|
71
|
+
]
|
|
72
|
+
artifacts = ["saferagenticai_mcp/_data/**"]
|