Skip to content

Architecture Overview

Google MCP Server is built on a composable architecture using omniskill, enabling its Google skills to be reused in other MCP servers.

Design Principles

1. Composability First

Rather than being a monolithic MCP server, this project exposes its functionality as skills - modular units that can be:

  • Used standalone in mcp-google
  • Imported into other omniskill-based servers
  • Combined with skills from other services (Slack, Jira, GitHub, etc.)

2. Separation of Concerns

mcp-google/
├── cmd/mcp-google/    # CLI entry point
├── skills/                   # Exportable omniskill modules
│   ├── slides/              # Google Slides skill
│   └── docs/                # Google Docs skill
└── internal/
    └── auth/                # Shared authentication
  • Skills: Contain all business logic, tools, and API interactions
  • CLI: Only handles configuration and skill orchestration
  • Auth: Shared authentication layer using omnitoken

3. Skill Independence

Each skill is self-contained:

  • Has its own Init() lifecycle
  • Manages its own Google API client
  • Defines its own tools
  • Can be registered independently

Component Diagram

┌─────────────────────────────────────────────────────┐
│                  mcp-google                   │
├─────────────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  │
│  │   Slides    │  │    Docs     │  │    Auth     │  │
│  │   Skill     │  │   Skill     │  │  (omnitoken)│  │
│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘  │
│         │                │                │         │
│         └────────┬───────┴────────────────┘         │
│                  │                                  │
│         ┌────────▼────────┐                         │
│         │ omniskill Runtime│                         │
│         └────────┬────────┘                         │
│                  │                                  │
│         ┌────────▼────────┐                         │
│         │  MCP Protocol   │                         │
│         │  (stdio/HTTP)   │                         │
│         └─────────────────┘                         │
└─────────────────────────────────────────────────────┘

Key Dependencies

Package Purpose
omniskill Skill framework and MCP runtime
omnitoken Token management with vault backends
gogoogle Google API utilities
goauth Authentication utilities

Data Flow

  1. Initialization:
  2. CLI parses credentials configuration
  3. omnitoken creates authenticated HTTP client
  4. Skills are initialized with the HTTP client
  5. Skills register with omniskill Runtime

  6. Request Handling:

  7. MCP client sends tool call request
  8. omniskill Runtime routes to appropriate skill
  9. Skill executes tool logic using Google APIs
  10. Response returned via MCP protocol

  11. Shutdown:

  12. Skills Close() called for cleanup
  13. Token manager releases resources