Claude Agent SDK
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-sdknpm install @devcaster/core @devcaster/claude-agent-sdk @anthropic-ai/claude-agent-sdkConfigure API Keys
Set DEVCASTER_API_KEY with your API key from Settings and ANTHROPIC_API_KEY with your Anthropic API key.
DEVCASTER_API_KEY=xxxxxxxxx
ANTHROPIC_API_KEY=xxxxxxxxxCreate 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);
}
}