{"card_version":"0.1","spec":"https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2127","serverInfo":{"name":"nerdlevel-learn","version":"0.1.0","description":"NerdLevelTech's MCP server — search and read the bilingual (EN/AR) open-learning catalog. Citation-rigorous tech content on AI/ML, cloud, DevOps, programming."},"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.","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 (up to 2000 chars). 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_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":[]}}],"documentation":"https://nerdleveltech.com/for-agents","agent_card":"https://nerdleveltech.com/.well-known/agent.json","attribution_required":"Source: NerdLevelTech — {url}"}