MCP (Model Context Protocol) Integration Examples
This repository demonstrates the usage of Model Context Protocol (MCP) with various integrations including a custom calculator server, GitHub, and Google Maps.
What is MCP?
Model Context Protocol (MCP) is a protocol that enables AI models to interact with external tools and services. It provides a standardized way for AI models to:
- Execute tools and functions
- Access resources
- Generate prompts
- Interact with external services
Project Structure
├── server.py # MCP server (custom creation)
├── client_server.py # MCP Client
├── 1)maps.py # Google Maps MCP integration
├── 2)github.py # GitHub MCP integration
└── requirements.txt # Project dependencies
Features
1. Custom Calculator Server
- Implements basic arithmetic operations
- Demonstrates MCP tool creation
- Shows resource and prompt handling
2. GitHub Integration
- List repository commits
- Uses GitHub Personal Access Token for authentication
- Demonstrates environment variable handling
3. Google Maps Integration
- Search for places using Google Maps API
- Configurable search radius
- Environment variable based API key management
Setup
- Install dependencies:
pip install -r requirements.txt
MCP Tools Types
-
Tools: Functions that perform specific actions
- Defined using
@mcp.tool decorator
- Can accept parameters and return values
-
Resources: Static or dynamic data sources
- Defined using
@mcp.resource decorator
- Accessed using resource URLs
-
Prompts: Template-based text generation
- Defined using
@mcp.prompt decorator
- Can include dynamic content
Best Practices
- Always use environment variables for sensitive data
- Implement proper error handling
- Use type hints for better code clarity
- Document your tools with clear docstrings
- Keep API keys secure and never commit them to version control
Usage Examples
Calculator
Server side ( initialize )
@mcp.tool(name="add")
def add(a: int, b: int):
return a + b
Running server.py file, it will up and run the MCP server.
Client side ( utilize )
result = await session.call_tool("add", arguments={"a": 5, "b": 3})
Running client_server.py file, it will connect to the MCP server.