Skip to main content
Glama
README.md
# Geo-Explorer

**Geo-Explorer** is a learning-track exploration tool that gives you structured study plans, hands-on code challenges, and printable certificates for three technologies: **JavaScript**, **Python**, and **TypeScript** — each at beginner (`iniciante`) or advanced (`avancado`) level.

All track data lives in a local JSON file (`data/tracks.json`). There are no external API calls — everything is static and self-contained.

The project exposes its functionality through two surfaces:

- **CLI** — run commands directly from the terminal with `npm run cli`
- **MCP Server** — register it in any MCP-compatible client (e.g. Claude Desktop) and call the same three tools via natural language

---

## Prerequisites

- **Node.js 18+** (tested on v24)
- **npm 8+**

---

## Installation

```bash
git clone https://github.com/your-username/geo-explorer.git
cd geo-explorer
npm install
```

---

## CLI Usage

All CLI commands use the `npm run cli --` prefix followed by a sub-command and its arguments.

### `trilha` — Study plan

Prints an ordered list of modules for a given technology and level.

```bash
npm run cli -- trilha javascript iniciante
npm run cli -- trilha python avancado
npm run cli -- trilha typescript iniciante
```

### `desafio` — Code challenge

Prints the challenge title, description, and a starter code block for a given track.

```bash
npm run cli -- desafio javascript iniciante
npm run cli -- desafio python avancado
npm run cli -- desafio typescript avancado
```

### `certificado` — Certificate

Generates an ASCII certificate for a learner's name, technology, and level.

```bash
npm run cli -- certificado "Maria Silva" javascript iniciante
npm run cli -- certificado "João Costa" python avancado
npm run cli -- certificado "Ana Lima" typescript iniciante
```

### Help

```bash
npm run cli -- help
```

---

## MCP Server

The MCP server exposes the same three commands (`trilha`, `desafio`, `certificado`) as MCP tools over stdio, so any MCP-compatible client can call them.

**Build the project first:**

```bash
npm run build
```

This compiles TypeScript to `dist/` and produces `dist/mcp-server.js`.

**Run the server:**

```bash
npm start
```

The server stays running and listens for MCP messages on stdin/stdout. See [`docs/mcp-setup.md`](docs/mcp-setup.md) for instructions on registering it in Claude Desktop or another MCP client.

---

## Running Tests

```bash
npm test
```

Runs all 9 Vitest tests across three test files (`track`, `challenge`, `certificate`). Tests run against the real `data/tracks.json` — no mocking required.

TDQS

A3.5/5.0

Scored across 3 tools

Disambiguation5/5

Each tool targets a distinct artifact: study plan, code challenge, and certificate. There is no overlap or ambiguity between the three.

Naming Consistency5/5

All tool names follow the same pattern: single lowercase Portuguese nouns (trilha, desafio, certificado). The naming is uniform and predictable.

Tool Count4/5

Three tools is slightly minimal but appropriate for a focused learning-oriented server. The count is not bloated, though more tools could expand the scope.

Completeness4/5

The core journey of study plan, coding challenge, and certificate is covered. Minor gaps exist, such as no tool for listing available technologies/levels or tracking progress, but they are not fatal.

Maintenance

ActivityMaintained
ResponsivenessNo issues