Prepare the server locally
Run this once before adding it to Claude Code.
git clone https://github.com/santanu2908/demo-mcp-01.git
cd demo-mcp-01
npm installRegister it in Claude Code
claude mcp add demo-mcp-01 -- node /path/to/demo-mcp-01/src/index.jsReplace any placeholder paths in the command with the real path on your machine.
Make your agent remember this setup
demo-mcp-01's config, env vars, and the gotchas you hit — recalled in every future Claude Code, Cursor, and Codex session.
npx conare@latestFree · one command · indexes the sessions already on disk. Set up in the browser instead →
What it does
- Provides a calculator tool for basic arithmetic
- Supports addition, subtraction, multiplication, and division
- Runs locally via stdio transport
- Demonstrates MCP server architecture for Claude Desktop
Tools 1
calculatePerforms basic math operations including add, subtract, multiply, and divide.Try it
Original README from santanu2908/demo-mcp-01
demo-mcp-01
A local MCP (Model Context Protocol) server for Claude Desktop.
Overview
This project is a local MCP (Model Context Protocol) server that extends Claude Desktop with custom tools. MCP is an open protocol that allows Claude to interact with local services, files, APIs, and more — turning Claude into a powerful assistant tailored to your specific workflow.
This server is built with the MCP TypeScript SDK and runs locally on your machine via stdio transport. Once configured, Claude Desktop automatically starts the server and makes its tools available in every conversation.
What's included
calculate— Performs basic math operations:add,subtract,multiply, anddivide
This is a starter project — you can easily extend it by adding more tools in
src/index.js.
📁 Project Structure
demo-mcp-01/
│
├── src/
│ └── index.js # MCP server entry point
│
├── tools/
│ └── calculate.js # Calculate tool logic
│
├── .gitignore # Ignore node_modules, .env, etc.
├── package.json # Dependencies and scripts
└── README.md # This file
Getting Started
Prerequisites
- Node.js v18+
- Claude Desktop
1. Clone the Repository
git clone https://github.com/santanu2908/demo-mcp-01.git
cd demo-mcp-01
2. Install Dependencies
npm install
3. Configure Claude Desktop
Create a file named claude_desktop_config.json in the Claude config folder.
Config folder path (Windows):
C:\Users\<YourUsername>\AppData\Roaming\Claude\
💡 To quickly open this folder, press Win + R and type:
%APPDATA%\ClaudeIf theClaudefolder doesn't exist, create it manually.
Paste the following into claude_desktop_config.json, updating the path to match where you cloned the repo:
{
"mcpServers": {
"my-local-server": {
"command": "node",
"args": [
"C:\\Users\\<YourUsername>\\path\\to\\demo-mcp-01\\src\\index.js"
]
}
}
}
⚠️ On Windows, use double backslashes
\\in the path. Example:"C:\\Users\\John\\Documents\\demo-mcp-01\\src\\index.js"
4. Restart Claude Desktop
Fully quit Claude Desktop (check the system tray → right-click → Quit) and reopen it.
5. Verify the Setup
Open Claude Desktop and go to Settings → Developer. You should see my-local-server listed with a green status indicator showing it is running. If it shows an error or is missing, revisit the config path and restart Claude Desktop.
⚙️ How the Server Starts — No `npm start` Needed
You never need to manually run npm start or keep a terminal open. Claude Desktop launches the server for you automatically.
When Claude Desktop reads your config:
{
"command": "node",
"args": ["C:\\...\\src\\index.js"]
}
It runs node src/index.js as a child process in the background every time Claude Desktop opens. When you close Claude Desktop, it shuts the process down too.
This works because the server uses StdioServerTransport — it communicates via stdin/stdout rather than HTTP or a network port. Claude Desktop pipes messages directly to the process, so there is nothing to manually start or keep alive. Claude Desktop owns the entire process lifecycle.
| Traditional Server | MCP stdio Server | |
|---|---|---|
| Who starts it? | You (npm start) |
Claude Desktop |
| How does it communicate? | HTTP / WebSocket | stdin / stdout |
| Who keeps it alive? | You | Claude Desktop |
| Port needed? | Yes | No |
🔄 How It Works — End-to-End Flow
Here's a walkthrough of a real tool call: "Multiply 12 by 7"
Step 1 — User Prompt
The user sends a message to Claude Desktop:
Use the calculate tool to multiply 12 by 7
Step 2 — Tool Discovery
- Claude used the internal
tool_searchmechanism to locate thecalculatetool by querying"math multiply". - The tool schema was returned with the following parameters:
a→ number (first operand