Skip to main content
Glama
README.md
# mcp-roadmapsh

[![npm](https://img.shields.io/npm/v/mcp-roadmapsh.svg)](https://www.npmjs.com/package/mcp-roadmapsh)
[![Node](https://img.shields.io/node/v/mcp-roadmapsh.svg)](https://nodejs.org)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)

MCP server for [roadmap.sh](https://roadmap.sh) — developer roadmaps, best
practices, interview questions, project ideas, videos, and local progress
tracking. Built on the official `@modelcontextprotocol/sdk` (TypeScript / stdio).

All data comes from official, public sources — no scraping, no mock data:

- `https://roadmap.sh/{slug}.json` — rendered roadmap graphs
- `raw.githubusercontent.com/nilbuild/developer-roadmap` — topic markdown
- GitHub contents API — dynamic slug listings

## Prerequisite

[Node.js](https://nodejs.org) **20 or newer** (`node --version` to check). That is
the only requirement — `npx` (bundled with Node) handles the rest, no manual
clone or build needed.

## Quick start

### Claude Code (one command)

```bash
# Once published to npm:
claude mcp add roadmapsh -- npx -y mcp-roadmapsh

# Works today, straight from GitHub (npx builds it for you):
claude mcp add roadmapsh -- npx -y github:aissablk1/mcp-roadmapsh
```

### Any MCP client (JSON config)

```json
{
  "mcpServers": {
    "roadmapsh": { "command": "npx", "args": ["-y", "mcp-roadmapsh"] }
  }
}
```

Replace `mcp-roadmapsh` with `github:aissablk1/mcp-roadmapsh` to run the latest
GitHub version before the npm release.

### From source (contributors)

```bash
git clone https://github.com/aissablk1/mcp-roadmapsh.git
cd mcp-roadmapsh
npm install        # `prepare` builds dist/ automatically
npm test           # end-to-end test against real data
node dist/index.js # stdio MCP server
npm run inspect    # open the MCP Inspector
```

## Tools

| Tool | Purpose |
|------|---------|
| `roadmap_diagnose` | Connectivity + cache/state status |
| `roadmap_list` | List all roadmap slugs |
| `roadmap_get` | Roadmap graph by slug (`outline` or `raw`) |
| `roadmap_topic` | Topic markdown + links (by `nodeId` or `query`) |
| `roadmap_export` | Export a whole roadmap as markdown/text |
| `roadmap_search` | Search slugs by keyword within a scope |
| `best_practices_list` / `best_practices_get` | Best-practice guides |
| `questions_list` / `questions_get` | Interview question groups |
| `projects_list` / `project_get` | Practice project ideas |
| `videos_list` | Video resources |
| `progress_mark` | Mark a topic learning / done / skip (local) |
| `progress_status` | Completion percent for a roadmap |
| `progress_next` | Recommend the next topic to learn |

## Configuration (env)

| Variable | Default | Purpose |
|----------|---------|---------|
| `ROADMAPSH_CACHE_DIR` | `~/.cache/mcp-roadmapsh` | HTTP cache directory |
| `ROADMAPSH_CACHE_TTL_MS` | `86400000` (24 h) | Cache TTL |
| `ROADMAPSH_STATE_DIR` | `~/.local/state/mcp-roadmapsh` | Progress state |
| `ROADMAPSH_TIMEOUT_MS` | `20000` | HTTP timeout |
| `ROADMAPSH_OWNER` | `nilbuild` | GitHub owner of the developer-roadmap repo |
| `ROADMAPSH_BRANCH` | `master` | developer-roadmap branch |
| `GITHUB_TOKEN` | — | Optional, raises GitHub API rate limit |

## Publishing (maintainers)

```bash
npm publish                       # to npmjs.com (npm login required first)
npx -y @modelcontextprotocol/publisher publish   # to the official MCP registry (server.json)
```

The package ships `mcpName` and a `server.json` so it can be listed in the
official Model Context Protocol registry.

## License

MIT — Aïssa BELKOUSSA

TDQS

A3.9/5.0

Scored across 16 tools

Disambiguation5/5

Each tool targets a distinct resource type or action: list tools are clearly separated by resource (projects, roadmaps, best-practices, questions, videos), and roadmap_get, roadmap_topic, roadmap_export, and roadmap_search each serve unique purposes. Even the progress tools are distinct (mark, status, next).

Naming Consistency4/5

Most tools follow a noun_verb pattern (e.g., projects_list, roadmap_get, best_practices_get). However, a few deviate: roadmap_topic uses a noun, progress_status and progress_next are noun_noun/noun_adjective. Overall, the pattern is mostly consistent with minor exceptions.

Tool Count4/5

With 16 tools, the count slightly exceeds the typical 15-tool high-water mark, but the server covers multiple content domains (roadmaps, best practices, questions, projects, videos) plus progress tracking, so each tool earns its place. The scope justifies the number.

Completeness4/5

The surface provides list and get operations for all resource types, plus roadmap-specific features (topic retrieval, export, search) and progress tracking. Minor gaps exist: no per-topic content tool for best practices, and search is limited to slugs rather than full content, but these are workable.

Maintenance

ActivityInactive
ResponsivenessNo issues