# ๐Ÿ”Œ Vibn MCP Integration **Model Context Protocol (MCP) support for Vibn** Connect AI assistants like Claude, ChatGPT, and custom agents to your Vibn projects, enabling them to access your coding sessions, project data, and conversation history. --- ## ๐Ÿ“ฆ What's Included ### 1. **MCP Server** (stdio) - Standalone server that runs locally - Exposes Vibn data through the standard MCP protocol - Works with Claude Desktop, custom AI applications, and more - File: `lib/mcp/server.ts` - Launcher: `mcp-server.js` ### 2. **HTTP API** (REST) - Web-accessible MCP endpoint - Authentication via Firebase ID tokens - Perfect for web-based AI assistants - Endpoint: `/api/mcp` ### 3. **Interactive Playground** - Test MCP capabilities directly in the Vibn UI - View how AI assistants see your data - Debug MCP requests and responses - Page: `/[workspace]/mcp` --- ## ๐Ÿš€ Getting Started ### Option 1: For Claude Desktop 1. **Open Claude Desktop configuration:** - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json` - Windows: `%APPDATA%/Claude/claude_desktop_config.json` 2. **Add Vibn MCP server:** ```json { "mcpServers": { "vibn": { "command": "node", "args": ["/Users/your-username/ai-proxy/vibn-frontend/mcp-server.js"], "env": { "FIREBASE_PROJECT_ID": "your-project-id", "FIREBASE_CLIENT_EMAIL": "your-service-account-email", "FIREBASE_PRIVATE_KEY": "your-private-key" } } } } ``` 3. **Restart Claude Desktop** 4. **Test it:** - Open a new chat in Claude - Type: "Can you show me my Vibn projects?" - Claude will use the MCP server to fetch your project data! ### Option 2: For Web-Based AI (HTTP API) Use the REST endpoint to integrate with any AI application: ```typescript const response = await fetch('https://vibnai.com/api/mcp', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_FIREBASE_ID_TOKEN', 'Content-Type': 'application/json', }, body: JSON.stringify({ action: 'read_resource', params: { uri: 'vibn://projects/YOUR_USER_ID' } }) }); const data = await response.json(); console.log(data); ``` ### Option 3: Test in Vibn UI 1. **Navigate to:** `https://vibnai.com/your-workspace/mcp` 2. **Click on any tool card** to test MCP requests 3. **View responses** in the interactive playground --- ## ๐Ÿ“š Available Resources | Resource URI | Description | Returns | |-------------|-------------|---------| | `vibn://projects/{userId}` | All user projects | Array of project objects | | `vibn://projects/{userId}/{projectId}` | Specific project | Single project with details | | `vibn://sessions/{userId}` | All coding sessions | Array of session objects | | `vibn://sessions/{projectId}` | Project sessions | Sessions for specific project | | `vibn://conversations/{projectId}` | AI chat history | Conversation messages | --- ## ๐Ÿ› ๏ธ Available Tools ### `get_project_summary` Get comprehensive project insights. **Input:** ```json { "projectId": "project-abc123" } ``` **Output:** ```json { "project": { "name": "My App", ... }, "stats": { "totalSessions": 42, "totalCost": 12.50, "totalTokens": 125000, "totalDuration": 3600 }, "recentSessions": [...] } ``` ### `search_sessions` Find sessions with filters. **Input:** ```json { "projectId": "project-abc123", "workspacePath": "/path/to/workspace", "startDate": "2024-01-01T00:00:00Z", "endDate": "2024-12-31T23:59:59Z" } ``` **Output:** ```json [ { "id": "session-xyz", "workspacePath": "/path/to/workspace", "cost": 0.25, "tokensUsed": 2500, "duration": 300, ... } ] ``` ### `get_conversation_context` Reference past AI conversations. **Input:** ```json { "projectId": "project-abc123", "limit": 50 } ``` **Output:** ```json [ { "role": "user", "content": "How do I implement auth?", "createdAt": "2024-11-14T10:30:00Z" }, { "role": "assistant", "content": "Here's how to set up authentication...", "createdAt": "2024-11-14T10:30:05Z" } ] ``` --- ## ๐Ÿ’ก Example Use Cases ### 1. Project Status Update **Prompt:** "Give me a status update on my Vibn projects" **What happens:** - AI calls `vibn://projects/{userId}` to list projects - AI calls `get_project_summary` for each project - AI presents a comprehensive overview of all work ### 2. Cost Analysis **Prompt:** "How much have I spent on AI for project X?" **What happens:** - AI calls `get_project_summary` for project X - AI analyzes the `totalCost` metric - AI breaks down costs by session if needed ### 3. Conversation Continuity **Prompt:** "What did we discuss about authentication last week?" **What happens:** - AI calls `get_conversation_context` for the project - AI searches through conversation history - AI references past discussions with full context ### 4. Development Insights **Prompt:** "What files am I spending the most time on?" **What happens:** - AI calls `search_sessions` to get all sessions - AI analyzes file change patterns - AI identifies productivity hotspots --- ## ๐Ÿ—๏ธ Architecture ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ AI Assistant โ”‚ (Claude, ChatGPT, etc.) โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ stdio โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ HTTP โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Vibn MCP Server โ”‚ โ”‚ (server.ts/api) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Firebase Admin โ”‚ โ”‚ (Firestore) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ User Projects โ”‚ โ”‚ + Sessions โ”‚ โ”‚ + Conversations โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` --- ## ๐Ÿ”’ Security ### Authentication - **stdio server:** Requires Firebase Admin credentials (environment variables) - **HTTP API:** Requires Firebase ID token in Authorization header - **User isolation:** All queries filter by `userId` to prevent data leaks ### Best Practices 1. **Never expose MCP server publicly** - Run it locally or behind a firewall 2. **Use environment variables** - Don't hardcode credentials 3. **Rotate keys regularly** - Update Firebase service account keys periodically 4. **Monitor access logs** - Review MCP usage in Firebase logs --- ## ๐Ÿงช Testing ### Test the stdio server: ```bash cd vibn-frontend npm run mcp:server ``` The server will start and wait for connections. To test manually, you can send MCP JSON-RPC messages via stdin. ### Test the HTTP API: ```bash # Get capabilities curl https://vibnai.com/api/mcp # List resources (requires auth token) curl -X POST https://vibnai.com/api/mcp \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{"action": "list_resources"}' ``` ### Test in the UI: 1. Navigate to `/your-workspace/mcp` 2. Click tool cards to trigger requests 3. View formatted JSON responses --- ## ๐Ÿ› Troubleshooting ### "Server won't start" - โœ… Check `.env.local` has all Firebase credentials - โœ… Verify Node.js version (18+) - โœ… Run `npm install` to ensure dependencies are installed ### "AI can't connect" - โœ… Use absolute paths in Claude config - โœ… Verify the MCP server is running - โœ… Check environment variables are set in config ### "No data returned" - โœ… Confirm you have projects/sessions in Firebase - โœ… Check userId matches your authenticated user - โœ… Review server logs for errors ### "Permission denied" - โœ… Ensure Firebase service account has Firestore read access - โœ… Verify security rules allow server-side access - โœ… Check ID token is valid and not expired --- ## ๐Ÿ“ˆ Roadmap Future MCP enhancements: - [ ] **Write operations** - Create/update projects via MCP - [ ] **Real-time subscriptions** - Stream session updates - [ ] **Advanced analytics** - Cost forecasting, productivity insights - [ ] **Git integration** - Access commit history via MCP - [ ] **File content access** - Read actual code files - [ ] **Prompt templates** - Pre-built prompts for common tasks --- ## ๐Ÿค Contributing Want to extend Vibn's MCP capabilities? Here's how: 1. **Add new resources** - Edit `lib/mcp/server.ts` and `/api/mcp/route.ts` 2. **Add new tools** - Implement in both stdio and HTTP handlers 3. **Update docs** - Keep `MCP_SETUP.md` in sync 4. **Test thoroughly** - Use the playground to verify changes --- ## ๐Ÿ“– Learn More - [Model Context Protocol Spec](https://modelcontextprotocol.io/) - [OpenAI MCP Documentation](https://platform.openai.com/docs/mcp) - [Vibn Documentation](https://vibnai.com/docs) - [Firebase Admin SDK](https://firebase.google.com/docs/admin/setup) --- ## ๐Ÿ’ฌ Support Need help with MCP integration? - ๐Ÿ“ง Email: support@vibnai.com - ๐Ÿ’ฌ Discord: [Join our community](https://discord.gg/vibn) - ๐Ÿ› Issues: [GitHub Issues](https://github.com/vibn/vibn/issues) --- **Built with โค๏ธ by the Vibn team** *Making AI assistants truly understand your codebase.*