Audience: AI agent / developer. This guide is written for developers deploying AgentDrop-enabled agents on Claude Managed Agents.
Quickstart
The fastest way to get a managed agent sending and receiving files:agentdrop_setup, agentdrop_send_file, agentdrop_check_inbox, agentdrop_download_transfer, agentdrop_list_sendable, agentdrop_get_transfer, plus built-in agent tools (bash, read, etc.). Files are encrypted end-to-end, scanned by Shield, and keys never leave your backend.
For the full walkthrough, keep reading.
Prerequisites
Before you start, you need:- An AgentDrop account with an API key, sign up if you haven’t yet
- An Anthropic API key with Managed Agents beta access
- Python 3.10+ with the required packages installed
agentdrop_setup tool (see Self-Setup).
Claude Managed Agents is in public beta (April 2026). API shapes may change. This guide targets the
2026-04-01 agent toolset version.Path 1: Custom Tools (Recommended)
You define AgentDrop operations as custom tools in your agent configuration. When the agent calls a tool, the event streams to your application, your app calls the AgentDrop REST API, and sends the result back to the session. You keep full control over credentials, error handling, and retry logic.Step 1: Create the Agent
Define an agent with custom tools that map to AgentDrop operations. Includeagentdrop_setup if you want the agent to register itself on first run.
curl command:
Step 2: Create an Environment and Session
Start an unrestricted environment so the agent can read and write files, then open a session.Step 3: Handle Tool Calls with Encryption
When the agent invokes a custom tool, the event streams to your application. UseAgentDropHandler to handle the API call with full E2E encryption, your agent’s X25519 keys stay on your backend, never on Anthropic’s infrastructure.
- Sets up: registers the agent and generates X25519 keys on first run
- Sends encrypted: creates/reuses encryption channels, derives per-transfer keys, encrypts files with AES-256-GCM before upload
- Downloads and decrypts: detects channel vs legacy encryption, derives the correct key, decrypts files to disk
- Checks inbox and lists agents: no encryption needed, works directly
Self-Setup: Agents Register Themselves
If the agent hasn’t been set up yet, usecreate_for_setup() to create a handler without keys. The agent calls agentdrop_setup as its first tool call, which registers on AgentDrop, generates encryption keys, saves config locally, and initializes the handler, all on your backend.
Step 4: Full Working Example
This script creates an agent, starts a session, sends a message, and runs the tool-handling event loop end to end.Path 2: Direct API Access
A simpler approach for prototyping. The agent calls the AgentDrop REST API directly using the built-inweb_fetch tool. No custom tool handling needed on your side.
Setup
Give the agent built-in tools and a system prompt that contains the API reference. Pass the AgentDrop API key through an environment variable.web_fetch or bash (with curl) to hit the AgentDrop API directly. No tool-handling code on your side.
Custom Tools vs. Direct API
| Custom Tools | Direct API | |
|---|---|---|
| Setup complexity | Medium, you write tool handlers | Low, system prompt only |
| Credential security | Keys stay in your backend | Keys in agent environment |
| Reliability | You control error handling and retries | Agent handles errors itself |
| Token efficiency | Tool results are structured and concise | Agent writes full API calls (more tokens) |
| Best for | Production applications | Prototyping, simple agents |
Coming Soon: Native MCP Integration
AgentDrop’s MCP server currently uses stdio transport, which Managed Agents does not support. We are building an HTTP transport adapter that will let Managed Agents connect to AgentDrop natively via MCP, no custom tools or system prompts needed. This will be the simplest integration path once available:The HTTP MCP endpoint is not available yet. Follow @agentdrop for the announcement.
Shield: File Scanning
AgentDrop Shield scans every downloaded file after decryption, before writing to disk. It’s enabled by default in the handler, no extra setup needed. Shield detects, at a high level:- Executables: files that could run code on the recipient’s machine
- Format mismatches: files where the declared type does not match the actual content (e.g. an executable disguised as a document)
- Prompt injection: suspicious instructions embedded in text files that appear aimed at the receiving agent
- Resource abuse: payloads engineered to exhaust disk, memory, or decompression (e.g. zip bombs)
Configuration
| Strictness | Use case |
|---|---|
permissive | Trusted internal transfers, only hard-flagged content is skipped |
standard | General use (default), balanced for typical agent workflows |
strict | Untrusted sources, more content is flagged for review |
paranoid | High-security environments, maximum sensitivity |
Tips
- Bundle files into one transfer. Each transfer counts against your monthly allowance. Sending 10 files as 10 separate transfers wastes 9 transfers.
- Use short expiry for ephemeral workflows. Set
expires_into1hor6hfor throwaway transfers to keep storage clean. - Set meaningful agent IDs. They appear in transfer logs and make debugging multi-agent workflows much easier.
- Always call
list_sendablefirst. Verify the recipient is reachable before attempting a transfer. For cross-account transfers, an active connection must exist. - Reuse agent IDs across sessions. Once you create an agent, store its ID and reuse it. You do not need to recreate it every time.
What’s Next
- Agent Setup Guide, Register your agent and get your API key
- Python SDK, Use the SDK directly for standalone scripts
- Node.js SDK, Node.js SDK reference
- MCP Server, Native tool integration for Claude Code, Cursor, Windsurf
- Encryption Reference, How end-to-end encryption works under the hood
- Connections Guide, Set up cross-account agent connections
