SkyDeckAI 코드
AI 기반 개발 워크플로를 위한 포괄적인 도구 세트를 제공하는 MCP 서버입니다. 파일 시스템 작업, 여러 프로그래밍 언어에 대한 트리시터를 활용한 코드 분석, Git 작업, 코드 실행, HTML-마크다운 변환을 통한 웹 콘텐츠 가져오기, 다중 엔진 웹 검색, 코드 콘텐츠 검색, 린팅 감지, 시스템 정보 검색 등의 기능을 제공합니다. 로컬 및 원격 리소스에 대한 직접 액세스를 제공하여 소프트웨어 개발 작업을 지원하는 AI의 역량을 강화하도록 설계되었습니다.
이전에는 MCP-Server-AIDD로 알려짐
이 MCP 서버는 이전에 mcp-server-aidd
로 알려져 있었습니다. SkyDeck.ai 팀과 East Agile 팀이 이 애플리케이션을 개발한 공로를 인정하기 위해 skydeckai-code
로 이름을 변경했습니다. 하지만 더 중요한 것은 AI 기반 개발(AIDD)이라는 용어가 아직 널리 알려지지 않았다는 점입니다. 사람들은 AIDD가 무엇인지 한눈에 이해하지 못했고, LLM(로스쿨 석사)도 마찬가지였습니다. "코드"는 훨씬 더 직관적이었습니다. 그리고 에이전트 AI 세계에서는 언어적으로 직관적인 것이 중요합니다.
설치
지엑스피1
클로드 데스크탑 설정
claude_desktop_config.json
에 다음을 추가하세요:
{
"mcpServers": {
"skydeckai-code": {
"command": "uvx",
"args": ["skydeckai-code"]
}
}
}
SkyDeck AI 도우미 앱
SkyDeck AI Helper 앱을 사용하고 있다면 "SkyDeckAI 코드"를 검색하여 설치할 수 있습니다.
주요 특징
- 파일 시스템 작업(읽기, 쓰기, 편집, 이동, 복사, 삭제)
- 디렉토리 관리 및 트래버설
- 트리시터를 이용한 다국어 코드 분석
- Python 및 JavaScript/TypeScript에 대한 코드 린팅 및 문제 감지
- 정규식 패턴 매칭을 통한 코드 내용 검색
- 안전 조치를 통한 다국어 코드 실행
- Git 작업(상태, diff, 커밋, 브랜치 관리, 복제)
- HTML-마크다운 변환을 통해 API 및 웹사이트에서 웹 콘텐츠 가져오기
- 안정적인 대체 메커니즘을 갖춘 다중 엔진 웹 검색
- 병렬 및 직렬 도구 실행을 위한 일괄 작업
- 구성 가능한 작업 공간 경계를 통한 보안 제어
- 스크린샷 및 화면 컨텍스트 도구
- 이미지 처리 도구
사용 가능한 도구
기본 파일 작업
도구 | 매개변수 | 보고 |
---|
읽기_파일 | 경로: 문자열, 오프셋?: 정수, 제한?: 정수 | 파일 내용(전체 또는 일부) |
여러 파일 읽기 | 경로: 문자열[] | 헤더가 있는 여러 파일 내용 |
쓰기_파일 | 경로: 문자열, 내용: 문자열 | 성공 확인 |
이동_파일 | 소스: 문자열, 대상: 문자열 | 성공 확인 |
복사_파일 | 출처: 문자열, 대상: 문자열, 재귀적 여부: 부울 | 성공 확인 |
파일 삭제 | 경로: 문자열 | 성공 확인 |
파일_정보_받기 | 경로: 문자열 | 파일 메타데이터(크기, 타임스탬프, 권한) |
일반적인 사용법:
# Read entire file
skydeckai-code-cli --tool read_file --args '{"path": "src/main.py"}'
# Read 10 lines starting from line 20
skydeckai-code-cli --tool read_file --args '{"path": "src/main.py", "offset": 20, "limit": 10}'
# Read from line 50 to the end of the file
skydeckai-code-cli --tool read_file --args '{"path": "src/main.py", "offset": 50}'
# Write file
skydeckai-code-cli --tool write_file --args '{"path": "output.txt", "content": "Hello World"}'
# Copy file or directory
skydeckai-code-cli --tool copy_file --args '{"source": "config.json", "destination": "config.backup.json"}'
# Get file info
skydeckai-code-cli --tool get_file_info --args '{"path": "src/main.py"}'
복잡한 파일 작업
편집_파일
미리 보기 지원을 통한 패턴 기반 파일 편집:
{
"path": "src/main.py",
"edits": [
{
"oldText": "def old_function():",
"newText": "def new_function():"
}
],
"dryRun": false,
"options": {
"partialMatch": true
}
}
반환: 변경 사항의 차이점 또는 드라이런 모드에서의 미리보기.
디렉토리 작업
도구 | 매개변수 | 보고 |
---|
get_allowed_directory | 없음 | 현재 허용된 디렉토리 경로 |
업데이트 허용 디렉토리 | 디렉토리: 문자열(절대 경로) | 성공 확인 |
목록_디렉토리 | 경로: 문자열 | 디렉토리 콘텐츠 목록 |
디렉토리 생성 | 경로: 문자열 | 성공 확인 |
검색_파일 | 패턴: 문자열, 경로?: 문자열, include_hidden?: 부울 | 일치하는 파일 목록 |
search_files
도구는 이름 패턴으로 파일을 검색하는 반면, search_code
도구는 정규식을 사용하여 파일 내용 내에서 검색합니다. 특정 이름이나 확장자를 가진 파일을 찾으려면 search_files
사용하고, 파일 내에서 특정 텍스트 패턴을 찾으려면 search_code
사용하세요.
디렉토리 트리
완전한 디렉토리 구조를 생성합니다:
{
"path": "src",
"include_hidden": false
}
반환: 디렉토리 내용의 JSON 트리 구조.
일반적인 사용법:
# List directory
skydeckai-code-cli --tool list_directory --args '{"path": "."}'
# Search for Python files
skydeckai-code-cli --tool search_files --args '{"pattern": ".py", "path": "src"}'
Git 작업
도구 | 매개변수 | 보고 |
---|
git_init | 경로: 문자열, 초기_브랜치?: 문자열 | 저장소 초기화 상태 |
git_status | repo_path: 문자열 | 작업 디렉토리 상태 |
git_add | repo_path: 문자열, 파일: 문자열[] | 스테이징 확인 |
git_reset | repo_path: 문자열 | 스테이징 해제 확인 |
git_checkout | repo_path: 문자열, branch_name: 문자열 | 지점 전환 확인 |
git_create_branch | repo_path: 문자열, branch_name: 문자열 | 지점 생성 확인 |
git_clone | url: 문자열, target_path: 문자열, branch?: 문자열 | 복제 확인 |
git_diff_unstaged | repo_path: 문자열 | 단계적이지 않은 변경 사항 diff |
git_diff_staged | repo_path: 문자열 | 단계적 변경 사항 diff |
git_show | repo_path: 문자열, commit_hash: 문자열 | 특정 커밋의 세부 정보 |
복잡한 Git 작업
git_commit
{
"repo_path": ".",
"message": "feat: add new feature"
}
반환: 커밋 해시와 확인.
git_diff
{
"repo_path": ".",
"target": "main"
}
반환: 현재 브랜치와 지정된 대상 브랜치 또는 커밋 사이의 모든 변경 사항을 보여주는 자세한 diff 출력입니다.
git_log
{
"repo_path": ".",
"max_count": 10
}
반환: 해시, 작성자, 날짜, 메시지가 포함된 커밋 항목의 배열입니다.
일반적인 사용법:
# Check status
skydeckai-code-cli --tool git_status --args '{"repo_path": "."}'
# Clone a repository
skydeckai-code-cli --tool git_clone --args '{"url": "https://github.com/username/repo.git", "target_path": "repo"}'
# Create and switch to new branch
skydeckai-code-cli --tool git_create_branch --args '{"repo_path": ".", "branch_name": "feature/new-branch"}'
코드 분석
코드베이스_매퍼
소스 코드 구조를 분석합니다.
보고:
- 클래스와 그 메서드
- 함수 및 매개변수
- 모듈 구조
- 코드 구성 통계
- 상속 관계
지원 언어:
- 파이썬(.py)
- 자바스크립트(.js, .jsx, .mjs, .cjs)
- 타입스크립트(.ts, .tsx)
- 자바(.java)
- C++(.cpp, .hpp, .cc)
- 루비(.rb, .rake)
- 고(.go)
- 녹(.rs)
- PHP(.php)
- C#(.cs)
- 코틀린(.kt, .kts)
체크_린트
기본 린팅 도구를 사용하여 코드베이스에서 린팅 문제를 확인하세요.
{
"path": "src",
"languages": ["python", "javascript"],
"linters": {
"pylint": "--disable=C0111",
"flake8": true,
"eslint": "--fix"
},
"max_issues": 100
}
매개변수:
매개변수 | 유형 | 필수의 | 설명 |
---|
길 | 끈 | 아니요 | 린트할 디렉토리 또는 파일(기본값: ".") |
언어들 | 정렬 | 아니요 | 린트할 언어 목록(비어 있으면 자동 감지) |
린터 | 물체 | 아니요 | 특정 린터에 대한 구성 - 부울 또는 CLI 인수를 사용할 수 있습니다. |
최대_문제 | 정수 | 아니요 | 반환할 문제의 최대 개수(기본값: 100, 무제한의 경우 0) |
반환: 코드베이스에서 발견된 린팅 문제에 대한 상세 보고서(파일 경로, 줄 번호, 문제 설명 및 심각도 포함)입니다. 문제는 파일별로 그룹화되고 심각도별로 정렬됩니다.
지원되는 언어 및 린터:
- Python: pylint, flake8(사용 가능한 것을 자동으로 사용)
- JavaScript/TypeScript: ESLint
- Dart/Flutter: dart_analyze(컴파일 오류도 보고함)
사용 예:
# Check entire codebase with default settings
skydeckai-code-cli --tool check_lint
# Check specific directory with custom pylint flags
skydeckai-code-cli --tool check_lint --args '{
"path": "src",
"linters": {
"pylint": "--disable=missing-docstring,invalid-name"
}
}'
# Check only Python files and disable flake8
skydeckai-code-cli --tool check_lint --args '{
"path": "src",
"languages": ["python"],
"linters": {
"flake8": false
}
}'
# Check Dart/Flutter files for linting and compilation errors
skydeckai-code-cli --tool check_lint --args '{
"path": "lib",
"languages": ["dart"],
"linters": {
"dart_analyze": "--fatal-infos"
}
}'
검색_코드
정규 표현식을 사용한 빠른 콘텐츠 검색 도구:
{
"pattern": "function\\s+\\w+",
"include": "*.js",
"exclude": "node_modules/**",
"max_results": 50,
"case_sensitive": false,
"path": "src"
}
매개변수:
매개변수 | 유형 | 필수의 | 설명 |
---|
무늬 | 끈 | 예 | 파일 내용을 검색하기 위한 정규 표현식 패턴 |
포함하다 | 끈 | 아니요 | 포함할 파일 패턴(glob 구문, 기본값: "*") |
들어오지 못하게 하다 | 끈 | 아니요 | 제외할 파일 패턴(glob 구문, 기본값: "") |
최대 결과 | 정수 | 아니요 | 반환할 최대 결과 수(기본값: 100) |
대소문자 구분 | 부울 | 아니요 | 검색 시 대소문자를 구분하는지 여부(기본값: false) |
길 | 끈 | 아니요 | 검색할 기본 디렉토리(기본값: ".") |
반환: 줄 번호가 있는 파일로 그룹화된 일치하는 줄을 파일 수정 시간순으로 정렬하여 최신 파일이 먼저 나오도록 합니다.
이 도구는 최적의 성능을 위해 Python 대체 구현과 함께 ripgrep을 사용하며, 함수 선언, import, 변수 사용 또는 오류 처리와 같은 특정 코드 패턴을 찾는 데 이상적입니다.
사용 예:
# Find function declarations in JavaScript files
skydeckai-code-cli --tool search_code --args '{
"pattern": "function\\s+\\w+",
"include": "*.js"
}'
# Find all console.log statements with errors
skydeckai-code-cli --tool search_code --args '{
"pattern": "console\\.log.*[eE]rror",
"path": "src"
}'
# Find import statements in TypeScript files
skydeckai-code-cli --tool search_code --args '{
"pattern": "import.*from",
"include": "*.{ts,tsx}",
"exclude": "node_modules/**"
}'
시스템 정보
도구 | 매개변수 | 보고 |
---|
시스템 정보 가져오기 | 없음 | 포괄적인 시스템 세부 정보 |
보고:
{
"working_directory": "/path/to/project",
"system": {
"os", "os_version", "architecture", "python_version"
},
"wifi_network": "MyWiFi",
"cpu": {
"physical_cores", "logical_cores", "total_cpu_usage"
},
"memory": { "total", "available", "used_percentage" },
"disk": { "total", "free", "used_percentage" },
"mac_details": { // Only present on macOS
"model": "Mac mini",
"chip": "Apple M2",
"serial_number": "XXX"
}
}
깔끔하고 읽기 쉬운 형식으로 필수 시스템 정보를 제공합니다.
# Get system information
skydeckai-code-cli --tool get_system_info
화면 컨텍스트 및 이미지 도구
활성 앱 가져오기
사용자 시스템에서 현재 활성화된 애플리케이션 목록을 반환합니다.
매개변수:
매개변수 | 유형 | 필수의 | 설명 |
---|
세부 정보 포함 | 부울 | 아니요 | 각 애플리케이션에 대한 추가 세부 정보를 포함할지 여부(기본값: false) |
보고:
{
"success": true,
"platform": "macos",
"app_count": 12,
"apps": [
{
"name": "Firefox",
"has_windows": true,
"window_count": 3,
"visible_windows": [
{ "name": "GitHub - Mozilla Firefox", "width": 1200, "height": 800 }
]
},
{
"name": "VSCode",
"has_windows": true
}
]
}
이 도구는 사용자 시스템에서 현재 실행 중인 애플리케이션에 대한 귀중한 맥락을 제공하여 더욱 관련성 있는 지원을 제공하는 데 도움이 될 수 있습니다.
사용 가능한 창 가져오기
사용자 화면에 현재 표시된 모든 사용 가능한 창에 대한 자세한 정보를 반환합니다.
보고:
{
"success": true,
"platform": "macos",
"count": 8,
"windows": [
{
"id": 42,
"title": "Document.txt - Notepad",
"app": "Notepad",
"visible": true
},
{
"title": "Terminal",
"app": "Terminal",
"visible": true,
"active": true
}
]
}
이 도구는 사용자 화면에 표시되는 내용을 이해하는 데 도움이 되며 상황에 맞는 지원에 사용할 수 있습니다.
캡처_스크린샷
사용자 화면이나 특정 창의 스크린샷을 캡처합니다.
{
"output_path": "screenshots/capture.png",
"capture_mode": {
"type": "named_window",
"window_name": "Visual Studio Code"
}
}
매개변수:
매개변수 | 유형 | 필수의 | 설명 |
---|
출력 경로 | 끈 | 아니요 | 스크린샷을 저장할 경로(기본값: 생성된 경로) |
캡처 모드 | 물체 | 아니요 | 캡처할 내용을 지정합니다 |
캡처_모드.유형 | 끈 | 아니요 | 스크린샷 유형: '전체', '활성 창' 또는 '지정된 창'(기본값: '전체') |
캡처_모드.윈도우_이름 | 끈 | 아니요 | 캡처할 창의 이름(유형이 'named_window'인 경우 필수) |
보고:
{
"success": true,
"path": "/path/to/screenshots/capture.png"
}
이 도구는 시각화, 디버깅 또는 상황 인식 지원을 위해 스크린샷을 캡처합니다.
이미지 파일 읽기
파일 시스템에서 이미지 파일을 읽고 그 내용을 base64로 인코딩된 문자열로 반환합니다.
{
"path": "images/logo.png"
}
매개변수:
매개변수 | 유형 | 필수의 | 설명 |
---|
길 | 끈 | 예 | 읽을 이미지 파일의 경로 |
최대 크기 | 정수 | 아니요 | 최대 파일 크기(바이트) (기본값: 100MB) |
반환: 표시 또는 처리가 가능한 Base64로 인코딩된 이미지 데이터입니다.
이 도구는 PNG, JPEG, GIF, WebP와 같은 일반적인 이미지 형식을 지원하고, 최적의 보기를 위해 이미지 크기를 자동으로 조정합니다.
웹 도구
웹_페치
URL에서 콘텐츠를 가져와서 선택적으로 파일에 저장합니다.
{
"url": "https://api.github.com/users/octocat",
"headers": {
"Accept": "application/json"
},
"timeout": 15,
"save_to_file": "downloads/octocat.json",
"convert_html_to_markdown": true
}
매개변수:
매개변수 | 유형 | 필수의 | 설명 |
---|
URL | 끈 | 예 | 콘텐츠를 가져올 URL(http/https만 해당) |
헤더 | 물체 | 아니요 | 요청에 포함할 선택적 HTTP 헤더 |
타임아웃 | 정수 | 아니요 | 응답을 기다리는 최대 시간(기본값: 10초) |
파일에 저장 | 끈 | 아니요 | 응답 콘텐츠를 저장하는 경로(허용된 디렉토리 내) |
HTML을 마크다운으로 변환 | 부울 | 아니요 | true인 경우 가독성을 높이기 위해 HTML 콘텐츠를 마크다운으로 변환합니다(기본값: true) |
반환: HTTP 상태 코드와 크기 정보가 포함된 텍스트 형식의 응답 콘텐츠입니다. 바이너리 콘텐츠의 경우, 메타데이터를 반환하고 요청 시 파일에 저장합니다. convert_html_to_markdown을 활성화하면 HTML 콘텐츠가 가독성 향상을 위해 마크다운 형식으로 자동 변환됩니다.
이 도구는 크기 제한(최대 10MB)과 보안 제약 조건을 준수하면서 웹 API에 액세스하고, 문서를 가져오고, 웹에서 콘텐츠를 다운로드하는 데 사용할 수 있습니다.
사용 예:
# Fetch JSON from an API
skydeckai-code-cli --tool web_fetch --args '{
"url": "https://api.github.com/users/octocat",
"headers": {"Accept": "application/json"}
}'
# Download content to a file
skydeckai-code-cli --tool web_fetch --args '{
"url": "https://github.com/github/github-mcp-server/blob/main/README.md",
"save_to_file": "downloads/readme.md"
}'
# Fetch a webpage and convert to markdown for better readability
skydeckai-code-cli --tool web_fetch --args '{
"url": "https://example.com",
"convert_html_to_markdown": true
}'
웹 검색
여러 검색 엔진을 사용하여 강력한 웹 검색을 수행하고 간결하고 관련성 있는 결과를 제공합니다.
{
"query": "latest python release features",
"num_results": 8,
"convert_html_to_markdown": true,
"search_engine": "bing"
}
매개변수:
매개변수 | 유형 | 필수의 | 설명 |
---|
질문 | 끈 | 예 | 처리할 검색어입니다. 더 나은 결과를 얻으려면 구체적으로 입력하세요. |
결과 수 | 정수 | 아니요 | 반환할 검색 결과의 최대 개수(기본값: 10, 최대값: 20) |
HTML을 마크다운으로 변환 | 부울 | 아니요 | true인 경우 가독성을 높이기 위해 콘텐츠가 HTML에서 마크다운으로 변환됩니다(기본값: true) |
검색 엔진 | 끈 | 아니요 | 사용할 검색 엔진을 지정합니다: "auto"(기본값), "bing" 또는 "duckduckgo" |
반환값: 마크다운 형식으로 작성된 검색 결과 목록(제목, URL, 각 결과의 스니펫 포함). 결과는 중복을 제거하고 계층적으로 정리하여 읽기 쉽게 합니다.
이 도구는 다양한 검색 엔진을 사용하여 다양한 구문 분석 전략을 시도하는 다중 엔진 방식을 사용하여 신뢰할 수 있는 결과를 보장합니다. 선호하는 엔진을 지정할 수 있지만, 일부 엔진은 자동 액세스를 차단할 수 있으며, 이 경우 "자동"을 선택하면 도구는 다른 엔진으로 대체됩니다.
사용 예:
# Search with default settings (auto engine selection)
skydeckai-code-cli --tool web_search --args '{
"query": "latest python release features"
}'
# Try DuckDuckGo if you want alternative results
skydeckai-code-cli --tool web_search --args '{
"query": "machine learning frameworks comparison",
"search_engine": "duckduckgo"
}'
# Use Bing for reliable results
skydeckai-code-cli --tool web_search --args '{
"query": "best programming practices 2023",
"search_engine": "bing"
}'
유틸리티 도구
배치 도구
가능하다면 병렬 실행으로 단일 요청에서 여러 도구 호출을 실행합니다.
{
"description": "Setup new project",
"sequential": true,
"invocations": [
{
"tool": "create_directory",
"arguments": {
"path": "src"
}
},
{
"tool": "write_file",
"arguments": {
"path": "README.md",
"content": "# New Project\n\nThis is a new project."
}
},
{
"tool": "git_init",
"arguments": {
"path": ".",
"initial_branch": "main"
}
}
]
}
매개변수:
매개변수 | 유형 | 필수의 | 설명 |
---|
설명 | 끈 | 예 | 배치 작업에 대한 간략한 설명 |
잇달아 일어나는 | 부울 | 아니요 | 도구를 순서대로 실행할지 여부(기본값: false) |
기도 | 정렬 | 예 | 실행할 도구 호출 목록 |
호출[].도구 | 끈 | 예 | 호출할 도구의 이름 |
호출[].인수 | 물체 | 예 | 지정된 도구에 대한 인수 |
반환값: 모든 도구 호출의 결과를 도구별로 그룹화하여 성공/오류 상태를 표시합니다. 결과는 원래 호출 순서대로 명확한 섹션 헤더와 함께 표시됩니다.
이 도구는 단일 요청으로 여러 작업을 효율적으로 실행합니다. sequential
이 false(기본값)이면 도구가 병렬로 실행되어 성능 향상을 가져옵니다. sequential
true이면 도구가 순서대로 실행되며, 도구에 오류가 발생하면 실행이 중지됩니다.
중요 : 배치에 포함된 모든 도구는 동일한 작업 디렉터리 컨텍스트에서 실행됩니다. 도구가 디렉터리를 생성하고 후속 도구가 해당 디렉터리 내에서 작업해야 하는 경우, 다음 중 하나를 수행해야 합니다.
- 현재 작업 디렉토리에 대한 상대 경로를 사용합니다(예: "src" 대신 "project/src"). 또는
update_allowed_directory
사용하여 디렉토리를 변경하기 위한 명시적 도구 호출을 포함합니다.
사용 예:
# Setup a new project with multiple steps in sequential order (using proper paths)
skydeckai-code-cli --tool batch_tools --args '{
"description": "Setup new project",
"sequential": true,
"invocations": [
{"tool": "create_directory", "arguments": {"path": "project"}},
{"tool": "create_directory", "arguments": {"path": "project/src"}},
{"tool": "write_file", "arguments": {"path": "project/README.md", "content": "# Project\n\nA new project."}}
]
}'
# Create nested structure using relative paths (without changing directory)
skydeckai-code-cli --tool batch_tools --args '{
"description": "Create project structure",
"sequential": true,
"invocations": [
{"tool": "create_directory", "arguments": {"path": "project/src"}},
{"tool": "create_directory", "arguments": {"path": "project/docs"}},
{"tool": "write_file", "arguments": {"path": "project/README.md", "content": "# Project"}}
]
}'
# Gather system information and take a screenshot (tasks can run in parallel)
skydeckai-code-cli --tool batch_tools --args '{
"description": "System diagnostics",
"sequential": false,
"invocations": [
{"tool": "get_system_info", "arguments": {}},
{"tool": "capture_screenshot", "arguments": {
"output_path": "diagnostics/screen.png",
"capture_mode": {
"type": "full"
}
}}
]
}'
생각하다
저장소를 변경하지 않고도 복잡한 추론과 브레인스토밍을 위한 도구입니다.
{
"thought": "Let me analyze the performance issue in the codebase:\n\n## Root Cause Analysis\n\n1. The database query is inefficient because:\n - It doesn't use proper indexing\n - It fetches more columns than needed\n - The JOIN operation is unnecessarily complex\n\n## Potential Solutions\n\n1. **Add database indexes**:\n - Create an index on the user_id column\n - Create a composite index on (created_at, status)\n\n2. **Optimize the query**:\n - Select only necessary columns\n - Rewrite the JOIN using a subquery\n - Add LIMIT clause for pagination\n\n3. **Add caching layer**:\n - Cache frequent queries using Redis\n - Implement cache invalidation strategy\n\nAfter weighing the options, solution #2 seems to be the simplest to implement with the highest impact."
}
매개변수:
매개변수 | 유형 | 필수의 | 설명 |
---|
생각 | 끈 | 예 | 귀하의 자세한 생각, 분석 또는 추론 과정 |
반환: 여러분의 생각을 마크다운 형식으로 작성하고, 이것이 사고 연습이었다는 것을 나타내는 메모를 첨부합니다.
이 도구는 실제 변경 없이 복잡한 문제를 깊이 있게 고민하고, 해결책을 브레인스토밍하고, 실행 계획을 세우는 데 유용합니다. 추론 과정을 문서화하고, 다양한 접근 방식을 평가하고, 실행하기 전에 다단계 전략을 계획하는 데 매우 유용합니다.
사용 예:
# Analyze a bug and plan a fix
skydeckai-code-cli --tool think --args '{
"thought": "# Bug Analysis\n\n## Observed Behavior\nThe login endpoint returns a 500 error when email contains Unicode characters.\n\n## Root Cause\nThe database adapter is not properly encoding Unicode strings before constructing the SQL query.\n\n## Potential Fixes\n1. Update the database adapter to use parameterized queries\n2. Add input validation to reject Unicode in emails\n3. Encode email input manually before database operations\n\nFix #1 is the best approach as it solves the core issue and improves security."
}'
# Evaluate design alternatives
skydeckai-code-cli --tool think --args '{
"thought": "# API Design Options\n\n## REST vs GraphQL\nFor this use case, GraphQL would provide more flexible data fetching but adds complexity. REST is simpler and sufficient for our current needs.\n\n## Authentication Methods\nJWT-based authentication offers stateless operation and better scalability compared to session-based auth.\n\nRecommendation: Use REST with JWT authentication for the initial implementation."
}'
코드 실행
실행 코드
다양한 프로그래밍 언어로 안전 조치와 제한 사항을 적용하여 코드를 실행합니다.
{
"language": "python",
"code": "print('Hello, World!')",
"timeout": 5
}
지원 언어:
- 파이썬(python3)
- 자바스크립트(Node.js)
- 루비
- 페피(PHP)
- 가다
- 녹
매개변수:
매개변수 | 유형 | 필수의 | 설명 |
---|
언어 | 끈 | 예 | 사용할 프로그래밍 언어 |
암호 | 끈 | 예 | 실행할 코드 |
타임아웃 | 정수 | 아니요 | 최대 실행 시간(기본값: 5초) |
사용 예:
# Python example
skydeckai-code-cli --tool execute_code --args '{
"language": "python",
"code": "print(sum(range(10)))"
}'
# JavaScript example
skydeckai-code-cli --tool execute_code --args '{
"language": "javascript",
"code": "console.log(Array.from({length: 5}, (_, i) => i*2))"
}'
# Ruby example
skydeckai-code-cli --tool execute_code --args '{
"language": "ruby",
"code": "puts (1..5).reduce(:+)"
}'
# Go example
skydeckai-code-cli --tool execute_code --args '{
"language": "go",
"code": "fmt.Println(\"Hello, Go!\")"
}'
요구 사항:
- 각 언어 런타임을 설치해야 합니다.
- 명령은 시스템 PATH에서 사용할 수 있어야 합니다.
- 임시 파일 생성에 대한 적절한 권한
⚠️ 보안 경고: 이 도구는 시스템에서 임의의 코드를 실행합니다. 항상:
- 실행하기 전에 코드를 철저히 검토하세요
- 코드의 목적과 예상 결과를 이해하세요
- 신뢰할 수 없는 코드는 실행하지 마세요
- 잠재적인 시스템 영향을 인식하세요
- 모니터 실행 출력
쉘 스크립트 실행
안전 조치와 제한 사항을 적용하여 셸 스크립트(bash/sh)를 실행합니다.
{
"script": "echo \"Current directory:\" && pwd",
"timeout": 300
}
매개변수:
매개변수 | 유형 | 필수의 | 설명 |
---|
스크립트 | 끈 | 예 | 실행할 쉘 스크립트 |
타임아웃 | 정수 | 아니요 | 최대 실행 시간(기본값: 300초, 최대값: 600초) |
사용 예:
# List directory contents with details
skydeckai-code-cli --tool execute_shell_script --args '{
"script": "ls -la"
}'
# Find all Python files recursively
skydeckai-code-cli --tool execute_shell_script --args '{
"script": "find . -name \"*.py\" -type f"
}'
# Complex script with multiple commands
skydeckai-code-cli --tool execute_shell_script --args '{
"script": "echo \"System Info:\" && uname -a && echo \"\nDisk Usage:\" && df -h"
}'
특징:
- 시스템 간 최대 호환성을 위해 /bin/sh를 사용합니다.
- 허용된 디렉토리 내에서 실행됩니다.
- stdout과 stderr 출력을 분리합니다.
- 적절한 오류 처리 및 시간 초과 제어
⚠️ 보안 경고: 이 도구는 시스템에서 임의의 셸 명령을 실행합니다. 항상:
- 실행하기 전에 스크립트를 철저히 검토하세요
- 스크립트의 목적과 예상 결과를 이해하세요
- 신뢰할 수 없는 스크립트를 실행하지 마십시오
- 잠재적인 시스템 영향을 인식하세요
- 모니터 실행 출력
구성
구성 파일: ~/.skydeckai_code/config.json
{
"allowed_directory": "/path/to/workspace"
}
CLI 사용법
기본 명령 구조:
skydeckai-code-cli --tool <tool_name> --args '<json_arguments>'
# List available tools
skydeckai-code-cli --list-tools
# Enable debug output
skydeckai-code-cli --debug --tool <tool_name> --args '<json_arguments>'
디버깅
디버깅을 위해 MCP Inspector를 사용하세요.
npx @modelcontextprotocol/inspector run
보안
- 구성된 허용 디렉토리로 제한된 작업
- 경로 탐색 방지
- 파일 권한 보존
- 안전한 작업 취급
곧 출시될 기능
- GitHub 도구:
- Pivotal Tracker 도구:
개발 현황
현재 개발 중입니다. 기능과 API는 변경될 수 있습니다.
특허
Apache License 2.0 - LICENSE 참조