Quick Start Guide
Follow this guide to build a simple Calculator Tool MCP server in just a few minutes.
What you'll build: A functional MCP server with a calculator tool that can perform basic arithmetic operations.
Time required: ~10 minutes
Prerequisites
Before you begin, make sure you have:
- Node.js 16.0.0 or later
- npm or yarn
- TRMX CLI installed (see Installation Guide)
- Basic JavaScript knowledge
Step 1: Create a New MCP Project
Start by creating a new MCP project using the TRMX CLI:
# Create a new project with the JavaScript template
trmx init my-calculator-mcp --template javascript
# Navigate to the project directory
cd my-calculator-mcp
# Install dependencies
npm install
Step 2: Create the Calculator Tool
Create a new file src/tools/calculator.js
with the following code:
// src/tools/calculator.js
export const calculatorTool = {
name: 'calculator',
description: 'Performs basic arithmetic operations',
parameters: {
type: 'object',
properties: {
operation: {
type: 'string',
enum: ['add', 'subtract', 'multiply', 'divide'],
description: 'The operation to perform',
},
a: {
type: 'number',
description: 'First operand',
},
b: {
type: 'number',
description: 'Second operand',
},
},
required: ['operation', 'a', 'b'],
},
execute: async ({ operation, a, b }) => {
switch (operation) {
case 'add': return { result: a + b };
case 'subtract': return { result: a - b };
case 'multiply': return { result: a * b };
case 'divide':
if (b === 0) throw new Error('Division by zero');
return { result: a / b };
default:
throw new Error(`Unknown operation: ${operation}`);
}
},
};
Step 3: Register the Tool
Now, register the tool in src/tools/index.js
:
// src/tools/index.js
import { calculatorTool } from './calculator';
export const tools = [
calculatorTool,
// Other tools...
];
Step 4: Start Your MCP Server
Start your MCP server in development mode:
# Start the server
npm run dev
You should see a message that your MCP server is running on http://localhost:3000
.
💡 The development server automatically reloads when you make changes to your code.
Step 5: Test the Calculator Tool
Let's test the calculator tool using the TRMX CLI:
# In a new terminal window
trmx test --server http://localhost:3000 --tool calculator --args '{"operation":"add","a":5,"b":3}'
You should see a successful response like this:
{
"result": 8
}
Try different operations:
Multiply
trmx test --server http://localhost:3000 --tool calculator --args '{"operation":"multiply","a":4,"b":7}'
Output:
{
"result": 28
}
Subtract
trmx test --server http://localhost:3000 --tool calculator --args '{"operation":"subtract","a":10,"b":6}'
Output:
{
"result": 4
}
Divide
trmx test --server http://localhost:3000 --tool calculator --args '{"operation":"divide","a":20,"b":5}'
Output:
{
"result": 4
}
Step 6: Create a Simple Client Application
Let's create a simple client application to use our calculator. Create a new file client.js
in the project root:
// client.js
const { MCPClient } = require('@trmx/client');
async function main() {
// Create an MCP client
const client = new MCPClient({
serverUrl: 'http://localhost:3000',
});
// List available tools
const tools = await client.request({ method: 'tools/list' });
console.log('Available tools:', tools.result);
// Call the calculator tool
const result = await client.request({
method: 'tools/call',
params: {
name: 'calculator',
arguments: {
operation: 'multiply',
a: 6,
b: 7,
},
},
});
console.log('Calculation result:', result.result);
}
main().catch(console.error);
Run the client:
node client.js
You should see output like this:
Available tools: [
{
name: 'calculator',
description: 'Performs basic arithmetic operations',
parameters: { /* parameter definition */ }
}
]
Calculation result: { result: 42 }
Step 7: Connect to an AI Model
Now, let's create an application that connects our MCP server to an AI model. First, install the required dependencies:
npm install openai dotenv
Create a .env
file in your project root:
OPENAI_API_KEY=your_openai_api_key_here
Create a file ai-client.js
:
// ai-client.js
const { MCPClient } = require('@trmx/client');
const { OpenAI } = require('openai');
require('dotenv').config();
async function main() {
// Create an MCP client
const mcpClient = new MCPClient({
serverUrl: 'http://localhost:3000',
});
// Create an OpenAI client
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
});
// Get tools from MCP server
const toolsResponse = await mcpClient.request({ method: 'tools/list' });
const tools = toolsResponse.result.map(tool => ({
type: 'function',
function: {
name: tool.name,
description: tool.description,
parameters: tool.parameters,
},
}));
// Chat with the AI model
const messages = [
{ role: 'system', content: 'You are a helpful assistant with access to a calculator tool.' },
{ role: 'user', content: 'What is 123 multiplied by 456?' },
];
const response = await openai.chat.completions.create({
model: 'gpt-4-turbo',
messages,
tools,
tool_choice: 'auto',
});
const responseMessage = response.choices[0].message;
console.log('AI response:', responseMessage);
// Handle tool calls
if (responseMessage.tool_calls) {
const toolCall = responseMessage.tool_calls[0];
console.log('Tool call:', toolCall);
// Parse the arguments
const args = JSON.parse(toolCall.function.arguments);
// Call the MCP server
const result = await mcpClient.request({
method: 'tools/call',
params: {
name: toolCall.function.name,
arguments: args,
},
});
console.log('Tool result:', result);
// Send the result back to the AI
messages.push(responseMessage);
messages.push({
role: 'tool',
tool_call_id: toolCall.id,
content: JSON.stringify(result),
});
// Get the final response
const finalResponse = await openai.chat.completions.create({
model: 'gpt-4-turbo',
messages,
});
console.log('Final AI response:', finalResponse.choices[0].message.content);
}
}
main().catch(console.error);
Run the AI client:
node ai-client.js
If everything is set up correctly, you should see the AI model call your calculator tool to compute 123 × 456 and return the answer.
What's Next?
Congratulations! You've successfully built your first MCP server with a calculator tool and connected it to an AI model. Here are some next steps to explore:
Create More Tools
Add more tools to your MCP server like a weather API, data retrieval, etc. Learn More
Add Resources
Learn how to add resources to your MCP server to provide data access Explore Resources
Deploy Your MCP
Deploy your MCP server to production Deployment Guide