MCP with Gemini Tutorial
This repository contains the complete code for the tutorial on building Model Context Protocol (MCP) servers with Google's Gemini 2.0 model, as described in this blog post.
What is Model Context Protocol (MCP)?
MCP is an open standard developed by Anthropic that enables AI models to seamlessly access external tools and resources. It creates a standardized way for AI models to interact with tools, access the internet, run code, and more, without needing custom integrations for each tool or model.
Key benefits include:
- Interoperability: Any MCP-compatible model can use any MCP-compatible tool
- Modularity: Add or update tools without changing model integrations
- Standardization: Consistent interface reduces integration complexity
- Separation of Concerns: Clean division between model capabilities and tool functionality
Project Overview
This tutorial demonstrates how to:
- Build a complete MCP server with Brave Search integration
- Connect it to Google's Gemini 2.0 model
- Create a flexible architecture for AI-powered applications
Getting Started
Prerequisites
- Bun (for fast TypeScript execution)
- Brave Search API key
- Google API key for Gemini access
Installation
# Clone the repository
git clone https://github.com/GuiBibeau/mcp-gemini-tutorial.git
cd mcp-tutorial
# Install dependencies
bun install
Environment Setup
Create a .env
file with your API keys:
BRAVE_API_KEY="your_brave_api_key"
GOOGLE_API_KEY="your_google_api_key"
Usage
Running the Basic Client
bun examples/basic-client.ts
Running the Gemini Integration
bun examples/gemini-tool-function.ts
Project Structure
src/
- Core implementation of the MCP server and toolsexamples/
- Example clients demonstrating how to use the MCP servertests/
- Test files for the project
Tools Implemented
This MCP server exposes two main tools:
- Web Search: For general internet searches via Brave Search
- Local Search: For finding businesses and locations via Brave Search
Extending the Project
You can add your own tools by:
- Defining a new tool with a schema
- Implementing the functionality
- Registering it with the MCP server
Learn More
License
MIT
This project was created using bun init
in bun v1.1.37. Bun is a fast all-in-one JavaScript runtime.