-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
Summary
Add a new packages/server/ package for team collaboration with Git-based code indexing and semantic search.
Existing MCP package remains unchanged (Local-only, stdio).
Tech Stack
| Layer | Technology |
|---|---|
| Framework | Nuxt 3 (SSR) |
| API | oRPC (Type-safe RPC) |
| Database | Firestore |
| Background Jobs | Cloud Tasks |
| Deployment | Cloud Run |
| Auth | GitHub OAuth |
Architecture
┌─────────────────────────────────────────────────────────────────────┐
│ packages/server (NEW) │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────────┐ │
│ │ oRPC API │ │ SSE MCP │ │ Cloud Tasks │ │
│ │ /repos │ │ /mcp/sse │ │ - Git clone/pull │ │
│ │ /search │ │ │ │ - Indexing (core) │ │
│ │ /auth │ │ │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────────────────┘ │
│ │ │
│ ┌──────────────┐ ▼ │
│ │ Nuxt Pages │ ┌──────────────────────────────────────────────┐ │
│ │ - Dashboard │ │ packages/core (Context class) │ │
│ │ - Search │ └──────────────────────────────────────────────┘ │
│ │ - Settings │ │
│ └──────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
Key Features
- GitHub OAuth authentication
- GitHub Org-based permission (users can only access repos in their orgs)
- Git-based indexing via Cloud Tasks (30min timeout for large repos)
- SSE MCP for web clients
- Web UI with Nuxt UI
oRPC Procedures
const appRouter = {
auth: { me, apiKeys: { list, create, delete } },
repos: { list, get, index, delete, status },
search: { code }
}Implementation Order
- Nuxt + oRPC + Firestore setup
- GitHub OAuth + API Key authentication
- Git + Indexing (Cloud Tasks)
- Search API
- SSE MCP
- Web UI (Nuxt Pages)
- Cloud Run deployment
Reference
- Plan file:
.claude/plans/functional-gliding-kahn.md - Core package:
packages/core/src/context.ts