Skip to main content
Glama

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 build

Usage with Claude Desktop

To use this MCP server with Claude Desktop, you need to add it to your Claude configuration file.

Configuration Steps

  1. Locate your Claude Desktop config file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    • Linux: ~/.config/Claude/claude_desktop_config.json

  2. Add the server configuration:

{
  "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"
      ]
    }
  }
}
  1. Restart Claude Desktop to load the new configuration.

Verifying the Installation

Once configured and Claude Desktop is restarted:

  1. Open a new conversation in Claude

  2. Look for the πŸ”Œ icon or hammer icon indicating MCP tools are available

  3. 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.md

Available 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 clean

Testing with MCP Inspector

You can test the server using the MCP Inspector:

npx @modelcontextprotocol/inspector tsx src/mcpserver/index.ts

This 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 main

Publishing to npm

Prerequisites

  1. Create an npm account at https://www.npmjs.com/signup

  2. 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 public

Note: 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-learning

License

MIT

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Available Tools

1 tool
addaddition toolB

Add two numbers.

ParametersJSON Schema
NameRequiredDescriptionDefault
aYesThe first number to add.
bYesThe second number to add.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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. 1 tool update
    • First observedadd

TDQS

B3.2/5.0

Scored across 1 tool

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count2/5

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.

Completeness1/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A minimal, production-ready MCP server with a simple addition calculator tool that demonstrates integration with the Model Context Protocol.
    6 npm
    1
    MIT
  • F
    license
    C
    quality
    D
    maintenance
    A 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
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    A 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.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    A 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.
    -