A company has services written in Go, Python and TypeScript and wants some of them to act as MCP servers and others as MCP clients. A developer worries that mixing languages will break interoperability. Which statement is accurate?
Select an answer to reveal the explanation.
Short Explanation
MCP is a protocol, so what matters is the messages you send, not the language that produced them. A Python client can talk to a Go server because they're both speaking the same JSON-RPC. The 'schema is in TypeScript' trap confuses how the spec is written with who can implement it.
Full Explanation
MCP is defined as JSON-RPC 2.0 messages with a specified schema and transports, and the project provides SDKs in several programming languages that implement the same protocol. Because interoperability is defined on the wire, a client built in one language can talk to a server built in another, provided both follow the same protocol revision and transport rules. That is what allows an organization to adopt MCP across a mixed-language estate. Requiring client and server to use the same SDK language assumes each SDK has its own wire format, which would break the protocol's purpose; SDKs differ in their programming interfaces, not in the messages they exchange. The TypeScript schema is the source of truth for message structures, but that only describes how the specification is written; it does not restrict implementations to TypeScript, and a JSON Schema version is generated for tooling in any language. Limiting mixed languages to stdio is also wrong; Streamable HTTP is a single specification shared by every implementation. Exam caveat: SDKs may implement different subsets of optional features or reach a new revision at different times, so capability and version checks still matter. Operational check: connect a client from one language to a server from another and confirm server/discover, tools/list and tools/call all succeed with matching protocol versions.