MCP Learning
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Learningadd 42 and 17"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Learning
A Model Context Protocol (MCP) server that provides arithmetic tools for AI assistants like Claude.
Features
Add Tool: Add two numbers together with structured input/output
Related MCP server: MCP Server Deployment Demo
Installation
Prerequisites
Node.js 18 or higher
npm, yarn, or pnpm
From Git Repository
# Clone the repository
git clone https://github.com/sadjad-chrono/mcp-learning.git
cd mcp-learning
# Install dependencies
pnpm install
# or
npm install
# Build the project
pnpm build
# or
npm run buildUsage with Claude Desktop
To use this MCP server with Claude Desktop, you need to add it to your Claude configuration file.
Configuration Steps
Locate your Claude Desktop config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Add the server configuration:
Option 1: Using npx (recommended after publishing to npm)
{
"mcpServers": {
"mcp-learning": {
"command": "npx",
"args": [
"-y",
"@sadjadteh-chrono/mcp-learning"
]
}
}
}Option 2: Using the built package from cloned repo
After building the project, add this to your claude_desktop_config.json:
{
"mcpServers": {
"mcp-learning": {
"command": "node",
"args": [
"/absolute/path/to/mcp-learning/dist/mcpserver/index.js"
]
}
}
}Option 3: Development mode with tsx
{
"mcpServers": {
"mcp-learning": {
"command": "npx",
"args": [
"-y",
"tsx",
"/absolute/path/to/mcp-learning/src/mcpserver/index.ts"
]
}
}
}Restart Claude Desktop to load the new configuration.
Verifying the Installation
Once configured and Claude Desktop is restarted:
Open a new conversation in Claude
Look for the π icon or hammer icon indicating MCP tools are available
Try using the add tool by asking Claude to "add 5 and 3"
Development
Project Structure
mcp-learning/
βββ src/
β βββ mcpserver/
β βββ index.ts # Main MCP server implementation
βββ dist/ # Compiled JavaScript (generated)
βββ package.json
βββ tsconfig.json
βββ README.mdAvailable Scripts
# Build the project
pnpm build
# Run in development mode
pnpm dev
# Run in development mode with auto-reload
pnpm dev:watch
# Run with debugger
pnpm debug
# Clean build artifacts
pnpm cleanTesting with MCP Inspector
You can test the server using the MCP Inspector:
npx @modelcontextprotocol/inspector tsx src/mcpserver/index.tsThis will open a web interface where you can interact with your MCP server and test tools.
Adding New Tools
To add new tools to your MCP server, edit src/mcpserver/index.ts:
server.registerTool(
"tool-name",
{
title: "Tool Title",
description: "What the tool does",
inputSchema: {
param1: z.string().describe("Description of param1"),
// Add more parameters
},
outputSchema: { result: z.string() },
},
async ({ param1 }) => {
// Tool implementation
return {
content: [{ type: "text", text: "result" }],
structuredContent: { result: "result" },
};
}
);Publishing to Git
# Initialize git repository (if not already done)
git init
# Add all files
git add .
# Create initial commit
git commit -m "Initial commit: MCP learning server"
# Add remote repository
git remote add origin https://github.com/sadjad-chrono/mcp-learning.git
# Push to GitHub
git push -u origin mainPublishing to npm
Prerequisites
Create an npm account at https://www.npmjs.com/signup
Login to npm:
npm login
Publish Steps
# Build the package
pnpm build
# Publish to npm (scoped packages are public by default for free accounts)
npm publish --access publicNote: The --access public flag is required for scoped packages on free npm accounts.
Then users can install with:
npm install -g @sadjadteh-chrono/mcp-learning
# or use with npx
npx @sadjadteh-chrono/mcp-learningLicense
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Available Tools
1 tooladdaddition toolB
Add two numbers.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | The first number to add. | |
| b | Yes | The second number to add. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Add two numbers' implies a mathematical operation but reveals nothing about error handling, precision limits, rate limits, authentication needs, or return format. For a tool with zero annotation coverage, this is insufficient behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise at just three words ('Add two numbers'). It's front-loaded with the core functionality and contains zero wasted words. Every element earns its place, making it maximally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (basic arithmetic), 100% schema coverage, and the presence of an output schema (which handles return values), the description is minimally adequate. However, it lacks context about behavioral traits, error conditions, or usage scenarios that would be helpful despite the structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with both parameters ('a' and 'b') fully documented in the schema. The description adds no additional parameter semantics beyond what the schema already provides. According to the rules, when schema coverage is high (>80%), the baseline score is 3 even with no parameter info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Add two numbers' clearly states the tool's function with a specific verb ('Add') and resource ('two numbers'). It's unambiguous about what the tool does. However, with no sibling tools mentioned, there's no opportunity to distinguish from alternatives, preventing a perfect score of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, prerequisites, or contextual constraints. It simply states what the tool does without any usage instructions. This is minimal guidance, scoring above 1 only because it's not misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- First observed
add
TDQS
Scored across 1 tool
With only one tool, there is no possibility of confusion or overlap between tools, as there are no other tools to compare it to. The tool's purpose is clearly defined and distinct by default.
Since there is only one tool, naming consistency is inherently perfectβthere are no other names to be inconsistent with. The tool name 'add' follows a simple verb pattern.
A single tool is too few for a server named 'MCP Learning', which suggests a broader educational or learning purpose. This minimal toolset feels thin and inadequate for covering any meaningful domain beyond basic arithmetic.
The tool surface is severely incomplete for a learning domain; it only supports adding two numbers, lacking any other operations (e.g., subtraction, multiplication, division) or educational features. This makes it impossible to handle typical learning tasks or workflows.
Maintenance
Related MCP Connectors
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
MCP server for AI dialogue using various LLM models via AceDataCloud
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Nifty's MCP server β exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA minimal, production-ready MCP server with a simple addition calculator tool that demonstrates integration with the Model Context Protocol.6 npm1MIT
- FlicenseCqualityDmaintenanceA demonstration MCP server that provides a simple addition tool for learning how to create and deploy servers following the Model-Context-Protocol specification. Serves as a basic example for developers getting started with MCP server development.1-
- FlicenseNot gradedqualityDmaintenanceA demonstration MCP server that exposes basic arithmetic tools (add, subtract, ping) through FastAPI and shows how to integrate them with OpenAI's tool-calling API for LLM orchestration.-
- FlicenseNot gradedqualityCmaintenanceA sample MCP server that provides basic arithmetic tools like addition, subtraction, multiplication, and division. It serves as a demonstration for implementing the Model Context Protocol and connecting custom tools to clients like Claude Desktop.-