AI Workforce MCP Server
by khatrikajal
README.md
# AI Workforce MCP Server
A production-ready MCP (Model Context Protocol) server that provides Calendar, Email, Meeting Notetaker, and Weather tools. Deploy to [Prefect Horizon](https://horizon.prefect.io) for secure OAuth-authenticated access from any MCP client.
## Features
- **Calendar Management**: List calendars, view events, create meetings with Google Meet
- **Email Operations**: List, analyze, and send emails
- **Meeting Notetaker**: Join meetings, record, transcribe, and generate AI summaries
- **Weather Information**: Get current weather for any city
- **OAuth Authentication**: Secure access via Prefect Horizon
## Available Tools
| Tool | Description |
|------|-------------|
| `get_current_datetime` | Get current date, time, and timezone |
| `get_calendars` | List all available calendars |
| `list_calendar_events` | List events from a calendar |
| `create_calendar_event` | Create a new event with Google Meet |
| `schedule_meeting` | Schedule a meeting with attendees |
| `list_emails` | List recent emails from inbox |
| `analyze_emails` | Categorize and analyze emails |
| `send_email` | Send an email to a recipient |
| `join_meeting` | Join a meeting with AI notetaker |
| `get_notetaker_status` | Check notetaker recording status |
| `list_notetakers` | List all notetaker sessions |
| `get_meeting_transcript` | Get full meeting transcript |
| `get_meeting_summary` | Get AI-generated meeting summary |
| `get_weather` | Get current weather for a city |
| `get_server_status` | Check server health and available tools |
---
## Deployment to Prefect Horizon
### Prerequisites
1. A GitHub account
2. Your API keys ready:
- **Nylas API Key** - Get from [Nylas Dashboard](https://dashboard.nylas.com)
- **Nylas Grant ID** - From your Nylas connected account
- **Weather API Key** - Get from [OpenWeatherMap](https://openweathermap.org/api)
### Step 1: Push to GitHub
```bash
# Initialize git repository (if not already)
cd mcp-server
git init
# Add all files
git add .
# Commit
git commit -m "Initial MCP server setup"
# Create a new repository on GitHub and push
git remote add origin https://github.com/YOUR_USERNAME/ai-workforce-mcp-server.git
git branch -M main
git push -u origin main
```
### Step 2: Deploy to Prefect Horizon
1. **Visit** [horizon.prefect.io](https://horizon.prefect.io)
2. **Sign in** with your GitHub account
3. **Connect Repository**:
- Grant Horizon access to your repositories
- Select `ai-workforce-mcp-server` repository
4. **Configure Server**:
- **Server Name**: `ai-workforce` (this becomes your URL: `ai-workforce.fastmcp.app`)
- **Description**: "AI Workforce - Calendar, Email, and Meeting Tools"
- **Entrypoint**: `server.py:mcp`
- **Authentication**: Enable OAuth (recommended)
5. **Add Environment Variables**:
- `NYLAS_API_KEY`: Your Nylas API key
- `NYLAS_GRANT_ID`: Your Nylas grant ID
- `WEATHER_API_KEY`: Your OpenWeatherMap API key
6. **Click Deploy**
Your server will be live at: `https://ai-workforce.fastmcp.app/mcp`
---
## Connecting MCP Clients
### Your MCP Server URL
After deployment, your server URL will be:
```
https://YOUR-SERVER-NAME.fastmcp.app/mcp
```
### Claude Desktop Configuration
Add to your Claude Desktop config (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"ai-workforce": {
"url": "https://ai-workforce.fastmcp.app/mcp",
"transport": "streamable-http"
}
}
}
```
### Claude Code CLI Configuration
```bash
# Add the remote MCP server
claude mcp add ai-workforce --url https://ai-workforce.fastmcp.app/mcp
```
### Cursor IDE Configuration
Add to your Cursor settings:
```json
{
"mcp.servers": {
"ai-workforce": {
"url": "https://ai-workforce.fastmcp.app/mcp",
"transport": "streamable-http"
}
}
}
```
### Any MCP Client (Generic)
Use these connection details:
- **URL**: `https://ai-workforce.fastmcp.app/mcp`
- **Transport**: `streamable-http`
- **Authentication**: OAuth 2.1 (handled by Horizon)
---
## OAuth Authentication Flow
When a new client connects:
1. Client requests connection to your MCP server URL
2. Horizon redirects to OAuth consent screen
3. User authenticates with their identity provider
4. Horizon issues access token
5. Client can now use all MCP tools
**For automated/service accounts**: Use Horizon API keys instead of interactive OAuth.
---
## Local Development
### Setup
```bash
# Clone the repository
git clone https://github.com/YOUR_USERNAME/ai-workforce-mcp-server.git
cd ai-workforce-mcp-server
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Copy environment file
cp .env.example .env
# Edit .env with your API keys
```
### Run Locally
```bash
# Run with FastMCP CLI
fastmcp run server.py:mcp
# Or run directly
python server.py
```
### Test with FastMCP Inspector
```bash
# Inspect tools before deployment
fastmcp inspect server.py:mcp
```
---
## Testing Your Deployment
### Using Horizon's Built-in Tools
1. Go to your server page on [horizon.prefect.io](https://horizon.prefect.io)
2. Click **Inspector** to see all tools and test them
3. Click **ChatMCP** for conversational testing
### Using curl
```bash
# Get server status (after OAuth)
curl -X POST https://ai-workforce.fastmcp.app/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{"method": "tools/call", "params": {"name": "get_server_status"}}'
```
---
## Continuous Deployment
Horizon automatically:
- **Redeploys** when you push to `main` branch
- **Creates preview deployments** for pull requests
- **Rolls back** if deployment fails
---
## Sharing Your Server
### Public Access (with Authentication)
Anyone can connect to your server URL if they:
1. Have the URL: `https://ai-workforce.fastmcp.app/mcp`
2. Complete OAuth authentication
3. Are authorized in your Horizon settings
### Managing Access
In Horizon dashboard:
- **Organization members**: Automatically authorized
- **External users**: Require explicit approval
- **API Keys**: For service accounts and automation
---
## Troubleshooting
### "No calendars found"
- Verify `NYLAS_GRANT_ID` is correct
- Ensure the grant has calendar permissions
### "Authentication failed"
- Check `NYLAS_API_KEY` is valid
- Verify environment variables are set in Horizon
### "Weather API error"
- Verify `WEATHER_API_KEY` is valid
- Check API quota limits
### Server not responding
- Check Horizon dashboard for deployment logs
- Verify all required environment variables are set
---
## Support
- **Horizon Documentation**: [gofastmcp.com/deployment/prefect-horizon](https://gofastmcp.com/deployment/prefect-horizon)
- **FastMCP Documentation**: [gofastmcp.com](https://gofastmcp.com)
- **Nylas Documentation**: [developer.nylas.com](https://developer.nylas.com)
---
## License
MIT License
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessSyncing