{"name":"com.secdim/mcp","slug":"secdim-mcp","title":null,"description":"Personalised developer security learning pathways from SecDim's challenges and courses.","url":"https://mcp.market/server/secdim-mcp","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"security","tags":["security"],"presence":{"score":15,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-07-20T06:14:26.000Z","license":"NOASSERTION"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T13:20:50.284Z","last_ok_at":"2026-11-04T13:20:50.284Z","latency_ms":302},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/secdim/mcp","website":null,"version":"1.0.1","remotes":[{"type":"streamable-http","url":"https://mcp.secdim.com/mcp"}],"packages":[],"tools":[{"name":"fetch","description":"\n    Fetch detailed content for a specific SecDim Play lab (hands-on, scored challenge).\n\n    Args:\n        id: Lab ID in format \"lab:slug\" (e.g., \"lab:xss-dom\")\n\n    Returns:\n        Dictionary containing:\n        - id: The lab ID\n        - title: Lab title\n        - content: Detailed content in markdown format\n        - metadata: Additional lab information\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"title":"Id","type":"string"}},"required":["id"],"title":"fetchArguments"}},{"name":"get_learn_course","description":"\n    Get a SecDim Learn course's details, including its syllabus of topics.\n\n    Args:\n        course_slug: The course's slug, as returned by search_learn_courses\n            (e.g. \"owasp-top-10\")\n\n    Returns:\n        Dictionary with the course's title, description, image, slug, \"difficulty\"\n        label and a \"topics\" list. Each topic includes its title, description,\n        category, slug, kind (e.g. text/video/lab), level, subscription tier,\n        duration and completion status.\n        Use get_learn_topic with the course slug and a topic's slug to view its content.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"course_slug":{"title":"Course Slug","type":"string"}},"required":["course_slug"],"title":"get_learn_courseArguments"}},{"name":"get_learn_topic","description":"\n    Get a SecDim Learn topic's content.\n\n    Args:\n        course_slug: The course's slug, as returned by search_learn_courses\n            (e.g. \"owasp-top-10\")\n        topic_slug: The topic's slug, as returned by get_learn_course\n            (e.g. \"introduction-secure-coding\")\n\n    Returns:\n        Dictionary with the topic's title, description, category, kind, level,\n        subscription tier, duration, completion status and \"file_content\" (the\n        topic's content in AsciiDoc format).\n        If the topic requires a SecDim Learn subscription that the current account\n        does not have, an \"error\" explaining this is returned instead.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"course_slug":{"title":"Course Slug","type":"string"},"topic_slug":{"title":"Topic Slug","type":"string"}},"required":["course_slug","topic_slug"],"title":"get_learn_topicArguments"}},{"name":"get_secdim_profile","description":"\n    Fetch a SecDim player's profile: scores, completed challenges, skills,\n    security interests and an experience estimate.\n\n    Use this tool to understand a player's demonstrated secure coding ability\n    before building a learning pathway. The profile includes actual challenge\n    completion data (by difficulty level) and security topics the player has\n    practised — weight this demonstrated performance over a user's self-reported\n    level when deciding what difficulty and topics to recommend.\n\n    The 'guidance' field provides a ready-to-use summary of what difficulty and\n    topics to target next, and whether the player is new, intermediate or\n    experienced.\n\n    Args:\n        secdim_username: The player's SecDim username (e.g. \"alice\")\n\n    Returns:\n        Dictionary with scores, challenges_solved breakdown, skills (languages\n        and technologies), completed_challenges list, security_interests,\n        experience_estimate and guidance. If the user doesn't exist or an error\n        occurs, returns an error dict.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"secdim_username":{"title":"Secdim Username","type":"string"}},"required":["secdim_username"],"title":"get_secdim_profileArguments"}},{"name":"search","description":"\n    Search for SecDim Play secure coding labs (hands-on, scored challenges).\n\n    This tool searches across SecDim Play's hands-on secure coding labs based on the\n    search query. The backend API handles parsing of vulnerability names, CWE IDs, and OWASP IDs.\n\n    Language can be specified using the format \"lang:javascript\".\n\n    Args:\n        query: Search query that may include:\n               - Vulnerability names (e.g., \"XSS\", \"SQL injection\")\n               - CWE IDs (e.g., \"79\")\n               - OWASP IDs (e.g., \"A03:2021\")\n\n               Examples:\n               - \"XSS lang:javascript\" - searches for XSS labs in JavaScript\n               - \"SQL injection lang:Python\" - searches for SQL injection labs in Python\n               - \"79\" - searches for labs related to CWE-79\n\n    Returns:\n        Dictionary with search results containing:\n        - results: List of matching SecDim Play labs with id, title, snippet, and metadata\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"title":"Query","type":"string"}},"required":["query"],"title":"searchArguments"}},{"name":"search_learn_courses","description":"\n    Search SecDim Learn courses.\n\n    SecDim Learn provides tutorial-based courses (mixing video, text and hands-on\n    lab topics) covering secure coding, secure design, vibe coding security, devsecops,\n    and cloud security. Many courses are complementary or prerequisite to hands-on,\n    scored SecDim Play challenges/labs.\n\n    Use this tool to:\n    - Browse the SecDim Learn course catalogue\n    - Find courses related to a topic, language, or technology (e.g. \"OWASP Top 10\",\n      \"fuzzing\", \"Python\")\n\n    Args:\n        search: Optional search term to filter courses by title, description, or tags.\n            If omitted, returns the full course catalogue.\n\n    Returns:\n        Dictionary with a \"courses\" list. Each course includes its title, description,\n        image, slug, tags, numeric \"level\" (1=beginner, 2=intermediate, 3=advanced) and\n        a \"difficulty\" label.\n        Use get_learn_course with a course's slug to view its syllabus of topics.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"search":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Search"}},"title":"search_learn_coursesArguments"}},{"name":"search_play_challenges","description":"\n    Return a list of hands-on SecDim Play secure coding challenges (labs) related to a detected or suspected vulnerability.\n\n    SecDim Play challenges are scored, hands-on labs: find and fix a real vulnerability\n    in running code to earn points and badges.\n\n    Use this tool to:\n    - Find hands-on SecDim Play labs for specific vulnerabilities like XSS, SQL Injection, etc.\n    - Explore OWASP Top 10 vulnerabilities and related labs\n    - Provide additional resources and guides to help developers improve their secure coding skills\n\n    For structured tutorial content (text, video, and lab-based courses) on the same\n    vulnerability, use search_learn_courses (SecDim Learn) instead or in addition.\n\n    Args:\n        search: Search term for the vulnerability (e.g., 'xss', 'sql-injection', 'injection')\n        cwe: Common Weakness Enumeration (CWE) ID to filter by\n        owasp: OWASP category to filter by (e.g., 'a03:2021')\n        technology: Technology or framework to filter by (e.g., 'react', 'django')\n        language: Programming language to filter by (e.g., 'javascript', 'python')\n        difficulty: Difficulty level to filter by (e.g., 'trivial', 'easy', 'medium', 'hard')\n        type: Challenge format to filter by (e.g., 'battle', 'exploitation', 'incident-response')\n        mitre: MITRE ATT&CK ID to filter by (e.g., 'T1102.003')\n\n    SecDim Play challenges (labs) each simulate a real vulnerability. They are scored according to\n    the following difficulty levels:\n        - Trivial: Easy to find and path vulnerabilities. It can be completed in 5-10 minutes. 1-15 points.\n        - Easy: Known vulnerabilities. It can be completed in 10-30 minutes. 16-35 points.\n        - Medium: Known vulnerabilities but require defence-in-depth patch. It can be completed in 20-30 minutes. 36-70 points.\n        - Hard: Hard to find or patch vulnerabilities. It can be completed in 30-60 minutes. 71-100 points.\n        - Battle: SecDim Flagship attack and defence challenge that require both vulnerability exploitation and mitigation skills. Points are accumulated.\n\n    Returns:\n        Dictionary containing SecDim Play labs results or error\n        If there are no results, user can perform a manual search on the SecDim Play frontend (SECDIM_PLAY_FRONTEND_BASE_URL)\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"search":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"},"cwe":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Cwe"},"owasp":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Owasp"},"technology":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Technology"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Language"},"difficulty":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Difficulty"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Type"},"mitre":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mitre"}},"required":["search"],"title":"search_play_challengesArguments"}}],"scan":{"score":85,"grade":"A","scanned_at":"2026-09-25T17:24:13.537Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-25T17:24:13.466Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1608ms"]},"poisoning":{"score":13,"max":15,"notes":["7 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":12,"max":15,"notes":["last push 67 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"poison.long-description","severity":"low","component":"poisoning","title":"Unusually long tool description (over 2,000 characters)","evidence":"tool search_play_challenges: … Return a list of hands-on SecDim Play secure coding challenges (labs) related to a detected or suspected vulnerability. SecDim Play challenges are scored, hands-on labs: find and fix a real vulnerability in running code to earn points and badges. Use this tool to: - Find hands-on SecDim Play labs for specific vulnerabilities like XSS, SQL Injection, etc. - Explore OWASP Top 10 vulnerabilities and related labs - Provide additional resources and guides to help developers improve their secure coding skills For structured tutorial content (text, video, and lab-based courses) on the same vulnerability, use search_learn_courses (SecDim Learn) instead or in addition. Args: search: Search term for the vulnerability (e.g., 'xss', 'sql-injection', 'injection') cwe: Common Weakness Enumeration (CWE) ID to filter by owasp: OWASP category to filter by (e.g., 'a03:2021') technology: Technology or framework to filter by (e.g., 'react', 'django') language: Programming language to filter by (e.g., 'javascript', 'python') difficulty: Difficulty level to filter by (e.g., 'trivial', 'easy', 'medium', 'hard') type: Challenge format to filter by (e.g., 'battle', 'exploitation', 'incident-response') mitre: MITRE ATT&CK ID to filter by (e.g., 'T1102.003') SecDim Play challenges (labs) each simulate a real vulnerability. They are scored according to the following difficulty levels: - Trivial: Easy to find and path vulnerabilities. It can be completed in 5-10 minutes. 1-15 points. - Easy: Known vulnerabilities. It can be completed in 10-30 minutes. 16-35 points. - Medium: Known vulnerabilities but require defence-in-depth patch. It can be completed in 20-30 minutes. 36-70 points. - Hard: Hard to find or patch vulnerabilities. It can be completed in 30-60 minutes. 71-100 points. - Battle: SecDim Flagship attack and defence challenge that require both vulnerability exploitation and mitigation skills. Points are accumulated. Returns: Dictionary containing SecDim Play labs results or error If there are no results, user can perform a manual search on the SecDim Play frontend (SECDIM_PLAY_FRONTEND_BASE_URL) …"}],"inputs":{"probes":[{"url":"https://mcp.secdim.com/mcp","reachable":true,"authRequired":false,"latencyMs":1608,"serverInfo":{"name":"SecDim MCP","version":"1.27.2"}}],"packages":[],"repo":{"found":true,"owner":"secdim","repo":"mcp","archived":false,"pushedAt":"2026-07-20T06:14:26Z","stars":0,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/45353993?v=4","ownerCreatedAt":"2018-11-26T09:27:11Z","license":"NOASSERTION"},"icon":{"url":"https://secdim.com/assets/images/logo-square.svg","source":"registry"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"NOASSERTION","lastPushAt":"2026-07-20T06:14:26.000Z","score":15}}}},"grade_history":[],"reviews":[]}