Skip to main content
Glama
RemseyMailjard

Rabobank MCP Server Training

README.md
# Rabobank MCP-Server Training

Welcome to the **Rabobank MCP-Server Training** repository. This project contains a fully functional demo [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server built with **TypeScript** that you can use as a starting point during the training.

---

## What is MCP?

The **Model Context Protocol** is an open standard that allows AI assistants (like GitHub Copilot and Claude) to call external tools and data sources in a structured, secure way. An MCP server exposes _tools_, _resources_, and _prompts_ that any MCP-compatible client can discover and invoke.

```
┌──────────────┐   MCP (stdio/SSE)   ┌─────────────────────┐
│  AI Client   │ ◄──────────────────► │  Demo MCP Server    │
│ (Copilot /   │                      │  (this repository)  │
│  Claude …)   │                      └─────────────────────┘
└──────────────┘
```

---

## Demo tools included

| Tool | Description |
|------|-------------|
| `get_exchange_rate` | Returns a (mocked) EUR exchange rate for a given currency code |
| `calculate_mortgage` | Calculates the monthly mortgage payment given principal, annual rate and term |
| `get_branch_info` | Returns contact details for a mock Rabobank branch |

---

## Prerequisites

- [Node.js](https://nodejs.org/) v18 or higher
- npm (comes with Node.js)

---

## Quick start

```bash
# 1. Clone the repository
git clone https://github.com/RemseyMailjard/rabobank-mcp-server-training.git
cd rabobank-mcp-server-training

# 2. Install dependencies
npm install

# 3. Build
npm run build

# 4. Run (stdio)
node build/index.js
```

### Use with VS Code (GitHub Copilot)

The `.vscode/mcp.json` file is already configured. Open the project in VS Code and Copilot will automatically discover the server.

### Use with Claude for Desktop

Add the following entry to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "rabobank-demo": {
      "command": "node",
      "args": ["C:\\path\\to\\rabobank-mcp-server-training\\build\\index.js"]
    }
  }
}
```

---

## Project structure

```
rabobank-mcp-server-training/
├── src/
│   └── index.ts          # MCP server implementation
├── build/                # Compiled output (after npm run build)
├── .vscode/
│   └── mcp.json          # VS Code MCP configuration
├── .github/
│   └── copilot-instructions.md
├── package.json
├── tsconfig.json
└── README.md
```

---

## Exercises

During the training you will:

1. **Explore** the existing tools in `src/index.ts` and understand how they are registered.
2. **Add a new tool** – e.g. `get_interest_rate` that returns savings account interest rates.
3. **Add a resource** – expose a static JSON file with product information.
4. **Add a prompt** – create a reusable prompt template for a customer service scenario.
5. **Connect** the server to GitHub Copilot Chat or Claude for Desktop and test the tools interactively.

---

## Useful links

- [MCP Documentation](https://modelcontextprotocol.io/)
- [TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk)
- [MCP Inspector](https://github.com/modelcontextprotocol/inspector) – GUI for testing MCP servers
- [Claude for Desktop](https://claude.ai/download)

TDQS

A4.1/5.0

Scored across 3 tools

Disambiguation5/5

Each tool targets a distinct function: mortgage calculation, branch info, and exchange rate. No overlap or ambiguity.

Naming Consistency5/5

All tools use a consistent verb_noun pattern (calculate_mortgage, get_branch_info, get_exchange_rate).

Tool Count4/5

3 tools is slightly low but appropriate for a focused training server. Each tool serves a clear purpose without unnecessary complexity.

Completeness4/5

The set covers core banking demo scenarios (mortgage, branch, exchange). Minor gaps like account management exist but are not critical for the training scope.

Maintenance

ActivityStale
ResponsivenessUnresponsive