Jan Server is an enterprise-grade microservices LLM API platform with Model Context Protocol (MCP) tool integration.
| Step | Action | Command |
|---|---|---|
| 1 | Clone repository | git clone https://github.com/janhq/server.git |
| 2 | Run setup wizard | cd jan-server && make quickstart |
| 3 | Verify health | make health-check |
| Document | Description |
|---|---|
| Quickstart | Get up and running in 5 minutes |
| Architecture | System design and component responsibilities |
| First API Call | Sample curl request with authentication |
| Document | Description |
|---|---|
| API Overview | Authentication, base URLs, and service mapping |
| LLM API | OpenAI-compatible chat completions, conversations, models |
| Response API | Multi-step tool orchestration |
| Media API | File uploads, jan_* ID resolution |
| MCP Tools | JSON-RPC tool providers |
| Endpoint Matrix | Complete endpoint reference |
| API Examples | Ready-to-use code snippets |
| Document | Description |
|---|---|
| Development Guide | Local setup, Make targets, hybrid mode |
| Testing Guide | Integration tests, unit tests |
| Configuration | Environment variables, config precedence |
| Service Template | Generate new microservices |
| Conventions | Code style, patterns, workflow |
| Document | Description |
|---|---|
| Deployment Guide | Docker Compose deployment |
| Monitoring Guide | Prometheus, Grafana, Jaeger |
| Authentication | Kong + Keycloak integration |
| Runbooks | On-call playbooks and procedures |
| Troubleshooting | Common issues and solutions |
| Service | Port | Purpose |
|---|---|---|
| Kong Gateway | 8000 | API entry point, auth, routing |
| LLM API | 8080 | Chat completions, conversations |
| Response API | 8082 | Tool orchestration |
| Media API | 8285 | File storage, jan_* IDs |
| MCP Tools | 8091 | Search, scrape, code execution |
| Component | Technology |
|---|---|
| Gateway | Kong 3.5 |
| Services | Go 1.24, Gin, Zerolog, Wire |
| Database | PostgreSQL 18 |
| Auth | Keycloak 24.0.5 |
| MCP | mark3labs/mcp-go v0.7.0 |
| Observability | OpenTelemetry, Prometheus, Grafana |
docs/
├── README.md # This file
├── quickstart.md # Getting started guide
├── api/ # API documentation
│ ├── README.md # API overview
│ ├── llm-api/ # LLM API reference
│ ├── response-api/ # Response API reference
│ ├── media-api/ # Media API reference
│ ├── mcp-tools/ # MCP Tools reference
│ ├── examples/ # Code examples
│ └── endpoint-matrix.md # All endpoints
├── architecture/ # Architecture docs
│ ├── README.md # Architecture overview
│ ├── system-design.md # How the pieces fit together
│ ├── services.md # Service breakdown
│ ├── data-flow.md # Request flow
│ ├── security.md # Security model
│ ├── observability.md # Monitoring and tracing
│ └── test-flows.md # Test suite flows
├── guides/ # How-to guides
│ ├── README.md # Guides overview
│ ├── development.md # Development setup
│ ├── testing.md # Testing guide
│ ├── deployment.md # Deployment guide
│ ├── authentication.md # Auth integration
│ ├── monitoring.md # Monitoring setup
│ └── troubleshooting.md # Common issues
├── configuration/ # Configuration
│ ├── README.md # Config overview
│ ├── env-var-mapping.md # Environment variables
│ └── docker-compose.md # Docker setup
├── conventions/ # Code standards
│ ├── conventions.md # Coding standards
│ └── workflow.md # Git workflow
└── runbooks/ # Operational procedures
└── README.md # Runbooks overview
See the following files for contribution guidelines:
- CONTRIBUTING.md - Contribution process
- CHANGELOG.md - Release notes
- CLAUDE.md - AI assistant guidelines