Use when adding new error messages to React, or seeing "unknown error code" warnings.
npx skills add TheSimpleApp/agent-skills --skill "rube-hub"
Install specific skill from multi-skill repository
# Description
Unified integration layer using Rube/Composio for Supabase, GitHub, Notion, Vercel, Fireflies, and 500+ apps. Auto-detects the right project from context. Use as the primary way to interact with external services.
# SKILL.md
name: rube-hub
description: Unified integration layer using Rube/Composio for Supabase, GitHub, Notion, Vercel, Fireflies, and 500+ apps. Auto-detects the right project from context. Use as the primary way to interact with external services.
license: MIT
metadata:
author: thesimpleapp
version: "1.0"
Rube Hub
Unified integration layer - one tool for all external services.
Philosophy
BEFORE (Manual Setup):
- Supabase MCP + API key per project
- GitHub MCP + token
- Notion MCP + integration key
- Multiple .mcp.json entries
- Per-project configuration
AFTER (Rube Hub):
- One Rube connection
- OAuth once per service
- Auto-detect project from context
- Works across all projects
Available Integrations
Currently Connected
| Service | Status | What You Can Do |
|---|---|---|
| Supabase | β Active | Query tables, run SQL, manage projects |
| GitHub | β Active | Repos, issues, PRs, file management |
| Notion | β Active | Pages, databases, content blocks |
| Firecrawl | β Active | Web scraping, content extraction |
Available (Need OAuth)
| Service | Status | To Connect |
|---|---|---|
| Vercel | βͺ Available | RUBE_MANAGE_CONNECTIONS toolkit="vercel" |
| Fireflies | βͺ Available | RUBE_MANAGE_CONNECTIONS toolkit="fireflies" |
| Slack | βͺ Available | RUBE_MANAGE_CONNECTIONS toolkit="slack" |
| Linear | βͺ Available | RUBE_MANAGE_CONNECTIONS toolkit="linear" |
| Gmail | βͺ Available | RUBE_MANAGE_CONNECTIONS toolkit="gmail" |
Not Available in Rube
| Service | Alternative |
|---|---|
| Firebase | Use Firebase CLI directly |
| AWS | Use AWS CLI directly |
Smart Project Detection
From CLAUDE.md
If project has CLAUDE.md with project info:
# MyApp
## Supabase
project_ref: tzuhmsgldrzqjoqlimju
name: evolvium
β Auto-use this project for Supabase queries
From Folder Name
Match folder name to Supabase project:
Current folder: evolvium/
β Match: tzuhmsgldrzqjoqlimju (evolvium)
Current folder: hirex-app/
β Match: bfbcjhqklsrzegvosxdl (hirex)
From Git Remote
Match GitHub remote to org/repo:
git remote: github.com/TheSimpleApp/evolvium
β GitHub: TheSimpleApp/evolvium
β Supabase: tzuhmsgldrzqjoqlimju (by name match)
Project Registry
Your Supabase projects:
| Name | Ref | Region |
|---|---|---|
| SuppX | ymjczlajgmwdfctgfbuz | us-west-1 |
| Oracle | igjimudqpqpbohrtukij | us-west-1 |
| quantum_network | levkmulbzkvhddssyhoc | us-east-2 |
| evolvium | tzuhmsgldrzqjoqlimju | us-east-1 |
| hirex | bfbcjhqklsrzegvosxdl | us-west-2 |
| fittravel | lwyuwxqwshflmuefxgay | us-east-1 |
| mindos | wnyondkfdcglpifgizib | us-west-2 |
| RealityOS | sqhzbqxnvottlggjlkxh | us-east-1 |
| developer-platform | wpdbkitdymroijewsusy | us-west-2 |
| detach_reset | rzkrgiyrirokfmnkfaxt | us-east-1 |
| simple_create | nlxsegokdwlsyinpweip | us-east-1 |
| gobuild | wlqnnsnhgwyahnenteei | us-west-2 |
Common Workflows
1. Database Query (Supabase)
User: "Show me users from the evolvium project"
Agent:
1. Detect project: evolvium β tzuhmsgldrzqjoqlimju
2. SUPABASE_LIST_TABLES project_ref="tzuhmsgldrzqjoqlimju"
3. SUPABASE_BETA_RUN_SQL_QUERY
ref="tzuhmsgldrzqjoqlimju"
query="SELECT * FROM users LIMIT 10"
read_only=true
2. Create GitHub Issue
User: "Create an issue for the login bug"
Agent:
1. Detect repo from git remote or folder
2. GITHUB_CREATE_AN_ISSUE
owner="TheSimpleApp"
repo="evolvium"
title="Login bug: session timeout"
body="..."
labels=["bug"]
3. Update Notion Page
User: "Add meeting notes to the project doc"
Agent:
1. NOTION_SEARCH_NOTION_PAGE query="evolvium project"
2. NOTION_ADD_MULTIPLE_PAGE_CONTENT
parent_block_id="..."
content_blocks=[{...}]
4. Deploy to Vercel
User: "Deploy the latest to production"
Agent:
1. Check Vercel connection (connect if needed)
2. GITHUB_GET_A_REPOSITORY β get repo ID
3. VERCEL_CREATE_NEW_DEPLOYMENT
name="evolvium"
gitSource={type: "github", repoId: "...", ref: "main"}
target="production"
4. VERCEL_GET_DEPLOYMENT_DETAILS β poll until ready
5. Process Meeting Transcript
User: "Get action items from today's Fireflies call"
Agent:
1. Check Fireflies connection (connect if needed)
2. FIREFLIES_GET_TRANSCRIPTS limit=5
3. FIREFLIES_GET_TRANSCRIPT_BY_ID id="..."
4. Parse for action items
5. Create GitHub issues or Notion tasks
Integration Patterns
Pattern 1: Context-First
Always detect project context before making calls:
1. Check CLAUDE.md for explicit project refs
2. Check folder name for project match
3. Check git remote for repo info
4. Ask user if ambiguous
Pattern 2: Graceful Fallback
When Rube isn't available or connected:
Supabase:
Rube connected? β Use SUPABASE_* tools
Not connected? β Suggest: RUBE_MANAGE_CONNECTIONS toolkit="supabase"
Rube unavailable? β Use Supabase MCP if configured
GitHub:
Rube connected? β Use GITHUB_* tools
Not connected? β Suggest: RUBE_MANAGE_CONNECTIONS toolkit="github"
Rube unavailable? β Use gh CLI
Fireflies:
Rube connected? β Use FIREFLIES_* tools
Not connected? β Use Firecrawl to scrape public URL
Pattern 3: Batch Operations
For multi-step workflows, use Rube's multi-execute:
RUBE_MULTI_EXECUTE_TOOL
tool_calls=[
{tool_slug: "GITHUB_GET_A_REPOSITORY", args: {...}},
{tool_slug: "SUPABASE_LIST_TABLES", args: {...}},
{tool_slug: "NOTION_SEARCH_NOTION_PAGE", args: {...}}
]
Session Management
Rube uses session IDs for workflow correlation:
First call: session={generate_id: true}
Subsequent: session={id: "returned_session_id"}
Always pass session ID to track related operations.
Error Handling
Connection Errors
Error: "No Active connection for toolkit=vercel"
Action:
1. Tell user: "Vercel not connected yet"
2. Offer: "Run RUBE_MANAGE_CONNECTIONS toolkit='vercel' to connect"
3. Wait for confirmation
4. Open OAuth flow
5. Retry operation
Project Not Found
Error: "project_ref not valid"
Action:
1. List available projects: SUPABASE_LIST_ALL_PROJECTS
2. Show user the options
3. Ask which project to use
4. Save to CLAUDE.md for future
Rate Limiting
Error: HTTP 429
Action:
1. Wait with exponential backoff
2. Retry after delay
3. If persistent, batch operations
CLAUDE.md Integration
Store project mappings in CLAUDE.md:
# MyApp
## Integrations
### Supabase
project_ref: tzuhmsgldrzqjoqlimju
name: evolvium
### GitHub
owner: TheSimpleApp
repo: evolvium
### Notion
workspace: Simple.
project_page: 59833787-2cf9-4fdf-8782-e53db20768a5
### Vercel
project: evolvium
team: thesimpleapp
This allows instant context detection without prompts.
Connecting New Services
One-Time OAuth Flow
# Connect Vercel
RUBE_MANAGE_CONNECTIONS toolkit="vercel"
β Opens browser β Authorize β Done forever
# Connect Fireflies
RUBE_MANAGE_CONNECTIONS toolkit="fireflies"
β Opens browser β Authorize β Done forever
# Connect Slack
RUBE_MANAGE_CONNECTIONS toolkit="slack"
β Opens browser β Authorize β Done forever
Verify Connection
RUBE_SEARCH_TOOLS
queries=[{use_case: "check connection status"}]
β Returns toolkit_connection_statuses showing all connections
Quick Reference
Supabase Tools
SUPABASE_LIST_ALL_PROJECTS- List all projectsSUPABASE_LIST_TABLES- List tables in projectSUPABASE_GET_TABLE_SCHEMAS- Get column infoSUPABASE_BETA_RUN_SQL_QUERY- Run SQL (read_only=true for SELECT)
GitHub Tools
GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER- Your reposGITHUB_CREATE_AN_ISSUE- Create issueGITHUB_CREATE_OR_UPDATE_FILE_CONTENTS- Edit filesGITHUB_GET_A_REPOSITORY- Repo info (includes numeric ID for Vercel)
Notion Tools
NOTION_SEARCH_NOTION_PAGE- Find pagesNOTION_ADD_MULTIPLE_PAGE_CONTENT- Add contentNOTION_UPDATE_PAGE- Update propertiesNOTION_FETCH_ALL_BLOCK_CONTENTS- Read page content
Vercel Tools (requires connection)
VERCEL_CREATE_PROJECT- New projectVERCEL_CREATE_NEW_DEPLOYMENT- DeployVERCEL_GET_DEPLOYMENT_DETAILS- Check status
Fireflies Tools (requires connection)
FIREFLIES_GET_TRANSCRIPTS- List meetingsFIREFLIES_GET_TRANSCRIPT_BY_ID- Full transcriptFIREFLIES_CREATE_ASK_FRED_THREAD- Ask questions about meetings
Why Rube Over Individual MCPs
| Aspect | Individual MCPs | Rube Hub |
|---|---|---|
| Setup | Per-project config | One-time OAuth |
| API Keys | Manage per service | Rube handles auth |
| Project Switching | Reconfigure | Auto-detect |
| New Services | Find & install MCP | Already available |
| Maintenance | Update each MCP | Rube updates |
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.