ModelContextProtocol Starter
STDIOA minimal ModelContextProtocol server template for building AI assistant tools.
A minimal ModelContextProtocol server template for building AI assistant tools.
A minimal ModelContextProtocol server template for building AI assistant tools. This starter provides a basic structure for creating MCP tools that can be used with AI assistants like Claude.
Download and install Claude desktop app from claude.ai/download
Clone the repo, install dependencies and build:
npm install
npm run build
echo '{ "mcpServers": { "mcp-starter": { "command": "node", "args": ["'$PWD'/dist/index.cjs"] } } }' > ~/Library/Application\ Support/Claude/claude_desktop_config.json
This should result in an entry in your claude_desktop_config.json
like:
"mcpServers": { "mcp-starter": { "command": "node", "args": ["/Users/matt/code/mcp-starter/dist/index.cjs"] } }
If you have existing MCP servers, add the mcp-starter
block to your existing config. It's an important detail that the args
is the path to <path_to_repo_on_your_machine>/mcp-starter/dist/index.cjs
.
Restart Claude Desktop.
Look for the hammer icon with the number of available tools in Claude's interface to confirm the server is running.
If this is all working, you should be able to develop your MCP server using npm run dev
and test it in Claude. You'll need to restart Claude each time to restart the MCP server.
For development and debugging purposes, you can use the MCP Inspector tool. The Inspector provides a visual interface for testing and monitoring MCP server interactions.
Visit the Inspector documentation for detailed setup instructions.
To test locally with Inspector:
npm run inspect
To build on file changes run:
npm run watch
Or run both the watcher and inspector:
npm run dev
Once you're ready to distribute your server, it's simple!
Set up an NPM account.
Run npm publish
. This will publish a package using the project name in package.json
Once published, others can install the server with a config entry like:
"mcpServers": {
"<your-package-name>": {
"command": "npx",
"args": ["<your-package-name>"]
}
}
The server provides:
hello_tool
: A simple example tool that takes a name parameter and returns a greetingTo add new tools:
index.ts
ListToolsRequestSchema
handlerCallToolRequestSchema
handlerSee the hello_tool
implementation as an example.