MCP (Model Context Protocol) for an AI-powered personal assistant: Google Service MCP code is in this repo, plus config for Slack, Jira, and GitHub.
This repository contains:
- google-workspace-mcp/ — subfolder with the Google Service MCP (Gmail, Calendar, Meet, Docs). Build and run from there. See google-workspace-mcp/README.md for detailed features, tools, and troubleshooting.
- mcp-servers-config.json — Cursor MCP config (Google + Slack + Jira + GitHub)
| Service | Description |
|---|---|
| Google Service | Gmail, Calendar, Meet, Google Docs integration |
| Slack | Slack messaging and channels |
| Atlassian (Jira) | Jira issue tracking |
| GitHub | GitHub repositories and issues |
The Google Service MCP lives in the google-workspace-mcp subfolder of this repo. No separate clone — it’s part of this repo.
cd google-workspace-mcp
npm install
npm run build- Go to Google Cloud Console
- Create or select a project
- Enable these APIs:
- Go to APIs & Services → Credentials
- Click Create Credentials → OAuth client ID
- Select Desktop app
- Download and save as
credentials.jsoninside the google-workspace-mcp folder (same folder as itspackage.json)
From the google-workspace-mcp folder:
cd google-workspace-mcp
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"authenticate","arguments":{}}}' | node dist/index.jsA browser window will open for Google sign-in. After authorizing, token.json is created in google-workspace-mcp. Do not commit credentials.json or token.json.
In mcp-servers-config.json (at repo root), point google-service at the google-workspace-mcp subfolder’s build:
"google-service": {
"command": "node",
"args": ["./google-workspace-mcp/dist/index.js"]
}If Cursor’s workspace is this repo, ./google-workspace-mcp/dist/index.js is enough. Otherwise use the full path, e.g. /path/to/everyday-ai/google-workspace-mcp/dist/index.js.
Uses the official Slack MCP Docker image.
- Podman or Docker installed
- Slack Bot Token with appropriate permissions
- Create a Slack App:
- Visit the Slack Apps page
- Click "Create New App"
- Choose "From scratch"
- Name your app and select your workspace
- Configure Bot Token Scopes: Navigate to "OAuth & Permissions" and add these scopes:
channels:history- View messages and other content in public channelschannels:read- View basic channel informationchat:write- Send messages as the appreactions:write- Add emoji reactions to messagesusers:read- View users and their basic informationusers.profile:read- View detailed profiles about users
- Install App to Workspace:
- Click "Install to Workspace" and authorize the app
- Save the "Bot User OAuth Token" that starts with
xoxb-
- Get your Team ID (starts with a
T) by following this guidance
Set the following in mcp.json:
"slack-mcp-server": {
"command": "podman",
"args": [
"run", "-i", "--rm",
"-e",
"SLACK_BOT_TOKEN",
"-e",
"SLACK_TEAM_ID",
"-e",
"SLACK_CHANNEL_IDS",
"docker.io/mcp/slack"
],
"env": {
"SLACK_BOT_TOKEN": "<YOUR_SLACK_BOT_TOKEN>",
"SLACK_TEAM_ID": "<YOUR_SLACK_TEAM_ID>",
"SLACK_CHANNEL_IDS": "<YOUR_SLACK_CHANNEL_IDS>"
}
}Uses mcp-atlassian via uvx.
- Python with
uvxinstalled (pip install uvx) - Jira Personal Access Token
- Go to your Jira instance (e.g., https://issues.redhat.com)
- Navigate to Profile → Personal Access Tokens
- Create a new token with appropriate permissions
Update mcp-servers-config.json:
"mcp-atlassian": {
"command": "uvx",
"args": [
"mcp-atlassian",
"--jira-url",
"https://your-jira-instance.com",
"--jira-personal-token",
"<YOUR_JIRA_PERSONAL_TOKEN>",
"--transport",
"stdio"
]
}Uses GitHub Copilot's MCP endpoint.
- Go to GitHub Settings → Developer settings → Personal access tokens
- Generate a new token with required scopes (repo, read:org, etc.)
Update mcp-servers-config.json:
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "<YOUR_GITHUB_PAT>"
}
}- Open Cursor IDE
- Go to Settings → Features → MCP Servers
- Add the contents of
mcp-servers-config.json(with your actual secrets filled in) - Restart Cursor
Once configured, you can use natural language to interact with these services:
Google:
- "Show my upcoming meetings"
- "Send an email to john@example.com about the project update"
- "Create a Google Doc called 'Meeting Notes'"
Slack:
- "Send a message to #general channel"
- "Check my Slack DMs"
Jira:
- "Show my open Jira issues"
- "Create a new bug ticket"
GitHub:
- "List my open pull requests"
- "Show issues in repo X"
- Never commit secrets to version control
- Store tokens securely (consider using environment variables or a secrets manager)
- Regularly rotate your tokens
- Use minimal required permissions for each service
Google Service MCP is in the google-workspace-mcp subfolder. No git clone of a separate repo — everything is here.
everyday-ai/ ← repo root
├── google-workspace-mcp/ ← Google MCP (Meet, Calendar, Gmail, Docs)
│ ├── src/
│ ├── dist/ # Build output (npm run build from inside this folder)
│ │ └── index.js # ← Cursor runs this for google-service
│ ├── package.json
│ ├── credentials.json # You add this (git-ignored)
│ └── token.json # Created after auth (git-ignored)
├── mcp-servers-config.json # Cursor MCP config
└── README.md