Multi-backend MCP gateway providing Google Drive write access, Notion, and more through a single MCP connector.
Iris solves the free-tier MCP connector limitation by acting as a gateway: users connect ONE custom connector (Iris) and get access to multiple backend services with full read/write capabilities.
Two Modes:
- Stdio Mode (Claude Desktop) - Production ready β
- HTTP Mode (Browser claude.ai) - Prototype π§ͺ See HTTP-MODE-GUIDE.md
Google Drive Backend:
- β
iris_drive_write- Create or update files - β
iris_drive_read- Read file contents - β
iris_drive_create_folder- Create folder structures - β
iris_drive_list- List files and folders - β
iris_drive_move- Move or rename files - β
iris_drive_delete- Delete files (with safety confirmation)
Coming Soon:
- Notion backend (read + write)
- Slack backend (send messages)
- Dropbox backend (read + write)
- Node.js 18+ and npm
- Google Cloud Project with Drive API enabled
- OAuth 2.0 credentials (Client ID and Secret)
- Clone and install dependencies:
git clone https://github.com/continuity-bridge/iris-mcp-server.git
cd iris-mcp-server
npm install- Configure environment:
cp .env.example .env
# Edit .env with your Google OAuth credentials- Build:
npm run build- Test locally:
npx @modelcontextprotocol/inspector node dist/index.jsTo use Iris with browser-based claude.ai:
# After completing OAuth setup above
npm run setup:browser # Interactive wizard
npm run http # Start HTTP serverSee HTTP-MODE-GUIDE.md for complete browser integration guide.
- Go to Google Cloud Console
- Create a new project or select existing
- Enable Google Drive API
- Create OAuth 2.0 credentials:
- Application type: Web application
- Authorized redirect URIs:
https://iris.uncletallest.productions/oauth/callback
- Copy Client ID and Client Secret to
.env
See .env.example for all required configuration.
Coordinating instance saves shared notes:
iris_drive_write({
path: "coordination/shared-notes.md",
content: "Instance A is handling task X, Instance B is tracking Y...",
mode: "upsert"
})Health tracking instance saves wellness data:
iris_drive_write({
path: "wellness/tracking/2026-03.md",
content: "# March 2026 Health Log\n\n## Week 1\n- Energy: 7/10\n- Sleep: 8hrs avg\n...",
mimeType: "text/markdown"
})Project tracking instance saves application data:
iris_drive_write({
path: "projects/applications/applied-march.md",
content: "| Company | Position | Applied | Status |\n|---------|----------|---------|--------|\n...",
mode: "upsert"
})Create folder structure:
iris_drive_create_folder({
path: "projects/active/project-alpha"
})
// Creates: projects/ β projects/active/ β projects/active/project-alpha/List files:
iris_drive_list({
path: "coordination",
recursive: false,
type: "both"
})Read file:
iris_drive_read({
path: "coordination/memory.md",
asText: true
})Move file:
iris_drive_move({
sourcePath: "old-location/file.md",
destinationPath: "new-location/file.md"
})Delete file (with confirmation):
iris_drive_delete({
path: "temp/old-notes.md",
confirm: true,
permanent: false // Moves to trash, not permanent
})Claude.ai User (Free Tier)
β
(1 Custom Connector Slot)
β
Iris MCP Server
β
Google Drive API (via OAuth)
Notion API (future)
Slack API (future)
Watch mode:
npm run devBuild:
npm run buildTest with MCP Inspector:
npx @modelcontextprotocol/inspector node dist/index.js- Google Drive write backend
- OAuth dashboard for user authentication
- Token encryption and database storage
- Notion backend
- Slack backend
- Dropbox backend
- User management dashboard
- MCP server marketplace listing
Pull requests welcome! Please read CONTRIBUTING.md first.
MIT License - see LICENSE file for details
Created by: Jerry Jackson (Uncle Tallest)
For: Multi-instance AI systems and neurodivergent-AI collaboration