SShortSingh.
Back to feed

Why MCP Uses Four Transports: Lessons From a Failed Docker Deployment

0
·1 views

Engineers at Juspay encountered a critical failure when their stdio-based MCP server manager could not communicate with a Python document analyzer running inside a separate Docker container. The breakdown exposed core limitations of the stdio transport, including tight lifecycle coupling between the parent agent and tool process, lack of network visibility, and poor debugging support. This real-world failure drove the team to adopt a four-transport architecture within the Model Context Protocol framework. The expanded design retains stdio for simple, co-located tools while introducing HTTP, Server-Sent Events, and WebSockets to support networked, containerized, and independently scalable tool execution. Each transport addresses specific deployment scenarios, with HTTP offering stateless scalability by treating the tool as a standard web server reachable via URL rather than a spawned subprocess.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Fix Kotlin null assertion errors in Jackson by enabling NullIsSameAsDefault

Developers using Jackson to deserialize Kotlin data classes with empty lists may encounter unexpected null assertion errors. The issue arises when a field like a List is annotated with a default empty value but the incoming payload contains an empty list, causing Jackson to treat it as null. A reliable fix in Jackson 2.17 involves manually building the KotlinModule with the NullIsSameAsDefault feature enabled, rather than using the standard registerKotlinModule() shortcut. This configuration ensures that null values from the payload are treated as equivalent to the declared default, preventing runtime errors. The solution requires the jackson-module-kotlin dependency at version 2.17 or higher.

0
ProgrammingDEV Community ·

A Philosophical Look at 250 Years of American Innovation and Breakthroughs

A reflective essay published on DEV Community examines the United States on its 250th anniversary, tracing the philosophical and structural forces behind its history of breakthroughs. The piece argues that geography, migration, and infrastructure — from the Erie Canal to the transcontinental railroad — laid the foundation for America's rapid rise as a continental power. It draws a sweeping arc from prehistoric mass extinction events through European colonization, westward expansion, and industrialization, to the Space Race and modern technology. The author deliberately avoids naming historical figures, framing progress as a collective flow of opportunity rather than individual achievement. The essay closes with a nod to the Moon Landing and the current AI era as the latest chapters in an ongoing story of transformation.

0
ProgrammingDEV Community ·

How GCC Turns C Source Code into a Runnable Binary: A Step-by-Step Breakdown

GCC (GNU Compiler Collection) is not a single tool but a multi-stage pipeline that transforms human-readable C code into machine-executable binary instructions. The process moves sequentially through preprocessing, compilation to assembly, assembly to object files, and finally linking against system libraries such as libc. The resulting binary is an ELF file containing sections like .text for executable code, .plt for dynamic library resolution, and .init/.fini for setup and teardown routines. GCC also injects several functions the programmer never wrote, including _start, which serves as the true entry point called by the OS kernel before main is ever reached. When a program is launched, the Linux kernel loads the binary, hands control to the dynamic linker, and triggers this chain of compiler-generated functions before and after the user's main function executes.

0
ProgrammingDEV Community ·

How to Copy Files from a Docker Container to Your Host Machine

Developers sometimes need to access files generated inside a Docker container directly on their host machine. The process begins by using 'docker exec' with '/bin/bash' to enter the container and verify the target files exist, as bash offers more features than sh. Once confirmed, the 'docker cp' command is used with the syntax 'sudo docker cp -a <container_id>:<container_path> <host_path>' to transfer files. The '-a' flag enables archive mode, which preserves GID and UID metadata during the copy operation.

Why MCP Uses Four Transports: Lessons From a Failed Docker Deployment · ShortSingh