MCP Server
A local middleware Node.js application for Windows that enables seamless communication between LLM-based tools like Copilot Agents, providing access to local guide files and custom prompts through built-in tools.
README Documentation
Project Description
This project is a Node.js application for Windows OS called MCP Server. It serves as a local middleware for seamless communication between LLM-based tools (e.g., Copilot Agents). The server is designed to be run locally, ideally alongside an IDE like Visual Studio Code or Visual Studio.
MCP Server uses the third-party library @modelcontextprotocol/sdk, which allows you to run and test it in a web browser using the Inspector tool.
The project includes a predefined ./data directory that contains documentation and guide files used to assist with coding. Additionally, a ./data/prompts subfolder contains prompt files used by Copilot Agents to guide their behavior and output.
Configuration
Set the following environment variables:
GUIDE_FILES_DIR: Path to the directory containing your local guide files (e.g.,.\\data).PROMPT_DIR: Path to your prompt directory (e.g.,.\\dat\\prompts). Prompt files must be.txtfiles and start with the prefixprompt_.
You can set these variables in a .env file or pass them directly in the terminal when running the app.
Keep in mind having dobule "\" in your path names.
Example .env file:
GUIDE_FILES_DIR=C:\\pathToYourProject\\mcpLocalServer\\data\
PROMPT_DIR=C:\\pathToYourProject\\mcpLocalServer\\data\\prompts
π‘ The paths should directly point to the folders where your guide and prompt files are located. Itβs recommended to create a
promptssubfolder underdata.
Features
There are 3 build-in tools which you can use:
ListAvailableFilesToolβ Lists all.txtfiles located in thedatadirectory.ListPromptsToolβ Lists all prompt files located in thedata/promptsdirectory.ReadLocalFileToolβ Reads and returns the content of a file from eitherdataordata/prompts, depending on the file prefix.
Usage
-
Install dependencies:
npm install -
Configure environment variables using a
.envfile or directly in the terminal. -
Build the project:
npm run build -
Run the server for browser testing:
npx @modelcontextprotocol/inspector build/index.js -
Use the MCP-compatible client (like Copilot for Visual Studio Code) to interact with the server.
Usage with Visual Studio Code
To integrate with Copilot:
- Create a
.vscodedirectory in your project. - Add a
mcp.jsonfile with the following content:
{
"inputs": [],
"servers": {
"local": {
"command": "node",
"args": ["C:\\pathToMcpLocalServerProjectInYourPC\\build\\index.js"]
}
}
}
-
Follow the instructions from the official documentation to enable MCP support in VS Code.
-
Start your server if is disabled with a command: ctrl+shift+p MCP:List Servers -> next chose you server Name and click action [""Start","Stop","Restart"]
-
You should see MCP server Logs in OUTPUT terminal: 2025-05-30 08:35:10.855 [warning] [server stderr] β Local MCP server running on stdio 2025-05-30 08:35:10.864 [info] Discovered 3 tools
β οΈ Make sure you're using the latest or pre-release version of Visual Studio Code that supports Agents.
Example prompt using guide files and custom prompts: You can find more examples in "../docs/VisualCode_Copilot_Examples"
Description: πΎ Create C# Class
Prompt text:
Use the local MCP server.
Step 1: Load the prompt file named "prompt_csharp_class_authoring.txt" using the "read_local_file" tool with the argument "fileName".
Step 2: Once the file is loaded, execute all instructions defined in that file. If those instructions require using additional tools, follow them accordingly.
Step 3: After completing all steps from the prompt file, generate a C# (.cs) file with a class named House. The class should contain Windows and Doors properties, and include methods to build them.
Ensure that the implementation follows all guidelines and conventions from the loaded prompt file.
Customization
You can extend this project by adding your own guide or prompt files:
- Add a guide file: Create a
.txtfile with the prefixguide_and place it in the folder defined byGUIDE_FILES_DIR. - Add a prompt file: Create a
.txtfile with the prefixprompt_and place it in the folder defined byPROMPT_DIR.
You can also develop custom tools:
- Create a new
YourTool.tsfile in thesrc/toolsdirectory. - Register the tool in
localMcpServer.ts. - Rebuild the project before running tests.
License
This project is licensed under the MIT License.