Skip to main content
Glama
mundume
by mundume
README.md
# gmail-mcp MCP Server

[![smithery badge](https://smithery.ai/badge/@mundume/gmail-mcp)](https://smithery.ai/server/@mundume/gmail-mcp)
a gmail mcp server built on top of typescript and the gmail api

This is a TypeScript-based MCP server that implements a simple notes system. It demonstrates core MCP concepts by providing:

- Resources representing text notes with URIs and metadata
- Tools for creating new notes
- Prompts for generating summaries of notes

## Features

### Resources
- List and access notes via `note://` URIs
- Each note has a title, content and metadata
- Plain text mime type for simple content access

### Tools
- `create_note` - Create new text notes
  - Takes title and content as required parameters
  - Stores note in server state

### Prompts
- `summarize_notes` - Generate a summary of all stored notes
  - Includes all note contents as embedded resources
  - Returns structured prompt for LLM summarization

## Development

Install dependencies:
```bash
npm install
```

Build the server:
```bash
npm run build
```

For development with auto-rebuild:
```bash
npm run watch
```

## Installation

### Installing via Smithery

To install Gmail Notes Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@mundume/gmail-mcp):

```bash
npx -y @smithery/cli install @mundume/gmail-mcp --client claude
```

### Installing Manually
To use with Claude Desktop, add the server config:

On MacOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
On Windows: `%APPDATA%/Claude/claude_desktop_config.json`

```json
{
  "mcpServers": {
    "gmail-mcp": {
      "command": "/path/to/gmail-mcp/build/index.js"
    }
  }
}
```

### Debugging

Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the [MCP Inspector](https://github.com/modelcontextprotocol/inspector), which is available as a package script:

```bash
npm run inspector
```

The Inspector will provide a URL to access debugging tools in your browser.

TDQS

B3.3/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: getEmailContent retrieves a specific email's full content, listEmails lists emails with optional filtering/summarization, and sendEmail sends emails. There is no overlap in functionality, making tool selection straightforward for an agent.

Naming Consistency5/5

All tools follow a consistent verb_noun naming pattern (getEmailContent, listEmails, sendEmail) with clear, descriptive names. The naming style is uniform throughout the set, enhancing readability and predictability.

Tool Count3/5

With only 3 tools, the set feels thin for a Gmail integration, as it lacks operations like deleting emails, marking as read/unread, or managing labels. While the core functions are present, the scope is limited compared to typical email management needs.

Completeness3/5

The tools cover basic read (get, list) and write (send) operations, but there are notable gaps in the email lifecycle, such as updating email status (e.g., delete, archive, mark as read) or handling attachments. This could lead to agent workarounds for common email tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues