Skip to main content
Glama
mardraze

Jobs MCP Server

by mardraze
README.md
# Jobs MCP Server

Remote MCP (Model Context Protocol) server zbudowany w Node.js, TypeScript i Express.

## Funkcjonalności

### Tools (Narzędzia)
- **get_job_listings** - Wyszukiwanie ofert pracy na podstawie kryteriów
- **calculate** - Wykonywanie podstawowych operacji arytmetycznych

### Resources (Zasoby)
- **jobs://featured** - Lista wyróżnionych ofert pracy
- **jobs://stats** - Statystyki rynku pracy

## Instalacja

```bash
npm install
```

## Konfiguracja

Skopiuj plik `.env.example` do `.env`:

```bash
copy .env.example .env
```

Możesz zmienić port w pliku `.env` (domyślnie 3000).

## Uruchomienie

### Tryb deweloperski (kompilacja + start)
```bash
npm run dev
```

### Kompilacja
```bash
npm run build
```

### Start (wymaga wcześniejszej kompilacji)
```bash
npm start
```

### Tryb watch (automatyczna rekompilacja)
```bash
npm run watch
```

## Endpointy

- `GET /` - Informacje o serwerze i dostępnych możliwościach
- `GET /health` - Health check
- `POST /mcp` - Główny endpoint MCP do komunikacji

## Przykłady użycia

### Health Check
```bash
curl http://localhost:3000/health
```

### Wywołanie narzędzia get_job_listings
```bash
curl -X POST http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "method": "tools/call",
    "params": {
      "name": "get_job_listings",
      "arguments": {
        "query": "JavaScript",
        "location": "Warsaw",
        "limit": 5
      }
    }
  }'
```

### Wywołanie narzędzia calculate
```bash
curl -X POST http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "method": "tools/call",
    "params": {
      "name": "calculate",
      "arguments": {
        "operation": "multiply",
        "a": 15,
        "b": 7
      }
    }
  }'
```

### Lista dostępnych narzędzi
```bash
curl -X POST http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "method": "tools/list",
    "params": {}
  }'
```

### Lista dostępnych zasobów
```bash
curl -X POST http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "method": "resources/list",
    "params": {}
  }'
```

### Odczyt zasobu
```bash
curl -X POST http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "method": "resources/read",
    "params": {
      "uri": "jobs://featured"
    }
  }'
```

## Struktura projektu

```
jobs-mcp/
├── src/
│   └── index.ts          # Główny plik serwera
├── dist/                 # Skompilowane pliki (generowane)
├── .env.example          # Przykładowa konfiguracja
├── .gitignore
├── package.json
├── tsconfig.json
└── README.md
```

## Technologie

- **Node.js** - Runtime JavaScript
- **TypeScript** - Typowany JavaScript
- **Express** - Framework webowy
- **@modelcontextprotocol/sdk** - SDK dla MCP
- **CORS** - Obsługa Cross-Origin Resource Sharing
- **dotenv** - Zarządzanie zmiennymi środowiskowymi

## Rozwój

Możesz rozszerzyć serwer dodając:
- Nowe narzędzia w `setRequestHandler(CallToolRequestSchema, ...)`
- Nowe zasoby w `setRequestHandler(ListResourcesRequestSchema, ...)` i `setRequestHandler(ReadResourceRequestSchema, ...)`
- Integracje z prawdziwymi API ofert pracy
- Bazę danych do przechowywania danych
- Autentykację i autoryzację

## Licencja

ISC