{"card_version":"0.1","spec":"https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2127","serverInfo":{"name":"nerdlevel-learn","version":"0.2.0","description":"NerdLevelTech's MCP server — search and read the bilingual (EN/AR) open-learning catalog and the AI model index. Citation-rigorous tech content on AI/ML, cloud, DevOps, programming, plus vendor-sourced model prices, context windows and licences."},"protocolVersion":"2024-11-05","transport":{"type":"http","jsonrpc":"2.0","endpoint":"https://nerdleveltech.com/api/mcp","vanity_endpoint":"https://mcp.nerdleveltech.com/api/mcp","stdio_wrapper":"npx -y mcp-remote https://nerdleveltech.com/api/mcp"},"auth":{"type":"none","note":"Open on the Free tier — no API key required. Rate-limited to 10 requests/minute per IP."},"capabilities":{"tools":{"listChanged":false}},"tools":[{"name":"search_posts","description":"Full-text search across NerdLevelTech blog posts. Matches title, description, tags, keywords, and category. Returns results sorted by relevance with URL-resolvable citations. Titles/descriptions are the stored English source; lang localizes the URLs (Arabic titles live on the /ar pages). For fully bilingual results, use search_guides.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search terms (space-separated)."},"lang":{"type":"string","enum":["en","ar"],"description":"Language for returned URLs. Default: en."},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Max results to return. Default: 10."},"category":{"type":"string","description":"Filter by category (e.g. \"ai-ml\", \"cloud-devops\")."},"tag":{"type":"string","description":"Filter by tag (exact match)."}},"required":[]}},{"name":"get_post","description":"Fetch a single post by slug. Returns metadata + canonical URL + optional body excerpt (at most 2000 chars including the continue-reading link). Full content is served at the URL with attribution requirements per /llms.txt. An unknown slug returns isError.","inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"Post slug (the URL-friendly identifier)."},"lang":{"type":"string","enum":["en","ar"],"description":"Language for returned URL. Default: en."},"include_excerpt":{"type":"boolean","description":"Include body excerpt if available. Default: true."}},"required":["slug"]}},{"name":"search_guides","description":"Full-text search across NerdLevelTech guides (long-form step-by-step tutorials, Layer 1). Bilingual: lang localizes the returned title, description and URLs. Filter by query and category. Returns results sorted by relevance with URL-resolvable citations and the Markdown twin URL.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search terms (space-separated)."},"lang":{"type":"string","enum":["en","ar"],"description":"Language for titles, descriptions and URLs. Default: en."},"category":{"type":"string","description":"Filter by category (e.g. \"ai-ml\", \"cloud-devops\")."},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Max results to return. Default: 10."}},"required":[]}},{"name":"get_guide","description":"Fetch a single guide by slug. Returns bilingual metadata (title and description in the requested language), canonical URL, Markdown twin URL and an optional body excerpt (at most 2000 chars including the continue-reading link). Full content is served at the URL with attribution per /llms.txt. An unknown slug returns isError.","inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"Guide slug (the URL-friendly identifier)."},"lang":{"type":"string","enum":["en","ar"],"description":"Language for title, description, excerpt and URLs. Default: en."},"include_excerpt":{"type":"boolean","description":"Include body excerpt if available. Default: true."}},"required":["slug"]}},{"name":"search_courses","description":"Search the course catalog. Filter by query, category, and difficulty. Returns courses with module/lesson counts, the enrollment price in credits (credits_required: 0 = free, null when unknown) and canonical URLs.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search terms."},"lang":{"type":"string","enum":["en","ar"],"description":"Language. Default: en."},"category":{"type":"string","description":"Category filter (e.g. \"ai\", \"cloud-devops\")."},"difficulty":{"type":"string","description":"Difficulty filter (\"beginner\" | \"intermediate\" | \"advanced\")."},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Max results. Default: 10."}},"required":[]}},{"name":"get_course","description":"Fetch a single course by slug, including its module list, lesson counts, learning outcomes and the enrollment price in credits (credits_required: 0 = free, null when unknown). An unknown slug returns isError.","inputSchema":{"type":"object","properties":{"slug":{"type":"string"},"lang":{"type":"string","enum":["en","ar"]}},"required":["slug"]}},{"name":"get_lesson","description":"Fetch metadata about a course module and, with lesson_slug, a link to that lesson page: titles, lesson counts, links (lesson_url, course_url, continue_url) and the access rules with the enrollment price in credits (credits_required, 0 = free). Never the lesson text, which is served at the URL (Layer 2). An unknown course, module or lesson slug returns isError naming the missing part, with the valid module or lesson slugs.","inputSchema":{"type":"object","properties":{"course_slug":{"type":"string"},"module_slug":{"type":"string","description":"Either the module slug or its directory name (e.g. \"01-what-are-ai-agents\")."},"lesson_slug":{"type":"string","description":"Optional: the lesson slug from its URL or the lesson file name (e.g. \"01-from-chatbots-to-agents\")."},"lang":{"type":"string","enum":["en","ar"]}},"required":["course_slug","module_slug"]}},{"name":"list_topics","description":"Return the topic taxonomy derived from post tags + course tags/categories. Useful for agents that need to discover available content areas.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200,"description":"Max topics to return. Default: 50."}},"required":[]}},{"name":"get_credential_info","description":"Return how a learner earns a NerdLevelTech course certificate (live): the requirements (sign in, complete every lesson, pass every module quiz at its passing score, and pass every lab in courses that require labs), pricing (no certificate fee; some courses cost credits to enroll), the certificate number format, the claim page and the public verification URL pattern. Pass course_slug to also get that course title and its claim URL, in the language set by lang.","inputSchema":{"type":"object","properties":{"course_slug":{"type":"string","description":"Optional: course slug; adds the course title and its certificate claim URL."},"lang":{"type":"string","enum":["en","ar"],"description":"Optional: language for course_title and claim_url. Default: en. A course served in one language only always gets that language."}},"required":[]}},{"name":"search_models","description":"Search the AI model index: published API prices in USD per 1M tokens, context windows, licences (including whether open weights are downloadable now or only announced), capabilities and editorial picks. Prices are vendor facts, picks are labelled editorial, and no benchmark score is published. lang localizes the tagline and the returned URL; limit caps results (default 10). Every fact carries a verified date; check it before quoting.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search terms (space-separated): model name, alias, capability or maker."},"maker":{"type":"string","description":"Filter by maker id or name, e.g. \"anthropic\" or \"Google DeepMind\"."},"licence":{"type":"string","enum":["open-weights","proprietary"],"description":"Filter by licence."},"capability":{"type":"string","description":"Filter by capability or best-for id, e.g. \"coding\", \"agentic\", \"local\"."},"lang":{"type":"string","enum":["en","ar"],"description":"Language for tagline and URLs. Default: en."},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Max results to return. Default: 10."}},"required":[]}},{"name":"get_model","description":"Fetch one model by slug or alias: vendor-sourced pricing, context and output limits, licence and open-weight status, modalities, parameters, memory, knowledge cutoff, provenance links (maker, pricing, docs, Hugging Face, Ollama) with what each link substantiates, plus videos, related posts and any editorial pick. lang selects the returned URL; tagline and summary keep both languages. An unknown slug returns isError.","inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"Model slug or alias, e.g. \"claude-opus-5-5\"."},"lang":{"type":"string","enum":["en","ar"],"description":"Language for the returned URL. The entry keeps both languages. Default: en."}},"required":["slug"]}}],"documentation":"https://nerdleveltech.com/for-agents","agent_card":"https://nerdleveltech.com/.well-known/agent.json","attribution_required":"Source: NerdLevelTech — {url}"}