Workspace MCP
by Deepak5106
README.md
# Workspace MCP
A [FastMCP](https://github.com/modelcontextprotocol) server that exposes Google Drive, Google Sheets, and external REST API operations as tools that any MCP-compatible LLM agent (e.g. Claude Desktop) can call.
## Architecture
```
Claude / MCP Client
│
│ MCP protocol
▼
FastMCP Server (main.py)
│
├── Google Drive API (google_tools.py)
├── Google Sheets API (google_tools.py)
└── External REST API (rest_tools.py)
```
## Features
- List files in a Google Drive
- Read data from a Google Sheet
- Append rows to a Google Sheet
- Search records via a external REST API
- All functionality exposed as MCP tools consumable by LLM agents
## Project Structure
```
mcp_workspace/
│
├── main.py # MCP server entrypoint, registers all tools
├── config.py # Loads environment variables / settings
├── google_tools.py # Google Drive & Sheets integration
├── rest_tools.py # Generic external REST API integration
├── requirements.txt
├── .env.example
├── README.md
└── .gitignore
```
## Setup
1. Clone the repo and install dependencies:
```bash
python -m venv venv
source venv/bin/activate # or venv\Scripts\activate on Windows
pip install -r requirements.txt
```
2. Copy `.env.example` to `.env` and fill in your own values:
```bash
cp .env.example .env
```
3. Add your Google service account credentials as `credentials.json` in the project root
4. Run the server:
Option 1: Using Claude Desktop (Recommended)
Add the server to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"google-workspace-server": {
"command": "python",
"args": [
"/path/to/main.py"
]
}
}
}
```
Replace `/path/to/main.py` with the absolute path to your project. Restart Claude Desktop, and the MCP server will be launched automatically.
---
Option 2: Using MCP Inspector (For Development & Testing)
Run the server with the MCP Inspector:
```bash
npx @modelcontextprotocol/inspector python main.py
```
Open the Inspector URL displayed in the terminal to view and test all available MCP tools.
## Notes
- This project was generalized from an internal automation tool. The REST API integration
(`rest_tools.py`) is written generically — swap in your own endpoint and payload shape via
`config.py` / `.env`.
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues