project-mcp
Note: As of May 2025, this extension is only available on VS Code Insiders. From June 2025, it will also be available on VS Code Stable.
Project MCP is a Visual Studio Code extension that lets you define MCP servers available across your entire project. By placing a project.mcp.json
file in your workspace, you can centrally manage and launch MCP servers for the whole project from a single configuration file.
It provides a convenient way to register and refresh MCP server definitions for your projects.
Features
- Automatically detects
.vscode/project.mcp.json
in your workspace or parent folders
- Registers MCP servers defined in the JSON file
- Manual refresh command (
Project MCP: Refresh
)
- Supports both stdio and HTTP MCP servers
- Supports custom server commands, arguments, and environment variables
- Variable substitution with
${projectFolder}
for dynamic path configuration
Usage
You can define MCP servers that are available project-wide by adding a project.mcp.json
file under your workspace's .vscode
directory. All team members and tools in the project can share these server definitions.
For example, if you have the following folder structure:
/parent-folder
└─ .vscode/project.mcp.json
└─ child-project/
└─ (open this folder in VS Code)
When you open child-project
in VS Code, Project MCP will automatically detect and use the .vscode/project.mcp.json
from the parent folder.
- Add a
project.mcp.json
file under your workspace's .vscode
directory. Example:
{
"servers": {
"local-stdio-server": {
"type": "stdio",
"command": "node",
"args": ["${projectFolder}/scripts/mcp-server.js"],
"env": {
"PROJECT_ROOT": "${projectFolder}",
"NODE_ENV": "development"
}
},
"remote-http-server": {
"type": "http",
"url": "https://api.example.com/mcp",
"headers": {
"Authorization": "Bearer your-token"
},
"version": "1.0.0"
}
}
}
Server Types
Stdio Servers
For local MCP servers that communicate via standard input/output:
{
"servers": {
"my-stdio-server": {
"type": "stdio",
"command": "python",
"args": ["${projectFolder}/scripts/server.py"],
"env": {
"PYTHONPATH": "${projectFolder}/src"
}
}
}
}
HTTP Servers
For remote MCP servers accessible via HTTP:
{
"servers": {
"my-http-server": {
"type": "http",
"url": "https://mcp-server.example.com/api",
"headers": {
"Authorization": "Bearer token",
"Content-Type": "application/json"
},
"version": "2.0.0"
}
}
}
Variable Substitution
You can use ${projectFolder}
in stdio server configurations to reference the project root directory (parent of .vscode
folder):
- command:
"${projectFolder}/bin/server"
- args:
["${projectFolder}/config/settings.json"]
- env:
{"PROJECT_ROOT": "${projectFolder}"}
- Use the command palette to run
Project MCP: Refresh
if you update the config.
TODO
- Support for input prompts
- Allow specifying config path
- Allow selecting which MCP config to load if multiple are found
Extension Settings
This extension does not contribute any settings yet.
Known Issues
- Only supports
.vscode/project.mcp.json
(not configurable)
- No UI for managing servers
- Variable substitution only available for stdio servers
Release Notes
0.0.2
- Added support for HTTP MCP servers
- Added
${projectFolder}
variable substitution for stdio servers
- Improved server configuration flexibility
0.0.1
Enjoy using Project MCP!
References