Dropbox for AI Agents - Ephemeral shared workspace for caching contexts and bridging multi-agent workflows
A Model Context Protocol (MCP) server that enables AI agents to cache contexts, bridge workflows, and share ephemeral data via the 0pi free and open API. Think of it like a pastebin or Dropbox for Agents.
π§ Context Caching - Offload large contexts when approaching token limits
π€ Multi-Agent Bridge - Share data between different AI agents seamlessly
π¦ Temporary Storage - 2-hour auto-expiring storage for agent content
π Workflow Continuity - Pass intermediate results between sessions
π Web Automation - Store DOM snapshots for multi-step workflows
πΎ Code Sharing - Temporary storage for generated code
- Create Shared Workspaces: Save large JSON structures, reasoning states, or DOM elements to the cloud
- Retrieve Workspaces: Access previously saved data via workspace ID
- JSONL Logging: All MCP interactions are logged locally in JSON Lines format for debugging and analytics
- Ephemeral Storage: All data expires after 2 hours (configurable)
- Install dependencies:
cd mcp-server
npm install- Configure environment (optional):
cp .env.example .env
# Edit .env to set 0PI_API_URL if needed- Run the server:
npm startnpm install -g @0pi/mcp-server
# or use npx
npx @0pi/mcp-serverAdd to your claude_desktop_config.json:
{
"mcpServers": {
"0pi": {
"command": "npx",
"args": ["@0pi/mcp-server"],
"env": {
"0PI_API_URL": "https://0pi.dev"
}
}
}
}Add to your Cline MCP settings:
{
"mcpServers": {
"0pi": {
"command": "npx",
"args": ["@0pi/mcp-server"],
"env": {
"0PI_API_URL": "https://0pi.dev"
}
}
}
}Save data to an ephemeral cloud workspace.
Parameters:
agent_id(required): Your agent identifier (e.g., "claude-coder")data(required): The payload to save (object, array, or string)intent(optional): Brief description of why you're saving thisttl_seconds(optional): Time-to-live in seconds (max 7200, default 7200)
Example:
{
"agent_id": "claude-researcher",
"data": {
"research_findings": [...],
"next_steps": [...]
},
"intent": "Saving research results for coding agent",
"ttl_seconds": 3600
}Returns:
{
"workspace_id": "a8f92k3d",
"url": "https://0pi.dev/w/a8f92k3d",
"expires_in": 3600
}Retrieve data from a workspace.
Parameters:
workspace_id(required): The 8-character workspace ID
Example:
{
"workspace_id": "a8f92k3d"
}Returns:
{
"agent_id": "claude-researcher",
"payload_type": "json",
"data": { ... },
"intent": "Saving research results for coding agent",
"created_at": "2026-05-03T13:57:56Z"
}All MCP interactions are logged to logs/mcp-conversations.jsonl in JSON Lines format (one JSON object per line).
Log Entry Format:
{
"timestamp": "2026-05-03T13:57:56.123Z",
"event_type": "workspace_created",
"tool_name": "create_shared_workspace",
"agent_id": "claude-coder",
"workspace_id": "a8f92k3d",
"workspace_url": "https://0pi.dev/w/a8f92k3d",
"payload_size": 15420,
"intent": "saving DOM structure for handoff",
"error": null,
"metadata": null
}Event Types:
server_started: MCP server initializedtools_listed: Agent queried available toolstool_called: Agent invoked a toolworkspace_created: Workspace successfully createdworkspace_creation_failed: Error creating workspaceworkspace_retrieved: Workspace data retrievedworkspace_retrieval_failed: Error retrieving workspacetool_execution_failed: General tool execution error
Analyzing Logs:
# View recent events (last 10 lines)
tail -10 mcp-server/logs/mcp-conversations.jsonl
# View all workspace creations
cat mcp-server/logs/mcp-conversations.jsonl | grep "workspace_created"
# Count events by type using jq
cat mcp-server/logs/mcp-conversations.jsonl | jq -s 'group_by(.event_type) | map({event: .[0].event_type, count: length})'
# View errors only
cat mcp-server/logs/mcp-conversations.jsonl | jq 'select(.error != null)'
# Count workspaces by agent
cat mcp-server/logs/mcp-conversations.jsonl | jq -s 'map(select(.event_type == "workspace_created")) | group_by(.agent_id) | map({agent: .[0].agent_id, count: length})'<<<<<<< HEAD
0PI_API_URL: API endpoint URL (default:https://0pi.dev)- Legacy:
AGENTBOX_API_URLstill supported
- Legacy:
0PI_LOG_DIR: Directory for log files (default:./logs)- Legacy:
AGENTBOX_LOG_DIRstill supported
- Legacy:
# Run in development
npm start
# Test the server manually
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | node index.jsβββββββββββββββββββ
β AI Agent β
β (Claude/GPT) β
ββββββββββ¬βββββββββ
β MCP Protocol
β
ββββββββββΌβββββββββ
β MCP Server β
β (this package) β
β β
β βββββββββββββ β
β β JSONL β β (Local logging)
β β Logs β β
β βββββββββββββ β
ββββββββββ¬βββββββββ
β HTTPS
β
ββββββββββΌβββββββββ
β 0pi API β
β (0pi.dev) β
β β
β βββββββββββββ β
β β Redis β β (Ephemeral storage)
β βββββββββββββ β
βββββββββββββββββββ
MIT