File size: 2,057 Bytes
7dc28be
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Tools

This directory contains all MCP tool definitions for the Google Docs, Sheets, Drive, Gmail, and Calendar server. Tools are organized into domain-specific folders, each with its own router (`index.ts`) that registers its tools with the server.

## Architecture

```
tools/
β”œβ”€β”€ index.ts       # Top-level router β€” delegates to each domain
β”œβ”€β”€ docs/          # Google Docs API operations
β”œβ”€β”€ drive/         # Google Drive file and folder management
β”œβ”€β”€ sheets/        # Google Sheets operations
β”œβ”€β”€ gmail/         # Gmail message and label operations
β”œβ”€β”€ calendar/      # Google Calendar event operations
└── utils/         # Cross-cutting workflow utilities
```

Each domain folder contains:

- **`index.ts`** β€” A router that registers all tools in the domain
- **`README.md`** β€” Documentation of the domain and its tools
- **Individual tool files** β€” One file per tool, each exporting a `register(server)` function

## Domains

| Domain                  | Tools | Description                                                      |
| ----------------------- | ----: | ---------------------------------------------------------------- |
| [docs](./docs/)         |    14 | Read, write, format, and comment on Google Documents             |
| [drive](./drive/)       |    12 | Search, create, move, copy, rename, and delete files and folders |
| [sheets](./sheets/)     |    11 | Read, write, append, format, validate, and manage spreadsheets   |
| [gmail](./gmail/)       |    13 | Read, send, draft, label, trash, and triage Gmail messages       |
| [calendar](./calendar/) |     5 | List, create, update, delete, and quick-add Calendar events      |
| [utils](./utils/)       |     2 | Markdown conversion and other cross-cutting workflows            |

## Adding a New Tool

1. Create a new file in the appropriate domain folder (e.g., `docs/myNewTool.ts`)
2. Export a `register(server: FastMCP)` function that calls `server.addTool({...})`
3. Import and call it from the domain's `index.ts` router