geo-explorer
Provides structured learning tracks for JavaScript at beginner and advanced levels, including study plans, code challenges, and printable certificates.
Provides structured learning tracks for Python at beginner and advanced levels, including study plans, code challenges, and printable certificates.
Provides structured learning tracks for TypeScript at beginner and advanced levels, including study plans, code challenges, and printable certificates.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@geo-explorerShow me the beginner JavaScript study plan."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 cliMCP 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+
Related MCP server: Learning Assistant MCP Server
Installation
git clone https://github.com/your-username/geo-explorer.git
cd geo-explorer
npm installCLI 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.
npm run cli -- trilha javascript iniciante
npm run cli -- trilha python avancado
npm run cli -- trilha typescript iniciantedesafio — Code challenge
Prints the challenge title, description, and a starter code block for a given track.
npm run cli -- desafio javascript iniciante
npm run cli -- desafio python avancado
npm run cli -- desafio typescript avancadocertificado — Certificate
Generates an ASCII certificate for a learner's name, technology, and level.
npm run cli -- certificado "Maria Silva" javascript iniciante
npm run cli -- certificado "João Costa" python avancado
npm run cli -- certificado "Ana Lima" typescript inicianteHelp
npm run cli -- helpMCP 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:
npm run buildThis compiles TypeScript to dist/ and produces dist/mcp-server.js.
Run the server:
npm startThe server stays running and listens for MCP messages on stdin/stdout. See docs/mcp-setup.md for instructions on registering it in Claude Desktop or another MCP client.
Running Tests
npm testRuns all 9 Vitest tests across three test files (track, challenge, certificate). Tests run against the real data/tracks.json — no mocking required.
Available Tools
3 toolscertificadoC
Gera um certificado de conclusão para o aprendiz.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Nome do aprendiz | |
| level | Yes | Nível: iniciante ou avancado | |
| technology | Yes | Nome da tecnologia |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry behavioral transparency, but it only states that a certificate is generated. It does not specify side effects, persistence, permissions, or return behavior, which is especially relevant for an action that may create or deliver a file.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear, front-loaded sentence with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description leaves out what the tool returns or does with the generated certificate (e.g., create a file, return a URL, persist to a system). Since there are no annotations and no output schema, this behavioral gap is significant for an agent deciding whether this is the right call and what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already documented. The tool description adds no extra semantics beyond stating the purpose, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Gera' / 'generates') and a clear object ('certificado de conclusão para o aprendiz'), making the tool's purpose obvious. It does not explicitly differentiate from the sibling tools 'trilha' and 'desafio', though the certificate-generation intent is distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus the sibling tools, nor any conditions, prerequisites, or contexts. The description is purely a definition of function, so an agent has no help choosing between this and 'trilha' or 'desafio'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
desafioA
Retorna o desafio de código para uma tecnologia e nível.
| Name | Required | Description | Default |
|---|---|---|---|
| level | Yes | Nível: iniciante ou avancado | |
| technology | Yes | Nome da tecnologia |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description makes the read-only nature clear ('Retorna...') and there are no warnings about side effects. However, it provides no detail about response format, limits, or failure behavior, and there are no annotations to help.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no filler. The purpose is immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter retrieval tool, the description plus schema provide the essential calling context. It lacks examples of valid technology values and any indication of the response shape, but the tool appears low-complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high: both parameters are documented. The description itself adds little beyond the schema; 'level' gives allowed examples ('iniciante ou avancado'), and 'technology' remains a generic name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool "returns a code challenge for a technology and level," with a specific verb and object. It does not explicitly contrast with sibling tools like 'certificado', but the scope is understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied—call it when you need a code challenge for a given technology and skill level—but there is no explicit guidance about when to prefer an alternative tool or avoid using it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trilhaB
Retorna o plano de estudos para uma tecnologia e nível.
| Name | Required | Description | Default |
|---|---|---|---|
| level | Yes | Nível: iniciante ou avancado | |
| technology | Yes | Nome da tecnologia (ex: javascript) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full behavioral burden. 'Retorna' implies a read-only operation and makes the core behavior clear, but it does not state side-effect freedom, response shape, or any constraints (e.g., technology format). For a simple retrieval tool this is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the resource and scope with no filler. It is immediately readable and contains all essential purpose information. Nothing could be removed without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, with two well-documented parameters and no output schema, so the description does not need to explain return values in detail. However, the description omits context about what the study plan contains, how it relates to the sibling tools (desafio, certificado), and whether any ordering or prerequisites apply. It is acceptable for a basic query but not fully complete for an agent navigating the tool landscape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: each parameter already has a meaningful description with an example (e.g., 'javascript' and 'iniciante ou avancado'). The tool description only restates 'tecnologia e nível' without adding value beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Retorna') and a clear resource ('plano de estudos') scoped by technology and level, so an agent can tell what the tool does. It does not explicitly contrast with the sibling tools (desafio, certificado), but the names and resource type make the distinction fairly evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus the alternatives (desafio, certificado). There are no when-to-use hints, exclusions, or context about whether this should be used before or after a challenge/certificate. The agent is left to infer usage from the name and sibling tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v1.0.0- First observed
certificado - First observed
desafio - First observed
trilha
TDQS
Scored across 3 tools
Each tool targets a distinct artifact: study plan, code challenge, and certificate. There is no overlap or ambiguity between the three.
All tool names follow the same pattern: single lowercase Portuguese nouns (trilha, desafio, certificado). The naming is uniform and predictable.
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.
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
Related MCP Connectors
Search 1,580 certification exam blueprints: domains, scoring, prerequisites, compare. No API key.
Read-only access to Epivo's live course catalogue for AI agents.
Query and audit AppSheet apps in natural language via Knotrik's pre-scanned definitions.
CareerProof MCP gives AI agents direct access to a professional-grade career and workforce intelligence platform. Two namespaces: atlas_* for HR/TA teams (candidate evaluation, batch shortlisting, competency scoring, interview generation, JD analysis, custom eval frameworks, research reports) and ceevee_* for professionals (CV optimization, career positioning, salary intelligence, market reports). Backed by RAG knowledge from 50+ premium research sources (McKinsey, BCG, HBR, Gartner, WEF)
Related MCP Servers
- FlicenseAqualityNot gradedmaintenanceA Model Context Protocol server that enables Claude and other AI assistants to generate personalized, contextually-relevant coding challenges in JavaScript, TypeScript, HTML, and CSS.1-
- AlicenseAqualityDmaintenanceProvides educational tools for developers to learn programming concepts, review code, get best practices, compare approaches, generate learning paths, debug, explain code, and quiz themselves.8MIT
- FlicenseNot gradedqualityCmaintenanceThis MCP server exposes programming topic data and tools (search, practice suggestions) to help AI agents answer study questions, like 'How to study Python decorators?'.-
- AlicenseNot gradedqualityAmaintenanceEnables querying French national directories of professional certifications (RNCP/RS) for certification details, validity, competence blocks, and habilitation status using natural language.1MIT