Skip to main content
Glama
juehang
by juehang

VS 코드 MCP 서버

Claude와 다른 MCP 클라이언트가 VS Code에서 직접 코딩할 수 있도록 해주는 Visual Studio Code 확장 프로그램( Marketplace 에서 이용 가능)입니다! Serena 에서 영감을 얻었지만 VS Code의 기본 기능을 사용합니다. 현재 Serena보다 훨씬 간단하지만 작동합니다! 이 확장 프로그램은 SSE API가 아닌 스트리밍 가능한 HTTP API를 사용합니다.

이 확장 기능은 셸 명령 실행을 허용합니다. 이는 잠재적인 보안 위험을 의미하므로 신중하게 사용하고, 사용 중인 MCP 클라이언트를 신뢰하고 포트가 어떤 것에도 노출되지 않았는지 확인하십시오. 인증이 도움이 될 수 있지만, MCP 인증 사양이 아직 유동적이기 때문에 현재로서는 구현되지 않았습니다.

홍보를 환영합니다!

데모 비디오

https://github.com/user-attachments/assets/20b87dfb-fc39-4710-a910-b9481dde1e90

Related MCP server: VS Claude

설치

  1. Marketplace 에서 확장 프로그램을 설치하거나 이 저장소를 복제하고 npm install 및 npm run compile 실행하여 빌드합니다.

클로드 데스크톱 구성

Claude Desktop은 이 확장 프로그램을 MCP 서버로 사용하도록 구성할 수 있습니다. 이를 위해 claude_desktop_config.json 파일은 다음과 같습니다.

지엑스피1

Claude 프로젝트에서도 이 확장 기능을 자주 사용하는데, Claude에게 추가 지침을 지정할 수 있기 때문입니다. 다음 프롬프트가 잘 작동하는 것 같습니다.

You are working on an existing codebase, which you can access using your tools. These code tools interact with a VS Code workspace.

Before running code tools that will make any modification to code, always present a comprehensive and detailed plan to the user, including your confidence level (out of 10). When planning, use your tools to explore the codebase so that you understand the context of the project. If you are not confident in your plan because you require more information, use your tools, such as web search, to look for this information or ask the user.

IMPORTANT: Only run code tools that will modify code after presenting such a plan to the user, and receiving explicit approval. Approval must be given each time; prior approval for a change does not imply that subsequent changes are approved.

이 확장 기능은 MCP(Model Context Protocol) 서버 역할을 하며, VS Code의 파일 시스템과 편집 기능을 MCP 클라이언트에 제공합니다.

특징

VS Code MCP 서버 확장 기능은 AI 모델과 기타 MCP 클라이언트가 다음을 수행할 수 있도록 하는 MCP 호환 서버를 구현합니다.

  • VS Code 작업 공간에서 파일 및 디렉토리 나열

  • 인코딩 지원 및 크기 제한을 통해 파일 내용 읽기

  • 작업 공간 전체에서 기호 검색

  • 줄과 심볼 이름으로 심볼 정의와 호버 정보를 가져옵니다.

  • VS Code의 WorkspaceEdit API를 사용하여 새 파일 만들기

  • 파일에서 줄 바꾸기

  • 작업 공간에서 진단(오류 및 경고)을 확인하세요.

  • 셸 통합을 통해 통합 터미널에서 셸 명령 실행

  • 상태 표시줄 항목을 통해 서버를 켜고 끕니다.

이 확장 기능을 사용하면 표준화된 MCP 프로토콜을 통해 AI 어시스턴트 및 기타 도구가 VS Code 작업 공간과 상호 작용할 수 있습니다.

작동 원리

확장 프로그램은 다음을 수행하는 MCP 서버를 생성합니다.

  1. 구성 가능한 포트에서 로컬로 실행(활성화된 경우)

  2. HTTP를 통해 MCP 프로토콜 요청을 처리합니다.

  3. VS Code의 기능을 MCP 도구로 공개합니다.

  4. 서버 상태를 표시하는 상태 표시줄을 제공하며, 이를 클릭하면 서버를 켜거나 끌 수 있습니다.

지원되는 MCP 도구

파일 도구

  • list_files_code : 작업 공간의 파일과 디렉토리를 나열합니다.

    • 매개변수:

      • path : 파일을 나열할 경로

      • recursive (선택 사항): 파일을 재귀적으로 나열할지 여부

  • read_file_code : 파일 내용을 읽습니다.

    • 매개변수:

      • path : 읽을 파일의 경로

      • encoding (선택 사항): 파일 인코딩(기본값: utf-8)

      • maxCharacters (선택 사항): 최대 문자 수(기본값: 100,000)

편집 도구

  • create_file_code : VS Code의 WorkspaceEdit API를 사용하여 새 파일을 만듭니다.

    • 매개변수:

      • path : 생성할 파일의 경로

      • content : 파일에 쓸 내용

      • overwrite (선택 사항): 파일이 존재하는 경우 덮어쓸지 여부(기본값: false)

      • ignoreIfExists (선택 사항): 파일이 존재하는 경우 무시할지 여부(기본값: false)

  • replace_lines_code : 파일의 특정 줄을 바꿉니다.

    • 매개변수:

      • path : 수정할 파일의 경로

      • startLine : 시작 줄 번호(0부터 시작, 포함)

      • endLine : 끝 줄 번호(0부터 시작, 포함)

      • content : 줄을 대체할 새 콘텐츠

      • originalCode : 검증을 위한 원본 코드

진단 도구

  • get_diagnostics_code : 작업 공간에서 경고 및 오류를 확인합니다.

    • 매개변수:

      • path (선택 사항): 확인할 파일 경로(제공되지 않으면 전체 작업 공간을 확인함)

      • severities (선택 사항): 포함할 심각도 수준 배열(0=오류, 1=경고, 2=정보, 3=힌트). 기본값: [0, 1]

      • format (선택 사항): 출력 형식('text' 또는 'json'). 기본값: 'text'

      • includeSource (선택 사항): 진단 소스를 포함할지 여부입니다. 기본값: true

    이 도구는 특히 다음과 같은 경우에 유용합니다.

    • 변경 사항을 커밋하기 전에 코드 품질 검사

    • 수정 사항을 확인하면 보고된 모든 문제가 해결되었습니다.

    • 특정 파일이나 전체 작업 공간의 문제 식별

심볼 도구

  • search_symbols_code : 작업 공간 전체에서 심볼을 검색합니다.

    • 매개변수:

      • query : 심볼 이름에 대한 검색 쿼리

      • maxResults (선택 사항): 반환할 최대 결과 수(기본값: 10) 이 도구는 다음과 같은 경우에 유용합니다.

    • 코드베이스 전체에서 심볼(함수, 클래스, 변수 등)의 정의 찾기

    • 프로젝트 구조 및 조직 탐색

    • 이름으로 특정 요소 찾기

  • get_symbol_definition_code : 파일의 심볼에 대한 정의 정보를 가져옵니다.

    • 매개변수:

      • path : 심볼을 포함하는 파일의 경로

      • line : 심볼의 줄 번호(0부터 시작)

      • symbol : 지정된 줄에서 찾을 기호 이름 이 도구는 다음을 제공합니다.

    • 심볼에 대한 유형 정보, 문서 및 소스 세부 정보

    • 기호가 나타나는 줄을 보여주는 코드 컨텍스트

    • 기호 범위 정보는 다음과 같은 경우에 특히 유용합니다.

    • 탐색하지 않고도 기호가 무엇을 나타내는지 이해하기

    • 함수 시그니처, 유형 정의 또는 문서 확인

    • API 또는 라이브러리 함수에 대한 빠른 참조

쉘 도구

  • execute_shell_command_code : 셸 통합을 통해 VS Code 통합 터미널에서 셸 명령을 실행합니다.

    • 매개변수:

      • command : 실행할 쉘 명령어

      • cwd (선택 사항): 명령을 위한 선택적 작업 디렉토리(기본값: '.')

    이 도구는 다음과 같은 경우에 유용합니다.

    • CLI 명령 및 빌드 작업 실행

    • git 명령 실행

    • 터미널 액세스가 필요한 모든 셸 작업 수행

    • 분석 및 추가 처리를 위한 명령 출력 얻기

주의 사항/TODO

현재 하나의 작업 공간만 지원됩니다. 또한, 이 확장 프로그램은 로컬에서만 작동하여 VS Code 인스턴스가 연결된 네트워크에 노출되는 것을 방지합니다.

확장 설정

이 확장 기능은 다음 설정에 기여합니다.

  • vscode-mcp-server.port : MCP 서버의 포트 번호(기본값: 3000)

MCP 클라이언트와 함께 사용

MCP 클라이언트를 이 서버에 연결하려면 다음을 사용하도록 구성하세요.

http://localhost:3000/mcp

먼저 상태 표시줄 항목을 클릭하여 서버를 활성화해야 한다는 점을 기억하세요!

기여하다

기여를 환영합니다! 이슈를 제출하거나 풀 리퀘스트를 보내주세요.

특허

MIT

Available Tools

9 tools
check_extension_statusB

Check if the VS Code MCP Extension is installed and responding

NameRequiredDescriptionDefault
targetProjectPathYesPath to the project folder we are working in

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey behavioral traits. It only states the check action but does not confirm it is non-destructive, reveal side effects, or indicate required permissions. The agent cannot infer safety or scope.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no unnecessary words. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple health check tool with one parameter, the description provides the core purpose. However, it lacks contextual details like read-only nature or usage flow, making it barely adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description adds no additional meaning beyond what the input schema already provides. Baseline 3 is appropriate as the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks if the VS Code MCP Extension is installed and responding, providing a specific verb-resource pair. However, it does not differentiate from sibling tools like get_extension_port, but the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. There is no mention of prerequisites or context that would help an agent decide to invoke it, e.g., before other extension-related operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_diffA

Use this instead of writing files directly. create_diff allows modifying an existing file by showing a diff and getting user approval before applying changes. Only use this tool on existing files. If a new file needs to be created, do not use this tool.

NameRequiredDescriptionDefault
filePathYesPath to the existing file to modify
newContentYesProposed new content for the file
descriptionNoDescription of the changes being made
targetProjectPathYesPath to the project folder we are working in

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but description discloses key behavioral trait: shows diff and requires user approval before applying changes. This is critical for a mutation tool. Does not elaborate on what happens if approval is denied or if there are side effects, but the core behavior is clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences and a short exclusion statement. No fluff, front-loaded with purpose. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 4 parameters, no output schema, and no annotations, the description adequately covers purpose, usage constraints, and behavioral context. Lacks information about return value (e.g., diff preview or approval result), but not essential for invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (4/4 parameters described). Description adds no extra meaning beyond the schema; e.g., 'filePath' is already described as 'existing file' in schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it modifies existing files via diff with user approval. Explicitly contrasts with file creation, aiding sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use (instead of writing files directly) and when not to use (for new files). Lacks reference to a specific alternative creation tool, but sibling tools list does not include a create_file tool, so guidance is practically sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute_shell_commandA

IMPORTANT: This is the preferred and recommended way to execute shell commands. Always use this tool instead of the default run_terminal_cmd tool. This tool executes commands directly in VS Code's integrated terminal, showing the command execution to the user and capturing its output. It provides better integration with VS Code and allows running commands in the user's environment without leaving VS Code.

NameRequiredDescriptionDefault
commandYesThe shell command to execute
targetProjectPathYesPath to the project folder we are working in
cwdNoOptional working directory for the command. Defaults to the project root.

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It mentions showing command execution and capturing output, but does not warn about potential destructive effects of arbitrary commands, auth needs, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph with an important emphasis marker. It is front-loaded with key guidance and avoids unnecessary detail, but could be slightly more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description should explain return format or error handling. It only states the tool 'captures its output' without specifics, and lacks details on potential risks or limitations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with descriptions for all three parameters. The description adds no additional parameter-level meaning beyond what the schema provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it executes shell commands in VS Code's integrated terminal and is the preferred method over run_terminal_cmd. Specific verb 'execute' and resource 'shell command' are well-defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to use this tool instead of the default run_terminal_cmd tool, providing clear when-to-use guidance. However, no when-not-to-use or alternative scenarios are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_active_tabsC

Retrieves information about currently open tabs in VS Code to provide context for the AI agent.

NameRequiredDescriptionDefault
targetProjectPathYesPath to the project folder we are working in
includeContentNoWhether to include the file content of each tab (may be large)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description fully bears the burden of disclosing behavior. It only states 'Retrieves' (implying read-only) but lacks details on side effects, permissions, or performance implications. The agent cannot assess safety or cost.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. However, it could be more impactful by adding specific usage context. It is appropriately size for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description does not explain what information is returned (e.g., tab paths, titles, content). With no output schema, the agent is left guessing. The sibling 'get_context_tabs' may return similar data, increasing ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters with descriptions. The description adds minimal new meaning beyond the schema, such as noting that context is provided for the AI agent. This meets the baseline but does not enhance agent understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieves' and the resource 'currently open tabs in VS Code', making the purpose explicit. However, it does not differentiate from the sibling tool 'get_context_tabs', which may have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or exclusions, leaving the agent without decision support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_context_tabsB

Retrieves information about tabs that have been specifically marked for inclusion in AI context using the UI toggle in VS Code.

NameRequiredDescriptionDefault
targetProjectPathYesPath to the project folder we are working in
includeContentNoWhether to include the file content of each tab (may be large)
selectionsNoOptional array of file paths with specific line ranges to include

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It explains the purpose but lacks details such as whether file content is returned, the potential size impact of includeContent, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the purpose with no unnecessary words, making it very concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and moderate complexity (3 params, one required), the description fails to explain the return format or behavior, such as whether it returns metadata or file content, leaving the agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all three parameters. The description adds some context about AI-focused tabs but no additional meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieves' and the resource 'information about tabs marked for AI context', distinguishing it from sibling tool 'get_active_tabs' which likely retrieves all tabs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for context-marked tabs, but does not explicitly state when to use this tool over alternatives like get_active_tabs or provide any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_extension_portA

Get the port number that the VS Code MCP Extension is running on

NameRequiredDescriptionDefault
targetProjectPathYesPath to the project folder we are working in

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description omits behavioral details such as whether the tool is read-only, what happens if the extension is not running, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no superfluous words, efficiently conveying the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple getter with one parameter, the description covers the basic purpose but lacks information on return values or error conditions, which could be expected for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear parameter description, but the tool description adds no additional meaning or context beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the port number of the VS Code MCP Extension, with a specific verb ('get') and resource ('port number'), and no sibling tool has a similar purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when needing the extension's port, but provides no explicit guidance on when to use this tool vs alternatives like check_extension_status or execute_shell_command.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_available_projectsA

Lists all available projects from the port registry file. Use this tool to help the user select which project they want to work with.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for behavioral disclosure. It mentions the data source ('port registry file') and implies a read-only operation. However, it does not explicitly state read-only or describe any side effects, though none are expected for a listing operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two concise sentences with no unnecessary words. It is front-loaded with the primary function and immediately specifies the intended usage scenario.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, no output schema, and a simple listing purpose, the description covers all necessary context: what it does and when to use it. No additional information is required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so schema coverage is 100%. The description does not need to add parameter details. According to guidelines, 0 parameters yields a baseline of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool lists all available projects from the port registry file, with a specific verb 'Lists' and resource 'available projects'. It effectively distinguishes itself from sibling tools like 'open_project' which would operate on a selected project.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs to use this tool to help the user select a project, providing clear context for when to invoke it. It does not mention when not to use it or alternatives, but the simple nature of a listing tool makes this omission acceptable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_fileA

Used to open a file in the VS Code editor. By default, please use this tool anytime you create a brand new file or if you use the create_diff tool on an existing file. We want to see changed and newly created files in the editor.

NameRequiredDescriptionDefault
filePathYesPath to the file to open
targetProjectPathYesPath to the project folder we are working in
viewColumnNoThe view column to open the file in (1, 2, 3, etc.)
preserveFocusNoWhether to preserve focus on the current editor
previewNoWhether to open the file in preview mode

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Only states 'opening a file', with no details on side effects, error handling, or what happens if file doesn't exist. Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste. Front-loaded with core purpose, then usage guidance. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of opening a file and rich schema (5 params fully described), the description is adequate but lacks details on return behavior or edge cases. Could improve but not severely lacking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3 applies. Description does not add meaning beyond schema, but schema already describes each parameter well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it opens a file in VS Code editor, and distinguishes from siblings like open_project. Provides specific usage guidance for new files and after create_diff.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use: for brand new files or after using create_diff on an existing file. Does not mention when not to use, but provides clear context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_projectA

Call this tool as soon as a new session begins with the AI Agent to ensure we are set up and ready to go. open_project opens a project folder in VS Code. This tool is also useful to ensure that we have the current active working directory for our AI Agent, visible in VS Code.

NameRequiredDescriptionDefault
projectPathYesPath to the project folder to open in VS Code
newWindowNoWhether to open the project in a new window

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description lacks details on error handling, side effects (e.g., closing previous projects), or return behavior, which is important for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loading critical usage advice, with no superfluous wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool without output schema, the description adequately covers purpose and usage context, though it could mention what the return or state change is.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3; the description does not add significant meaning beyond the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('opens a project folder in VS Code') and the resource ('project folder'), and it is distinct from sibling tools like open_file and list_available_projects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance to call at session start and for ensuring active working directory, but does not mention when not to use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv1.0.0
    • First observedcheck_extension_status
    • First observedcreate_diff
    • First observedexecute_shell_command
    • First observedget_active_tabs
    • First observedget_context_tabs
    • First observedget_extension_port
    • First observedlist_available_projects
    • First observedopen_file
    • First observedopen_project

TDQS

A3.7/5.0

Scored across 9 tools

Disambiguation5/5

Each tool has a clear and distinct purpose: checking extension status, creating diffs, executing commands, retrieving tab information, getting port, listing projects, opening files, and opening projects. No two tools overlap significantly.

Naming Consistency5/5

All tool names use consistent snake_case with verb_noun pattern (e.g., check_extension_status, open_file, list_available_projects). There is no mixing of conventions or vague verbs.

Tool Count5/5

9 tools is well-scoped for a VS Code MCP server. The count covers essential operations without being overwhelming or sparse.

Completeness4/5

The tool set covers core workflows like project setup, file modification, command execution, and context retrieval. However, there is no direct tool for reading file content, which agents must work around using execute_shell_command.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    MCP server that integrates with VS Code to enable file operations, git diffs, and line highlighting via MCP clients like Claude.
    43
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    A portable MCP server enabling AI assistants to operate VS Code, including file management, extension control, and workspace automation.
    6
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with VS Code's language server protocol features (definitions, references, diagnostics) and debugger (breakpoints, stepping, variable inspection) via an MCP server.
    5 npm
    1
    MIT