โ ๏ธ v0.0.3 ้่ฆๆดๆฐMCP ๅฎขๆท็ซฏ้ ็ฝฎ้่ฆไป๏ผ
{ "command": "npx", "args": ["vscode-as-mcp-server"] }ๆ
{ "url": "http://localhost:60100" }ไฟฎๆนไธบ๏ผ
{ "command": "npx", "args": ["vscode-to-mcp-server"] }ๅฆๆไธไฟฎๆน้ ็ฝฎ๏ผๅฐๆ ๆณ่ชๅจๅจๅคๅทฅไฝๅบ้ดๅๆข๏ผๅช่ฝ่ทๅ็ฌฌไธไธชๆๅผ็ๅทฅไฝๅบ็็ฑปใ
CursorใGithub CopilotใWindsurf ็ญๅบไบ VSCode ๅผๅ็ AI Code Agent ๅจ็ผๅ Java ้กน็ฎๆถ๏ผๅฏไปฅ่ฎฟ้ฎ้กน็ฎๆฌ่บซ็ๆบไปฃ็ ๏ผไฝๆ ๆณ่ทๅ้กน็ฎไพ่ต็็ฑปๅฎไนไธๆบ็ ใ
ๆฌๆไปถๅฐ VSCode/Cursor ่ฝฌๅไธบ MCP ๆๅกๅจ๏ผ่ฎฉ AI Agent ่ฝๅค๏ผ
- ๆ็ดข Java ็ฑปๅ๏ผ้่ฟๅ็งฐๆ้จๅๅ็งฐๅจ้กน็ฎใๅค้จไพ่ตๅ JDK ไธญๆ็ดข็ฑป โโโโๅฏนๅบmcpๅทฅๅ
ท
searchJavaTypes - ่ทๅๆบไปฃ็ ๏ผ้่ฟๅ
จ้ๅฎๅ่ทๅไปปๆๅฏ่ฎฟ้ฎ็ฑป็ๆบ็ ๏ผๅ
ๆฌไพ่ตๅบๅ JDK๏ผโโโโๅฏนๅบmcpๅทฅๅ
ท
getSourceCodeByFQN
- v0.0.3 ไนๅ๏ผ้่ฟ็นๅป็ถๆๆ ๅจๅคไธช VSCode/Cursor ๅทฅไฝๅบไน้ดๅๆข MCP ๆๅกๅจ
- v0.0.3 ่ตท๏ผๆฏๆๅๆถ่ฟๆฅๅคไธชๅทฅไฝๅบ๏ผ้ค้็จๆทๆๅฎ AI Agent ไผ่ชๅจ้ๆฉๅฝๅๆดปๅจ็ชๅฃๅฏนๅบ็ๅทฅไฝๅบ
-
็กฎ่ฎคๅทฒ็ปๅฎ่ฃ ๆไปถ
Extension Pack for Javaๅพฎ่ฝฏๆไปถๅๅ็ๆฌๆOpen VSX ็ๆฌ ไธๅฏๆญฃๅธธ่ฟ่กjava้กน็ฎ -
ไธ่ฝฝๅฎ่ฃ ๆฌๆไปถใ
-
้ ็ฝฎๆจ็MCPๅฎขๆท็ซฏ๏ผ้ๅฏๅนถ็กฎ่ฎคmcpๅทฅๅ ทๅ ่ฝฝๅฎๆ๏ผ
- ๅฆClaude Desktop๏ผCurosr๏ผWinsurf๏ผVsocde๏ผCherry studio็ญๅฎขๆท็ซฏ๏ผๆทปๅ ไปฅไธๅ
ๅฎนๅฐๆจ็้
็ฝฎๆไปถ(
claude_desktop_config.json)ไธญ๏ผ
{ "mcpServers": { "vscode-java": { "command": "npx", "args": [ "vscode-to-mcp-server" ] } } } - ๅฆClaude Desktop๏ผCurosr๏ผWinsurf๏ผVsocde๏ผCherry studio็ญๅฎขๆท็ซฏ๏ผๆทปๅ ไปฅไธๅ
ๅฎนๅฐๆจ็้
็ฝฎๆไปถ(
ไธบไบ่ฎฉ AI Agent ๆดไธปๅจๅฐ่ฐ็จๆฌๆไปถๆไพ็ๅทฅๅ ท๏ผๅปบ่ฎฎๅจ็ณป็ปๆ็คบ่ฏไธญๆทปๅ ไปฅไธๅ ๅฎน๏ผๅฆๆไฝ ๆฒกๆๆดๅฅฝๆ่ ๆด้ๅ่ชๅทฑๅบ็จๅบๆฏ็ๆ็คบ่ฏ๏ผ๏ผ
้่ฟ้กน็ฎๆบไปฃ็ ๆพไธๅฐ็็ฑปๆ็ฑป็ๅฎไนๆๆนๆณๅ
ทไฝๅฎ็ฐ๏ผไธๆ็ฑปๅๆ่
้จๅ็ฑปๅๆถ๏ผๅฏไปฅไฝฟ็จๅทฅๅ
ท searchJavaTypes ไธ getSourceCodeByFQN ๅคๆญๅ
ถๆฏๅฆๅญๅจ๏ผๆ่ทๅๅ
ถๆบไปฃ็ ๐ก ไปฅ Cursor ไธบไพ๏ผๅฏไปฅๅจ Settings โ General โ Rules for AI โ User Rules ไธญๆทปๅ
| ๅๆฐ | ็ฑปๅ | ้ป่ฎคๅผ | ่ฏดๆ |
|---|---|---|---|
mcpServer.maxOutputLength |
number | 70000 |
ๆๅคง่พๅบ Java ๆบไปฃ็ ๅญ็ฌฆๆฐใๅฝ่ฆ่ทๅ็็ฑป็ๆบไปฃ็ ่ถ ่ฟๆญค้ๅถๆถไผๆฅ้ใไธๅปบ่ฎฎ่ฎพ็ฝฎ่ฟๅคง๏ผ่ฟๅคงไผๅฏผ่ดๆจกๅ input token ่ฟๅคงๆ ๆณ่ฏทๆฑๆจกๅ๏ผๆๆ ๆณๅฐ็ฑป็ๆบไปฃ็ ๆพๅ ฅไธไธๆไธญใ |
mcpServer.enableRelayVersionCheck |
boolean | true |
ๆฏๅฆๅฏ็จ relay ็ๆฌๆดๆฐๆฃๆฅๅ้็ฅใ่ฎพ็ฝฎไธบ false ๅฏ็ฆ็จ็ๆฌๆดๆฐๆ้ใ |
้ๅธธๆฌข่ฟๅคงๅฎถๅฏนๆไปถ็้ฎ้ข๏ผbugๆๆฐๅ่ฝๅปบ่ฎฎ่ฟ่กๅ้ฆ๏ผ ๐
- 0.0.7 ๅคๆ นๅทฅไฝๅบๆฏๆ
- 0.0.5 ่ทๅๆบ็ ๆถ๏ผๆฏๆๆๆนๆณๅ่ฟๆปค
- 0.0.4 ๆฏๆ่ทๅๅทฅไฝๅบไธญๅญๅจ็ๅ จ้ๅฎๅ็ธๅไฝ็ๆฌไธๅ็็ฑป
- 0.0.3 mcpๆไปคๆง่กๅจๅคไธชๅทฅไฝๅบ่ชๅจ่ทฏ็ฑ๏ผๆ ้ๆๅจๅๆข
- 0.0.2 ไฟฎๆนไบๆฅ่ฏขๅ จ้ๅฎๅๆๆถๅไผๆฅๅบไธ็ฌฆๅๆกไปถ็็ปๆ็bug
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ MCP ๅฎขๆท็ซฏ โ
โ (Claude Desktop / Cursor / Windsurf ็ญ) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ stdio (JSON-RPC)
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Relay (vscode-to-mcp-server) โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ - ๆฅๆถ MCP ๅฎขๆท็ซฏ่ฏทๆฑ โ โ
โ โ - ่ฏปๅ่ทฏ็ฑ่กจ๏ผๆฅๆพ็ฎๆ Extension โ โ
โ โ - ้่ฟ Socket ่ฝฌๅ่ฏทๆฑๅฐ Extension โ โ
โ โ - ่ฟๅๅๅบ็ป MCP ๅฎขๆท็ซฏ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโ
โ โ โ
โผ โผ โผ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โ Named Pipe โ โ Named Pipe โ โ Named Pipe โ
โ (Windows) โ โ (Windows) โ โ (Windows) โ
โ ๆ โ โ ๆ โ โ ๆ โ
โ Unix Socket โ โ Unix Socket โ โ Unix Socket โ
โ (ๅ
ถไป) โ โ (ๅ
ถไป) โ โ (ๅ
ถไป) โ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โ โ โ
โผ โผ โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ VSCode/Cursor Extension ๅฎไพ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ ๅทฅไฝๅบ A โ โ ๅทฅไฝๅบ B โ โ ๅทฅไฝๅบ C โ ... โ
โ โ PID: 12345 โ โ PID: 23456 โ โ PID: 34567 โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ โ โ โ
โ โผ โผ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Java Language Server (JDT.LS) โ โ
โ โ ๆ็ดข็ฑปๅ / ่ทๅๆบไปฃ็ / ่งฃๆ Java ้กน็ฎ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| ็ปไปถ | ๅ ๅ | ่ฏดๆ |
|---|---|---|
| Extension | packages/extension |
VSCode/Cursor ๆไปถ๏ผๆไพ MCP ๆๅกๅจๅ่ฝ |
| Relay | packages/relay |
ๅฝไปค่กไธญ็ปง็จๅบ๏ผๆกฅๆฅ MCP ๅฎขๆท็ซฏไธ Extension |
| ๅนณๅฐ | ้ไฟกๆนๅผ | ่ทฏๅพๆ ผๅผ |
|---|---|---|
| Windows | Named Pipe (ๅฝๅ็ฎก้) | \\.\pipe\vscode-mcp-{pid} |
| macOS/Linux | Unix Domain Socket | ~/.vscode-mcp-sockets/{pid}.sock |
่ทฏ็ฑ่กจๆไปถๅญๅจๅจ็จๆทไธป็ฎๅฝ๏ผ~/.vscode-mcp-router-v2.json
{
"entries": [
{
"workspaces": ["d:\\project\\workspace-a"],
"pid": 12345,
"lastUpdated": 1700000000000
}
]
}- ๆ ผๅผ: JSON-RPC 2.0
- ๅ้็ฌฆ: ๆข่ก็ฌฆ
\n - ่ถ ๆถ: ่ฟๆฅ 5็ง / ่ฏทๆฑ 30็ง
| Header | ่ฏดๆ |
|---|---|
X-Relay-Version |
Relay ็ๆฌๅท๏ผ็จไบๅ ผๅฎนๆงๆฃๆฅ |
X-MCP-Client |
MCP ๅฎขๆท็ซฏๆ ่ฏ |
1. MCP ๅฎขๆท็ซฏ่ฐ็จๅทฅๅ
ท (ๅฆ searchJavaTypes)
โ
โผ
2. Relay ๆฅๆถ stdio ่ฏทๆฑ
โ
โผ
3. Relay ่ฏปๅ่ทฏ็ฑ่กจ๏ผๆ นๆฎ workspacePaths ๆฅๆพ็ฎๆ PID
โ
โผ
4. Relay ้่ฟ Socket ๅ้ JSON-RPC ่ฏทๆฑๅฐ Extension
โ
โผ
5. Extension ่ฐ็จ Java Language Server ๆง่กๆไฝ
โ
โผ
6. Extension ่ฟๅ็ปๆ็ป Relay
โ
โผ
7. Relay ่ฟๅ็ปๆ็ป MCP ๅฎขๆท็ซฏ
| ๆไปถ | ่ฏดๆ |
|---|---|
extension/src/extension.ts |
ๆไปถๅ ฅๅฃ๏ผๅๅงๅ MCP ๆๅกๅจ |
extension/src/mcp-server.ts |
MCP ๆๅกๅจๅฎ็ฐ๏ผๆณจๅๅทฅๅ ท |
extension/src/sock-transport.ts |
Socket ๆๅก็ซฏไผ ่พๅฑ |
extension/src/utils/router-table.ts |
่ทฏ็ฑ่กจ็ฎก็๏ผ่ฏปๅ๏ผ |
relay/src/index.ts |
Relay ๅ ฅๅฃ๏ผ่ฏทๆฑ่ฝฌๅ |
relay/src/socket-client.ts |
Socket ๅฎขๆท็ซฏ |
relay/src/router-table.ts |
่ทฏ็ฑ่กจ่ฏปๅ๏ผๅช่ฏป๏ผ |
โ ๏ธ v0.0.3 Important UpdateMCP client configuration needs to be changed from:
{ "command": "npx", "args": ["vscode-as-mcp-server"] }or
{ "url": "http://localhost:60100" }to:
{ "command": "npx", "args": ["vscode-to-mcp-server"] }Without updating the configuration, automatic multi-workspace switching will not work, and only classes from the first opened workspace will be accessible.
AI Code Agents based on VSCode (such as Cursor, Github Copilot, Windsurf) can access a Java project's own source code, but cannot retrieve class definitions and source code from project dependencies.
This extension turns VSCode/Cursor into an MCP server, enabling AI Agents to:
- Search Java Types: Search for classes by name or partial name across your project, external dependencies, and JDK โ corresponding MCP tool
searchJavaTypes - Get Source Code: Retrieve source code of any accessible class by fully qualified name (including dependency libraries and JDK) โ corresponding MCP tool
getSourceCodeByFQN
- Before v0.0.3: Switch MCP server between multiple VSCode/Cursor workspaces by clicking the status bar
- From v0.0.3: Supports connecting to multiple workspaces simultaneously. Unless specified by the user, AI Agent will automatically select the workspace corresponding to the currently active window
-
Confirm that the
Extension Pack for Javaplugin is installed (VS Marketplace or Open VSX) and can run Java projects normally -
Download and install this extension.
-
Configure your MCP client, restart and confirm MCP tools are loaded:
- For clients like Claude Desktop, Cursor, Winsurf, VSCode, Cherry studio: Add the following to your configuration file (
claude_desktop_config.json):
{ "mcpServers": { "vscode-java": { "command": "npx", "args": [ "vscode-to-mcp-server" ] } } } - For clients like Claude Desktop, Cursor, Winsurf, VSCode, Cherry studio: Add the following to your configuration file (
-
Open a Java project and make sure the project is fully loaded

To help AI Agents invoke the tools provided by this extension more proactively, it is recommended to add the following content to your system prompt (if you don't have a better or more suitable prompt for your use case):
When you cannot find the class, class definition, or specific implementation of methods through the project source code, and you have the class name or partial class name, you can use the tools searchJavaTypes and getSourceCodeByFQN to check if it exists or get its source code๐ก For example, in Cursor, you can add this in Settings โ General โ Rules for AI โ User Rules
| Parameter | Type | Default | Description |
|---|---|---|---|
mcpServer.maxOutputLength |
number | 70000 |
Maximum number of characters for Java source code output. An error will be reported when the source code exceeds this limit. It is not recommended to set it too large, as excessive values may cause the model's input token to be too large or make it impossible to place the class source code in the context. |
mcpServer.enableRelayVersionCheck |
boolean | true |
Whether to enable relay version update check and notification. Set to false to disable version update warnings. |
Feedback on issues, bugs, or suggestions for new features is highly welcomed! ๐
- 0.0.7 Multi-root workspace support
- 0.0.5 Support filtering by method names when retrieving source code
- 0.0.4 Support for retrieving classes with the same fully qualified name from multiple versions
- 0.0.3 MCP commands auto-route to multiple workspaces without manual switching
- 0.0.2 Fixed a bug where querying fully qualified names sometimes returned non-matching results
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ MCP Client โ
โ (Claude Desktop / Cursor / Windsurf, etc.) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ stdio (JSON-RPC)
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Relay (vscode-to-mcp-server) โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ - Receives MCP client requests โ โ
โ โ - Reads router table to find target Extension โ โ
โ โ - Forwards requests to Extension via Socket โ โ
โ โ - Returns responses to MCP client โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโ
โ โ โ
โผ โผ โผ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โ Named Pipe โ โ Named Pipe โ โ Named Pipe โ
โ (Windows) โ โ (Windows) โ โ (Windows) โ
โ or โ โ or โ โ or โ
โ Unix Socket โ โ Unix Socket โ โ Unix Socket โ
โ (Others) โ โ (Others) โ โ (Others) โ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โ โ โ
โผ โผ โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ VSCode/Cursor Extension Instances โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ Workspace A โ โ Workspace B โ โ Workspace C โ ... โ
โ โ PID: 12345 โ โ PID: 23456 โ โ PID: 34567 โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ โ โ โ
โ โผ โผ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Java Language Server (JDT.LS) โ โ
โ โ Search types / Get source code / Parse Java projects โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| Component | Package | Description |
|---|---|---|
| Extension | packages/extension |
VSCode/Cursor extension providing MCP server functionality |
| Relay | packages/relay |
CLI relay program bridging MCP client and Extension |
| Platform | Method | Path Format |
|---|---|---|
| Windows | Named Pipe | \\.\pipe\vscode-mcp-{pid} |
| macOS/Linux | Unix Domain Socket | ~/.vscode-mcp-sockets/{pid}.sock |
Router table file is stored in user home directory: ~/.vscode-mcp-router-v2.json
{
"entries": [
{
"workspaces": ["d:\\project\\workspace-a"],
"pid": 12345,
"lastUpdated": 1700000000000
}
]
}- Format: JSON-RPC 2.0
- Delimiter: Newline
\n - Timeout: Connection 5s / Request 30s
| Header | Description |
|---|---|
X-Relay-Version |
Relay version for compatibility check |
X-MCP-Client |
MCP client identifier |
1. MCP client calls a tool (e.g., searchJavaTypes)
โ
โผ
2. Relay receives stdio request
โ
โผ
3. Relay reads router table, finds target PID by workspacePaths
โ
โผ
4. Relay sends JSON-RPC request to Extension via Socket
โ
โผ
5. Extension calls Java Language Server to execute operation
โ
โผ
6. Extension returns result to Relay
โ
โผ
7. Relay returns result to MCP client
| File | Description |
|---|---|
extension/src/extension.ts |
Extension entry point, initializes MCP server |
extension/src/mcp-server.ts |
MCP server implementation, registers tools |
extension/src/sock-transport.ts |
Socket server transport layer |
extension/src/utils/router-table.ts |
Router table management (read/write) |
relay/src/index.ts |
Relay entry point, request forwarding |
relay/src/socket-client.ts |
Socket client |
relay/src/router-table.ts |
Router table reading (read-only) |

