---
title: 'Development'
description: 'Develop and contribute to MCPHub'
---

This page is a landing index. The full developer documentation lives under `docs/development/`.

<CardGroup cols={2}>
  <Card title="Getting Started" icon="rocket" href="/development/getting-started">
    Clone the repo, install dependencies, run the dev servers, and find your way around the code.
  </Card>
  <Card title="Architecture" icon="diagram-project" href="/development/architecture">
    The actual moving parts: `AppServer`, the service layer, file vs. database storage, and request paths.
  </Card>
  <Card title="Embedding Lifecycle" icon="vector-square" href="/development/embedding-lifecycle">
    How smart-routing embeddings are generated, persisted, and refreshed.
  </Card>
  <Card title="Contributing" icon="code-pull-request" href="/development/contributing">
    Coding style, commit message conventions, and PR review expectations.
  </Card>
</CardGroup>

## Quick reference

- **Source layout**: `src/server.ts` is the process entrypoint; HTTP routes live in `src/routes/index.ts`. See [Architecture](/development/architecture) for the full map.
- **Dev servers**: `pnpm dev` runs the backend on `:3000` and the Vite frontend on `:5173`. The frontend proxies `/api`, `/mcp`, `/sse`, `/oauth`, `/health` to the backend (`frontend/vite.config.ts`).
- **Tests**: `pnpm test` runs the Jest suite. Tests live under `src/**/*.test.ts` and `tests/`.
- **Lint / format**: `pnpm lint`, `pnpm format`.
- **Storage modes**: file (default, `mcp_settings.json`) or PostgreSQL — see [Database Configuration](/configuration/database-configuration).

For deployment, dependencies, and full end-user installation, see [Installation Guide](/installation).
