Skip to content

Add Server Package (Nuxt + oRPC + Firestore + Cloud Run) #54

@amondnet

Description

@amondnet

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

  1. Nuxt + oRPC + Firestore setup
  2. GitHub OAuth + API Key authentication
  3. Git + Indexing (Cloud Tasks)
  4. Search API
  5. SSE MCP
  6. Web UI (Nuxt Pages)
  7. Cloud Run deployment

Reference

  • Plan file: .claude/plans/functional-gliding-kahn.md
  • Core package: packages/core/src/context.ts

Metadata

Metadata

Assignees

Labels

p2Medium prioritytype: featureNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions