Adapters
Drop-in replacements for popular AI SDKs. Change your import, keep your code. Every adapter adds cryptographic signing, policy enforcement, and audit logging automatically.
3-Line Integration
Before
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Hello"}]
)After
from macaw_adapters.openai import SecureOpenAI
client = SecureOpenAI(app_name="my-app")
response = client.chat.completions.create(
model="gpt-4", # Policy may override
messages=[{"role": "user", "content": "Hello"}]
)Security Features (All Adapters)
Cryptographic Signing
Every request signed with agent's private key
MAPL Policy Enforcement
User-specific model, token, and tool limits
Signed Audit Logging
Tamper-evident records of every operation
Multi-Tenant Isolation
Per-tenant keys and policy boundaries
Feature Matrix
| Feature | SecureOpenAI | SecureAnthropic | SecureLangChain | SecureMCP | External MCP | SecureLiteLLM |
|---|---|---|---|---|---|---|
| Chat Completions | ✓ | ✓ | ✓ | — | — | ✓ |
| Streaming | ✓ | ✓ | ✓ | — | — | ✓ |
| Function/Tool Calling | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Structured Outputs | ✓ | — | — | — | — | — |
| Agents | — | — | ✓ | — | — | — |
| MCP Tools | — | — | — | ✓ | ✓ | — |
| MCP Resources | — | — | — | ✓ | — | — |
| Inline Gateway | — | — | — | — | ✓ | — |
| Multi-user bind_to_user | — | — | — | — | ✓ | — |
| 100+ Providers | — | — | — | — | — | ✓ |
Available Adapters
SecureOpenAI
Drop-in replacement for OpenAI Python SDK
SecureAnthropic
Drop-in replacement for Anthropic Python SDK
SecureLangChain
Secure callbacks for LangChain agents
SecureMCP
Secure MCP server and client wrappers
External MCP
Inline gateway for 3rd-party MCP servers
SecureLiteLLM
100+ providers via LiteLLM
Building Custom
Create adapters for other frameworks