Provides integration with Google Assistant through fulfillment handlers, analytics logging, and tool usage tracking for processing Assistant requests.
MCP Server Demo - Learning Project
A comprehensive learning project demonstrating how to build a Model Context Protocol (MCP) server with Google ADK integration using best practices.
๐ฏ Learning Objectives
This project teaches you:
MCP Server Architecture
How to structure an MCP server
Tool definitions and handlers
Resource management
Error handling patterns
Best Practices
TypeScript for type safety
Separation of concerns
Input validation and security
Error handling
Extensible architecture
Google ADK Integration
Integration points for Google Actions
Analytics and logging
Fulfillment handlers (placeholder)
๐ Project Structure
๐ Getting Started
Prerequisites
Node.js 18+
npm or yarn
Installation
๐ ๏ธ Available Tools
1. Calculator Tool
Perform basic mathematical operations.
Example:
2. File Operations Tool
Read, write, list, and get info about files.
Example:
3. System Info Tool
Get system information (platform, memory, CPU, etc.).
Example:
๐ Google ADK Integration
The project includes a Google ADK integration module that demonstrates:
Analytics Logging: Track tool usage
Fulfillment Handlers: Process Google Assistant requests (placeholder)
Usage Statistics: Get insights into tool usage
Enabling Google ADK
Set the environment variable:
Next Steps for Full Integration
Set up Google Actions Project
Create a project in Google Cloud Console
Enable Actions API
Set up OAuth credentials
Implement Webhook Server
Use Express.js or similar
Handle fulfillment requests
Connect to MCP server tools
Deploy
Deploy to Google Cloud Functions or Cloud Run
Configure webhook URL in Actions Console
๐ Best Practices Demonstrated
1. Type Safety
Full TypeScript implementation
Strict type checking enabled
Interface definitions for all tools
2. Security
Path validation (prevents directory traversal)
Input sanitization
Error message sanitization
3. Error Handling
Comprehensive try-catch blocks
Meaningful error messages
Graceful degradation
4. Code Organization
Separation of concerns
Modular tool architecture
Clear abstraction layers
5. Extensibility
Easy to add new tools (extend
BaseTool)Plugin-like architecture
Configuration-driven behavior
๐งช Testing Your MCP Server
Using Claude Desktop
Add to Claude Desktop configuration:
Restart Claude Desktop
The tools should be available in Claude
Using MCP Client
You can also test with an MCP client library or create a simple test script.
๐ Learning Path
Beginner Tasks
โ Understand the project structure
โ Run the server and test tools
โ Read through the code comments
โ Modify calculator tool to add new operations
Intermediate Tasks
Add a new tool (e.g.,
weathertool using an API)Implement resource caching
Add tool usage rate limiting
Create unit tests for tools
Advanced Tasks
Implement full Google ADK webhook server
Add authentication/authorization
Implement tool chaining
Add streaming responses
Create a remote MCP server (HTTP transport)
๐ Resources
๐ค Contributing
This is a learning project! Feel free to:
Add more example tools
Improve error handling
Add tests
Enhance documentation
๐ License
MIT
Happy Learning! ๐