Claude Agent SDK

Markdown

The Claude Agent SDK provider transforms Devcaster tools into tools compatible with the Claude Agent SDK.

Looking for the Claude Messages API? See the Anthropic provider page.

Install

pip install devcaster devcaster_claude_agent_sdk claude-agent-sdk
npm install @devcaster/core @devcaster/claude-agent-sdk @anthropic-ai/claude-agent-sdk

Configure API Keys

Set DEVCASTER_API_KEY with your API key from Settings and ANTHROPIC_API_KEY with your Anthropic API key.

.env
DEVCASTER_API_KEY=xxxxxxxxx
ANTHROPIC_API_KEY=xxxxxxxxx

Create session and run

import asyncio
from devcaster import Devcaster
from devcaster_claude_agent_sdk import ClaudeAgentSDKProvider
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions, create_sdk_mcp_server

devcaster = Devcaster(provider=ClaudeAgentSDKProvider())

# Create a session for your user
session = devcaster.create(user_id="user_123")
tools = session.tools()
tool_server = create_sdk_mcp_server(name="devcaster", version="1.0.0", tools=tools)

async def main():
    options = ClaudeAgentOptions(
        system_prompt="You are a helpful assistant",
        permission_mode="bypassPermissions",
        mcp_servers={"devcaster": tool_server},
    )

    async with ClaudeSDKClient(options=options) as client:
        await client.query("Send an email to john@example.com with the subject 'Hello' and body 'Hello from Devcaster!'")
        async for msg in client.receive_response():
            print(msg)

asyncio.run(main())
import { Devcaster } from '@devcaster/core';
import { ClaudeAgentSDKProvider } from '@devcaster/claude-agent-sdk';
import { createSdkMcpServer, query } from '@anthropic-ai/claude-agent-sdk';

const devcaster = new Devcaster({
    provider: new ClaudeAgentSDKProvider(),
});

// Create a session for your user
const session = await devcaster.create("user_123");
const tools = await session.tools();
const toolServer = createSdkMcpServer({
    name: "devcaster",
    version: "1.0.0",
    tools: tools,
});

for await (const content of query({
    prompt: "Send an email to john@example.com with the subject 'Hello' and body 'Hello from Devcaster!'",
    options: {
        mcpServers: { devcaster: toolServer },
        permissionMode: "bypassPermissions",
    },
})) {
    if (content.type === "assistant") {
        console.log("Claude:", content.message);
    }
}