TypeScript MCP Server
A simple Model Context Protocol server implemented in TypeScript that enables communication with client applications (like Cursor) over standard input/output and includes a basic calculator tool as an example.
README Documentation
TypeScript MCP Server
This project is a simple Model Context Protocol (MCP) server built with TypeScript. It is designed to be a starting point for creating your own MCP servers and includes a basic calculator
tool as an example.
The server is configured to communicate with a client application (like Cursor) over standard input/output (stdio).
Features
- MCP Server: Implements the Model Context Protocol standard via
stdio
. - Calculator Tool: A safe
calculator
tool that evaluates mathematical expressions. - TypeScript: Fully written in TypeScript with strict type checking.
- Well-Documented: Code is documented, and a full
SETUP.md
is included. - Ready to Run: Includes npm scripts and a batch file for easy building and execution.
Prerequisites
Installation
-
Clone the repository:
git clone https://github.com/KyleAnthonyMcAdam/Typescript-mcp.git cd Typescript-mcp
-
Install dependencies: Run the following command in the project root to install all required packages.
npm install
Usage
Development Mode
For development, you can run the server using nodemon
, which will automatically restart the server whenever you make changes to the source code. This is useful for testing tools without needing to connect to a full client.
npm run dev
Production / Client Mode
For the server to be used by a client application (like Cursor), you must first build the project.
-
Build the project: This command compiles all TypeScript files from the
src
directory into JavaScript files in thedist
directory.npm run build
-
Run the server from a client: The server is not meant to be run directly by the user in the terminal. Instead, it must be started by an MCP client application.
Connecting with a Client
To connect this server with a client like Cursor, you must add it to the client's configuration file (e.g., a global mcp.json
). This configuration tells the client how to launch your server.
Crucially, the command
or args
in the configuration must use an absolute path to the launch script or server file. This path will be different on every machine.
For detailed instructions on how to set up the project from scratch and configure a client, please see the SETUP.md file.
Example run-server.bat
This project includes a run-server.bat
file which simplifies the process of running the server from a client on Windows. It ensures that the Node.js server starts with the correct settings.
Example: Calling the Calculator Tool
Once the client is configured and connected, it can call the calculator
tool with a request like this:
{
"jsonrpc": "2.0",
"method": "tool/run",
"params": {
"name": "calculator",
"arguments": {
"expression": "2 * (10 + 5)"
}
},
"id": "request-1"
}
The server will respond with the calculated result.