development-guides

Guides custom node, MCP, async, testing, and production deployment development for Kailash SDK.

Updated Apr 2, 2026
One-click install
npx skills add https://github.com/Hamza-Haadi/disease-risk-classifier-hamza --skill development-guides-hamza-haadi
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: development-guides
Source: https://github.com/Hamza-Haadi/disease-risk-classifier-hamza/tree/main/.claude/skills/07-development-guides
Command: npx skills add https://github.com/Hamza-Haadi/disease-risk-classifier-hamza --skill development-guides-hamza-haadi

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Developers working with the Kailash SDK often lack in-depth guidance for advanced tasks like building custom nodes, creating MCP servers, handling async execution, and deploying workflows to production, leading to fragile implementations and security gaps. ## Core Features & Use Cases - Custom Node & Async Development: Patterns for BaseNode and AsyncNode with parameter validation, error handling, and testing. - MCP Server Development: Build MCP servers with tools, resources, prompts, and stdio/HTTP/WebSocket transports. - Production & Enterprise Patterns: Docker deployment, circuit breakers, monitoring, metrics, compliance, and 3-tier testing strategies. - Use Case: When building a production API that processes data through Kailash workflows, use this skill to get the AsyncLocalRuntime Docker deployment pattern, health check endpoints, and Prometheus metrics instrumentation. ## Quick Start Ask how to create a custom async node with parameter validation and deploy it to production with Docker.

Frequently Asked Questions about development-guides

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a custom node in Kailash SDK?▼

Extend the Node base class, call super().__init__(), define parameters with NodeParameter for validation, and implement the execute() method returning a dictionary of outputs. For non-blocking operations, extend AsyncNode and implement execute_async() instead.

How to build an MCP server with Python?▼

Use MCPServer from kailash.core.mcp_server, then register tools with the @server.tool decorator, resources with @server.resource, and prompts with @server.prompt. Run it with stdio transport for Claude Desktop, or HTTP/WebSocket for web integrations.

Which runtime should I use for Docker deployment?▼

Use AsyncLocalRuntime for Docker and FastAPI deployments to avoid threading issues in async contexts. Use LocalRuntime for CLI scripts and synchronous contexts, or call get_runtime() for automatic detection.

Are cyclic workflows supported in Kailash SDK?▼

Cyclic workflows are a planned feature not yet implemented in SDK v0.9.31. Current alternatives include Python loops inside nodes, recursive workflow execution, or SwitchNode-based state machine patterns.

How do I test Kailash workflows in production?▼

Follow the 3-tier strategy: unit tests for individual nodes, integration tests against real infrastructure like in-memory SQLite without mocks, and end-to-end tests of complete pipelines. Use pytest-asyncio for async workflow testing.

Why does my async node block the event loop?▼

Blocking I/O calls inside execute_async() freeze the event loop. Use async libraries like aiohttp instead of requests, await all coroutines, and always handle exceptions to prevent hanging executions.