mcp
Personalised developer security learning pathways from SecDim's challenges and courses.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"mcp": {
"url": "https://mcp.secdim.com/mcp"
}
}
}リモートエンドポイント
https://mcp.secdim.com/mcpstreamable-httpできること
ツール一覧
ツール(7)
🟢get_secdim_profile(secdim_username)
Fetch a SecDim player's profile: scores, completed challenges, skills, security interests and an experience estimate. Use this tool to understand a player's demonstrated secure coding ability before building a learning pathway. The profile includes actual challenge completion data (by difficulty level) and security topics the player has practised — weight this demonstrated performance over a user's self-reported level when deciding what difficulty and topics to recommend. The 'guidance' field provides a ready-to-use summary of what difficulty and topics to target next, and whether the player is new, intermediate or experienced. Args: secdim_username: The player's SecDim username (e.g. "alice") Returns: Dictionary with scores, challenges_solved breakdown, skills (languages and technologies), completed_challenges list, security_interests, experience_estimate and guidance. If the user doesn't exist or an error occurs, returns an error dict.
入力スキーマ
{
"type": "object",
"properties": {
"secdim_username": {
"title": "Secdim Username",
"type": "string"
}
},
"required": [
"secdim_username"
],
"title": "get_secdim_profileArguments"
}🟡search_play_challenges(search, cwe, owasp, technology, language, ...)
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)
入力スキーマ
{
"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"
}🟢search(query)
Search for SecDim Play secure coding labs (hands-on, scored challenges). This tool searches across SecDim Play's hands-on secure coding labs based on the search query. The backend API handles parsing of vulnerability names, CWE IDs, and OWASP IDs. Language can be specified using the format "lang:javascript". Args: query: Search query that may include: - Vulnerability names (e.g., "XSS", "SQL injection") - CWE IDs (e.g., "79") - OWASP IDs (e.g., "A03:2021") Examples: - "XSS lang:javascript" - searches for XSS labs in JavaScript - "SQL injection lang:Python" - searches for SQL injection labs in Python - "79" - searches for labs related to CWE-79 Returns: Dictionary with search results containing: - results: List of matching SecDim Play labs with id, title, snippet, and metadata
入力スキーマ
{
"type": "object",
"properties": {
"query": {
"title": "Query",
"type": "string"
}
},
"required": [
"query"
],
"title": "searchArguments"
}🟢fetch(id)
Fetch detailed content for a specific SecDim Play lab (hands-on, scored challenge). Args: id: Lab ID in format "lab:slug" (e.g., "lab:xss-dom") Returns: Dictionary containing: - id: The lab ID - title: Lab title - content: Detailed content in markdown format - metadata: Additional lab information
入力スキーマ
{
"type": "object",
"properties": {
"id": {
"title": "Id",
"type": "string"
}
},
"required": [
"id"
],
"title": "fetchArguments"
}🟢search_learn_courses(search)
Search SecDim Learn courses. SecDim Learn provides tutorial-based courses (mixing video, text and hands-on lab topics) covering secure coding, secure design, vibe coding security, devsecops, and cloud security. Many courses are complementary or prerequisite to hands-on, scored SecDim Play challenges/labs. Use this tool to: - Browse the SecDim Learn course catalogue - Find courses related to a topic, language, or technology (e.g. "OWASP Top 10", "fuzzing", "Python") Args: search: Optional search term to filter courses by title, description, or tags. If omitted, returns the full course catalogue. Returns: Dictionary with a "courses" list. Each course includes its title, description, image, slug, tags, numeric "level" (1=beginner, 2=intermediate, 3=advanced) and a "difficulty" label. Use get_learn_course with a course's slug to view its syllabus of topics.
入力スキーマ
{
"type": "object",
"properties": {
"search": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Search"
}
},
"title": "search_learn_coursesArguments"
}🟢get_learn_course(course_slug)
Get a SecDim Learn course's details, including its syllabus of topics. Args: course_slug: The course's slug, as returned by search_learn_courses (e.g. "owasp-top-10") Returns: Dictionary with the course's title, description, image, slug, "difficulty" label and a "topics" list. Each topic includes its title, description, category, slug, kind (e.g. text/video/lab), level, subscription tier, duration and completion status. Use get_learn_topic with the course slug and a topic's slug to view its content.
入力スキーマ
{
"type": "object",
"properties": {
"course_slug": {
"title": "Course Slug",
"type": "string"
}
},
"required": [
"course_slug"
],
"title": "get_learn_courseArguments"
}🟢get_learn_topic(course_slug, topic_slug)
Get a SecDim Learn topic's content. Args: course_slug: The course's slug, as returned by search_learn_courses (e.g. "owasp-top-10") topic_slug: The topic's slug, as returned by get_learn_course (e.g. "introduction-secure-coding") Returns: Dictionary with the topic's title, description, category, kind, level, subscription tier, duration, completion status and "file_content" (the topic's content in AsciiDoc format). If the topic requires a SecDim Learn subscription that the current account does not have, an "error" explaining this is returned instead.
入力スキーマ
{
"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"
}コミュニティ
エビデンス