

Why not just use Python? Python has traditionally been the main coding language for ML and AI tools. One of the strengths of the MCP protocol is that the actual implementation details are independent of the development language. The reality is that not every project is coded in Python- and MCP allows you to use the latest AI approaches with other coding languages.
Create, mint, and launch a Solana meme coin in seconds with Exit Meme.
Start NowBut I thought all I needed was FastMCP! FastMCP (Model Context Protocol) is a Python framework for building production-ready servers. It provides a great framework for developing Python MCP applications. However- FastMCP is Python specific. You can’t use FastMCP directly with other languages like Rust, Java, C, etc.
What are all these SDKs and where do they come from? There are basically two types of SDKs- official and unofficial.
The Official MCP SDKs are here:
SDKs - Model Context Protocol Official SDKs for building with Model Context Protocol modelcontextprotocol.io
Some unofficial SDKs include:
C++:
Create, mint, and launch a Solana meme coin in seconds with Exit Meme.
Start NowGitHub - hkr04/cpp-mcp: Lightweight C++ MCP (Model Context Protocol) SDK Lightweight C++ MCP (Model Context Protocol) SDK. Contribute to hkr04/cpp-mcp development by creating an account on… github.com
C:
GitHub - micl2e2/mcpc: Cross-platform C SDK for Model Context Protocol (MCP), in modern🚀 C23. Cross-platform C SDK for Model Context Protocol (MCP), in modern🚀 C23. - micl2e2/mcpc github.com
Haskell:
mcp A Haskell implementation of the Model Context Protocol (MCP) hackage.haskell.org
So what does an MCP SDK really Do? The key thing that a MCP SDK provides is an organized approach that is idiomatic to the language. Each language has conventions for coding, testing, and tool sets. The MCP protocol itself has several key components, and conventions. Most language specific SDKs implement at least the key features of the protocol consistently with the language idioms. These protocol features include the Client/Server architecture, tooling, and server transports.
The full specification can be found here:
Specification - Model Context Protocol This specification defines the authoritative protocol requirements, based on the TypeScript schema in For… modelcontextprotocol.io
The key feature that a language specific SDK provides is a bridging between the idiomatic language features and the common MCP conventions.
Sample of Current Language SDKs Some of the “mainstream” languages include:
TypeScript / JavaScript Python Java C# Go Kotlin Swift Ruby Rust PHP Gemini CLI Gemini CLI is the Swiss army knife that links all this together. If not pre-installed you can download the Gemini CLI to interact with the source files and provide real-time assistance:
npm install -g @google/gemini-cli Testing the Gemini CLI Environment Once you have all the tools and the correct Node.js version in place- you can test the startup of Gemini CLI. You will need to authenticate with a Key or your Google Account:
gemini Press enter or click to view image in full size
Node Version Management Gemini CLI needs a consistent, up to date version of Node. The nvm command can be used to get a standard Node environment:
GitHub — nvm-sh/nvm: Node Version Manager — POSIX-compliant bash script to manage multiple active… Node Version Manager — POSIX-compliant bash script to manage multiple active node.js versions — nvm-sh/nvm github.com
What does Gemini CLI have to do with MCP? Gemini CLI provides a full MCP client for testing server implementations.
Beyond that — Gemini CLI provides powerful code generation functionality and customization via the GEMINI.md file that allows for targeted language specific MCP server code generation.
A sample GEMINI.md file looks similar to:
# Gemini Code Assistant Context
This document provides context for the Gemini Code Assistant to understand the project and assist in development.
## Project Overview
This is a **Haskell-based Model Context Protocol (MCP) server** using the `mcp-server` library. It is designed to expose tools (like `greet`) over HTTP for integration with MCP clients.
## Key Technologies
* **Language:** Haskell (GHC 9.10.1+) * **Build System:** `cabal` * **Libraries:** * `mcp-server`: For implementing the MCP protocol. * `aeson`: For JSON serialization. * `text`: For efficient text handling.
Non comprehensive list of Current MCP Articles Recent articles about MCP development with different SDKs include:
C# * “Local MCP Development with .NET, C# and Gemini CLI”: https://medium.com/google-cloud/local-mcp-development-with-net-c-and-gemini-cli-444983a54b6d * “MCP Development with .NET, C#, Cloud Run, and Gemini CLI”: https://medium.com/google-cloud/mcp-development-with-net-c-cloud-run-and-gemini-cli-e04f128c9462 * “MCP Development with Firestore, .NET, C# and Gemini CLI”: https://medium.com/google-cloud/mcp-development-with-firestore-net-c-and-gemini-cli-8f435012e125
Rust * “MCP Development with Cloud Run and the Google Cloud Rust SDK”: https://medium.com/google-cloud/mcp-development-with-cloud-run-and-the-google-cloud-rust-sdk-5749f997096d * “MCP Development with the Google Cloud Rust SDK and Gemini CLI”: https://medium.com/google-cloud/mcp-development-with-the-google-cloud-rust-sdk-and-gemini-cli-8010b991316b
Java * “Local MCP Development with Java and Gemini CLI”: https://medium.com/google-cloud/local-mcp-development-with-java-and-gemini-cli-3d752f901d83
Kotlin * “Local MCP Development with Kotlin and Gemini CLI”: https://proandroiddev.com/local-mcp-development-with-kotlin-and-gemini-cli-819a8618ebc2
PHP * “MCP Development with PHP, Cloud Run, and Gemini CLI”: https://medium.com/google-cloud/mcp-development-with-php-cloud-run-and-gemini-cli-39a06180376d * “Local MCP Development with PHP and Gemini CLI”: https://medium.com/google-cloud/local-mcp-development-with-php-and-gemini-cli-5c3175402422
Swift * “Local MCP Development with Swift, Firestore, and Gemini CLI”: https://medium.com/google-cloud/local-mcp-development-with-swift-firestore-and-gemini-cli-08343715c0e7 * “MCP Development with Swift, Firestore, Cloud Run, and Gemini CLI”: https://medium.com/google-cloud/mcp-development-with-swift-firestore-cloud-run-and-gemini-cli-9d62d2948b8b
Python * “MCP Development with FireStore, Cloud Run, and Gemini CLI”: https://python.plainenglish.io/mcp-development-with-firestore-cloud-run-and-gemini-cli-101736152b12
Ruby * “MCP Development with Ruby and Gemini CLI”: https://medium.com/google-cloud/mcp-development-with-ruby-and-gemini-cli-76707324395e * “Local MCP Development with Ruby and Gemini CLI”: https://medium.com/google-cloud/local-mcp-development-with-ruby-and-gemini-cli-5114757519a8
C * “Local MCP Development with C and Gemini CLI”: https://medium.com/google-cloud/local-mcp-development-with-c-and-gemini-cli-896827059c40 * “MCP Development with C, Cloud Run, and Gemini CLI”: https://medium.com/google-cloud/mcp-development-with-c-cloud-run-and-gemini-cli-be6073105740
Google Tech Conventions Beyond Gemini CLI — Google Cloud provides the background tooling and infrastructure to run the MCP projects. Here is a brief summary:
Cloud Projects Centralized organization of key project data such as APIS, SDK Keys, and the base Vertex AI model functionality
Cloud Run Server less deployment of containers with scale to 0.
Cloud Build Standardized, repeatable build tools for consistent DevOps.
gcloud Utility The gcloud utility provides a predictable well defined tool for interacting with cloud resources.
Cloud Authentication Application Default Credentials (ADC) allow secure development and deployment across environments.
Cloud Logging Standardized JSON logging to stderr provides visibility with Google Cloud native logging.
Where do I start? The strategy for starting MCP development is a incremental step by step approach. As an example — here is a walkthrough for building a C language MCP server.
First, the basic development environment is setup with the required system variables, and a working Gemini CLI configuration.
Then, a minimal Hello World Style C MCP Server is built with stdio transport. This server is validated with Gemini CLI in the local environment.
This setup validates the connection from Gemini CLI to the local process via MCP. The MCP client (Gemini CLI) and the MCP server both run in the same local environment.
The sample code is then refactored to use the MCP HTTP transport in the local environment.
Next — the MCP server with HTTP transport is containerized and deployed to Google Cloud Run.
This deployment is verified with the local Gemini CLI.
Setup the Basic Environment At this point you should have a working language environment and a working Gemini CLI installation. The next step is to clone the GitHub samples repository with support scripts:Why not just use Python? Python has traditionally been the main coding language for ML and AI tools. One of the strengths of the MCP protocol is that the actual implementation details are independent of the development language. The reality is that not every project is coded in Python- and MCP allows you to use the latest AI approaches with other coding languages.
But I thought all I needed was FastMCP! FastMCP (Model Context Protocol) is a Python framework for building production-ready servers. It provides a great framework for developing Python MCP applications. However- FastMCP is Python specific. You can’t use FastMCP directly with other languages like Rust, Java, C, etc.
What are all these SDKs and where do they come from? There are basically two types of SDKs- official and unofficial.
The Official MCP SDKs are here:
SDKs - Model Context Protocol Official SDKs for building with Model Context Protocol modelcontextprotocol.io
Some unofficial SDKs include:
C++:
GitHub - hkr04/cpp-mcp: Lightweight C++ MCP (Model Context Protocol) SDK Lightweight C++ MCP (Model Context Protocol) SDK. Contribute to hkr04/cpp-mcp development by creating an account on… github.com
C:
GitHub - micl2e2/mcpc: Cross-platform C SDK for Model Context Protocol (MCP), in modern🚀 C23. Cross-platform C SDK for Model Context Protocol (MCP), in modern🚀 C23. - micl2e2/mcpc github.com
Haskell:
mcp A Haskell implementation of the Model Context Protocol (MCP) hackage.haskell.org
So what does an MCP SDK really Do? The key thing that a MCP SDK provides is an organized approach that is idiomatic to the language. Each language has conventions for coding, testing, and tool sets. The MCP protocol itself has several key components, and conventions. Most language specific SDKs implement at least the key features of the protocol consistently with the language idioms. These protocol features include the Client/Server architecture, tooling, and server transports.
The full specification can be found here:
Specification - Model Context Protocol This specification defines the authoritative protocol requirements, based on the TypeScript schema in For… modelcontextprotocol.io
The key feature that a language specific SDK provides is a bridging between the idiomatic language features and the common MCP conventions.
Sample of Current Language SDKs Some of the “mainstream” languages include:
TypeScript / JavaScript Python Java C# Go Kotlin Swift Ruby Rust PHP Gemini CLI Gemini CLI is the Swiss army knife that links all this together. If not pre-installed you can download the Gemini CLI to interact with the source files and provide real-time assistance:
npm install -g @google/gemini-cli Testing the Gemini CLI Environment Once you have all the tools and the correct Node.js version in place- you can test the startup of Gemini CLI. You will need to authenticate with a Key or your Google Account:
gemini Press enter or click to view image in full size
Node Version Management Gemini CLI needs a consistent, up to date version of Node. The nvm command can be used to get a standard Node environment:
GitHub — nvm-sh/nvm: Node Version Manager — POSIX-compliant bash script to manage multiple active… Node Version Manager — POSIX-compliant bash script to manage multiple active node.js versions — nvm-sh/nvm github.com
What does Gemini CLI have to do with MCP? Gemini CLI provides a full MCP client for testing server implementations.
Beyond that — Gemini CLI provides powerful code generation functionality and customization via the GEMINI.md file that allows for targeted language specific MCP server code generation.
A sample GEMINI.md file looks similar to:
# Gemini Code Assistant Context
This document provides context for the Gemini Code Assistant to understand the project and assist in development.
## Project Overview
This is a **Haskell-based Model Context Protocol (MCP) server** using the `mcp-server` library. It is designed to expose tools (like `greet`) over HTTP for integration with MCP clients.
## Key Technologies
* **Language:** Haskell (GHC 9.10.1+) * **Build System:** `cabal` * **Libraries:** * `mcp-server`: For implementing the MCP protocol. * `aeson`: For JSON serialization. * `text`: For efficient text handling.
Non comprehensive list of Current MCP Articles Recent articles about MCP development with different SDKs include:
C# * “Local MCP Development with .NET, C# and Gemini CLI”: https://medium.com/google-cloud/local-mcp-development-with-net-c-and-gemini-cli-444983a54b6d * “MCP Development with .NET, C#, Cloud Run, and Gemini CLI”: https://medium.com/google-cloud/mcp-development-with-net-c-cloud-run-and-gemini-cli-e04f128c9462 * “MCP Development with Firestore, .NET, C# and Gemini CLI”: https://medium.com/google-cloud/mcp-development-with-firestore-net-c-and-gemini-cli-8f435012e125
Rust * “MCP Development with Cloud Run and the Google Cloud Rust SDK”: https://medium.com/google-cloud/mcp-development-with-cloud-run-and-the-google-cloud-rust-sdk-5749f997096d * “MCP Development with the Google Cloud Rust SDK and Gemini CLI”: https://medium.com/google-cloud/mcp-development-with-the-google-cloud-rust-sdk-and-gemini-cli-8010b991316b
Java * “Local MCP Development with Java and Gemini CLI”: https://medium.com/google-cloud/local-mcp-development-with-java-and-gemini-cli-3d752f901d83
Kotlin * “Local MCP Development with Kotlin and Gemini CLI”: https://proandroiddev.com/local-mcp-development-with-kotlin-and-gemini-cli-819a8618ebc2
PHP * “MCP Development with PHP, Cloud Run, and Gemini CLI”: https://medium.com/google-cloud/mcp-development-with-php-cloud-run-and-gemini-cli-39a06180376d * “Local MCP Development with PHP and Gemini CLI”: https://medium.com/google-cloud/local-mcp-development-with-php-and-gemini-cli-5c3175402422
Swift * “Local MCP Development with Swift, Firestore, and Gemini CLI”: https://medium.com/google-cloud/local-mcp-development-with-swift-firestore-and-gemini-cli-08343715c0e7 * “MCP Development with Swift, Firestore, Cloud Run, and Gemini CLI”: https://medium.com/google-cloud/mcp-development-with-swift-firestore-cloud-run-and-gemini-cli-9d62d2948b8b
Python * “MCP Development with FireStore, Cloud Run, and Gemini CLI”: https://python.plainenglish.io/mcp-development-with-firestore-cloud-run-and-gemini-cli-101736152b12
Ruby * “MCP Development with Ruby and Gemini CLI”: https://medium.com/google-cloud/mcp-development-with-ruby-and-gemini-cli-76707324395e * “Local MCP Development with Ruby and Gemini CLI”: https://medium.com/google-cloud/local-mcp-development-with-ruby-and-gemini-cli-5114757519a8
C * “Local MCP Development with C and Gemini CLI”: https://medium.com/google-cloud/local-mcp-development-with-c-and-gemini-cli-896827059c40 * “MCP Development with C, Cloud Run, and Gemini CLI”: https://medium.com/google-cloud/mcp-development-with-c-cloud-run-and-gemini-cli-be6073105740
Google Tech Conventions Beyond Gemini CLI — Google Cloud provides the background tooling and infrastructure to run the MCP projects. Here is a brief summary:
Cloud Projects Centralized organization of key project data such as APIS, SDK Keys, and the base Vertex AI model functionality
Cloud Run Server less deployment of containers with scale to 0.
Cloud Build Standardized, repeatable build tools for consistent DevOps.
gcloud Utility The gcloud utility provides a predictable well defined tool for interacting with cloud resources.
Cloud Authentication Application Default Credentials (ADC) allow secure development and deployment across environments.
Cloud Logging Standardized JSON logging to stderr provides visibility with Google Cloud native logging.
Where do I start? The strategy for starting MCP development is a incremental step by step approach. As an example — here is a walkthrough for building a C language MCP server.
First, the basic development environment is setup with the required system variables, and a working Gemini CLI configuration.
Then, a minimal Hello World Style C MCP Server is built with stdio transport. This server is validated with Gemini CLI in the local environment.
This setup validates the connection from Gemini CLI to the local process via MCP. The MCP client (Gemini CLI) and the MCP server both run in the same local environment.
The sample code is then refactored to use the MCP HTTP transport in the local environment.
Next — the MCP server with HTTP transport is containerized and deployed to Google Cloud Run.
This deployment is verified with the local Gemini CLI.
Setup the Basic Environment At this point you should have a working language environment and a working Gemini CLI installation. The next step is to clone the GitHub samples repository with support scripts: