Drop-in replacements for OpenAI, Anthropic, LangChain, and MCP for deterministic policy-based security controls for enterprise apps.
Open source interfaces that add MACAW transparently to popular LLM and Agentic frameworks.
MACAW creates a distributed zero-trust mesh where tool endpoints serve as policy enforcement points, enabling preventative, deterministic security controls - even for non-deterministic LLMs and Agentic applications.
These adapters are thin wrappers that route requests through the MACAW security layer. Change one import line and get:
- Deterministic policy enforcement - Control models, tokens, operations, data access, and actions performed
- Identity propagation - User identity flows through every LLM call for per-user policies
- Cryptographic audit trail - Complete record of all AI operations with signatures
- Zero code changes - Your existing code works unchanged
# Install with specific adapter
pip install macaw-adapters[openai]
pip install macaw-adapters[anthropic]
pip install macaw-adapters[langchain]
pip install macaw-adapters[mcp]
# Install all adapters
pip install macaw-adapters[all]# Before
from openai import OpenAI
client = OpenAI()
# After - just change the import
from macaw_adapters.openai import SecureOpenAI
client = SecureOpenAI(app_name="my-app")
# Same API, now with MACAW security
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Hello!"}]
)# Before
from anthropic import Anthropic
client = Anthropic()
# After
from macaw_adapters.anthropic import SecureAnthropic
client = SecureAnthropic(app_name="my-app")
# Same API
response = client.messages.create(
model="claude-3-haiku-20240307",
max_tokens=100,
messages=[{"role": "user", "content": "Hello!"}]
)from macaw_adapters.mcp import SecureMCP
mcp = SecureMCP("calculator")
@mcp.tool(description="Add two numbers")
def add(a: float, b: float) -> float:
return a + b
mcp.run()# Before
from langchain_openai import ChatOpenAI
# After
from macaw_adapters.langchain import ChatOpenAI
# Same API
llm = ChatOpenAI(model="gpt-4")
response = llm.invoke("Hello!")For SaaS applications with per-user policies:
from macaw_adapters.openai import SecureOpenAI
from macaw_client import MACAWClient, RemoteIdentityProvider
# Create shared service
service = SecureOpenAI(app_name="my-saas")
# Authenticate user
jwt_token, _ = RemoteIdentityProvider().login("alice", "password")
user = MACAWClient(user_name="alice", iam_token=jwt_token, agent_type="user")
user.register()
# Bind user to service - their identity flows through
user_openai = service.bind_to_user(user)
# Policies evaluated against alice's permissions
response = user_openai.chat.completions.create(...)┌─────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ Your App │────▶│ Secure Adapter │────▶│ LLM API │
│ │ │ (SecureOpenAI,etc) │ │ (OpenAI, Claude) │
└─────────────┘ └──────────┬──────────┘ └─────────────────────┘
│
▼
┌─────────────────────┐
│ MACAW Client │
│ Endpoint │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Trust Layer │
│ Control Plane │
│ ───────────────── │
│ • Policy Engine │
│ • Identity/Claims │
│ • Audit Trail │
└─────────────────────┘
| Feature | Description |
|---|---|
| Drop-in Replacement | Change one import, keep all your code |
| Per-User Policies | Different users get different permissions |
| Model Restrictions | Control which models each user can access |
| Token Limits | Enforce max_tokens per user/role |
| Streaming Support | Full support for streaming responses |
| Audit Logging | Cryptographically signed audit trail |
- Python 3.9+
- macaw_client v0.5.24+ - The MACAW client library
- Sign up at console.macawsecurity.ai
- Download and install macaw_client
- Configure your workspace and policies
- Install macaw-adapters and start building
| Adapter | Package | Wraps |
|---|---|---|
| SecureOpenAI | macaw_adapters.openai |
OpenAI Python SDK |
| SecureAnthropic | macaw_adapters.anthropic |
Anthropic Python SDK |
| SecureMCP | macaw_adapters.mcp |
Model Context Protocol |
| LangChain | macaw_adapters.langchain |
LangChain (OpenAI, Anthropic, Agents) |
See the examples/ directory for complete working examples:
examples/openai/- OpenAI adapter examplesexamples/anthropic/- Anthropic adapter examplesexamples/langchain/- LangChain integration examplesexamples/mcp/- MCP server and client examples
Everything in this repository is also available in the MACAW Console's Dev Hub with interactive features:
Console > Dev Hub
├── Quick Start
│ └── Download Client SDK (macOS/Linux/Windows, Python 3.9-3.12) and Adapters
├── Tutorials
│ └── Role-Based Access Control
│ ├── Multi-User SaaS Patterns
│ ├── Agent Orchestration
│ └── Policy Hierarchies
├── Examples
│ ├── OpenAI (drop-in, multi-user, streaming, A2A)
│ ├── Anthropic (drop-in, multi-user, streaming, A2A)
│ ├── MCP
│ │ ├── Simple Invocation
│ │ ├── Discovery & Resources
│ │ ├── Logging
│ │ ├── Progress Tracking
│ │ ├── Sampling
│ │ ├── Elicitation
│ │ └── Roots
│ └── LangChain
│ ├── Drop-in Agents
│ ├── Multi-user Permissions
│ ├── Agent Orchestration
│ ├── LLM Wrappers (OpenAI, Anthropic)
│ └── Memory Integration
└── Reference
├── MACAW Client SDK
├── Adapter APIs
├── MAPL Policy Language
└── Claims Mapping
Access at console.macawsecurity.ai → Dev Hub tab.
- GitHub: github.com/macawsecurity/secureAI
- Documentation: docs.macawsecurity.ai
- Console: console.macawsecurity.ai
- Support: help@macawsecurity.com
Apache 2.0 - See LICENSE for details.