Skip to main content
Glama
aakankshagupta18

MCP Server Demo - Learning Project

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:

  1. MCP Server Architecture

    • How to structure an MCP server

    • Tool definitions and handlers

    • Resource management

    • Error handling patterns

  2. Best Practices

    • TypeScript for type safety

    • Separation of concerns

    • Input validation and security

    • Error handling

    • Extensible architecture

  3. Google ADK Integration

    • Integration points for Google Actions

    • Analytics and logging

    • Fulfillment handlers (placeholder)

๐Ÿ“ Project Structure

mcp-server-demo/ โ”œโ”€โ”€ src/ โ”‚ โ”œโ”€โ”€ index.ts # Main server entry point โ”‚ โ”œโ”€โ”€ tools/ โ”‚ โ”‚ โ”œโ”€โ”€ base-tool.ts # Base tool interface โ”‚ โ”‚ โ”œโ”€โ”€ calculator.ts # Calculator tool example โ”‚ โ”‚ โ”œโ”€โ”€ file-operations.ts # File operations tool โ”‚ โ”‚ โ””โ”€โ”€ system-info.ts # System information tool โ”‚ โ””โ”€โ”€ integrations/ โ”‚ โ””โ”€โ”€ google-adk.ts # Google ADK integration โ”œโ”€โ”€ package.json โ”œโ”€โ”€ tsconfig.json โ””โ”€โ”€ README.md

๐Ÿš€ Getting Started

Prerequisites

  • Node.js 18+

  • npm or yarn

Installation

# Install dependencies npm install # Build the project npm run build # Run in development mode (with auto-reload) npm run dev # Run the built server npm start

๐Ÿ› ๏ธ Available Tools

1. Calculator Tool

Perform basic mathematical operations.

Example:

{ "name": "calculator", "arguments": { "operation": "add", "a": 10, "b": 5 } }

2. File Operations Tool

Read, write, list, and get info about files.

Example:

{ "name": "file_operations", "arguments": { "operation": "read", "path": "README.md" } }

3. System Info Tool

Get system information (platform, memory, CPU, etc.).

Example:

{ "name": "system_info", "arguments": { "detail": "full" } }

๐Ÿ”Œ 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:

export GOOGLE_ADK_ENABLED=true

Next Steps for Full Integration

  1. Set up Google Actions Project

    • Create a project in Google Cloud Console

    • Enable Actions API

    • Set up OAuth credentials

  2. Implement Webhook Server

    • Use Express.js or similar

    • Handle fulfillment requests

    • Connect to MCP server tools

  3. 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

  1. Add to Claude Desktop configuration:

{ "mcpServers": { "demo": { "command": "node", "args": ["/path/to/mcp-server-demo/dist/index.js"] } } }
  1. Restart Claude Desktop

  2. 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

  1. โœ… Understand the project structure

  2. โœ… Run the server and test tools

  3. โœ… Read through the code comments

  4. โœ… Modify calculator tool to add new operations

Intermediate Tasks

  1. Add a new tool (e.g., weather tool using an API)

  2. Implement resource caching

  3. Add tool usage rate limiting

  4. Create unit tests for tools

Advanced Tasks

  1. Implement full Google ADK webhook server

  2. Add authentication/authorization

  3. Implement tool chaining

  4. Add streaming responses

  5. 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! ๐Ÿš€

A
security โ€“ no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aakankshagupta18/custom-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server