Skip to main content
Glama
tife89

KfW Förderungsmittel MCP Server

by tife89

KfW Funding MCP Server

An MCP (Model Context Protocol) server for querying KfW funding programs for energy-efficient renovations of residential buildings in Germany.

Part of the "Sanierungskompass" (Renovation Compass) platform - connecting homeowners with energy consultants and current KfW financing options.

What is KfW funding?

The Kreditanstalt für Wiederaufbau (KfW) offers low-interest loans and grants for:

  • Energy-efficient building renovation (BEG - Federal Funding for Efficient Buildings)

  • Heating replacement and renewable heat sources

  • Individual measures such as windows, insulation, and ventilation work

  • Complete renovations to KfW Efficiency House standards

Related MCP server: FluentLab Funding Assistant

Features

  • 4 MCP Tools for KfW data queries

  • Current KfW program data (2025/2026)

  • Static fallback database with common programs

  • Interest rates and loan conditions with calculation

  • Repayment subsidy determination (grant-financed loan portion)

  • Type-safe implementation in TypeScript

Installation

NPM Package

npm install @sanierungskompass/kfw-mcp

From Source

git clone https://github.com/timfellendorf/kfw-mcp.git
cd kfw-mcp
npm install
npm run build

Usage

Start as an MCP Server

npm start
# oder für Entwicklung:
npm run dev

The server listens on Stdin/Stdout in the MCP protocol format.

Configure with Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or the equivalent on Windows/Linux:

{
  "mcpServers": {
    "kfw-foerdermittel": {
      "command": "node",
      "args": ["/pfad/zu/kfw-mcp/dist/index.js"]
    }
  }
}

Then activate the server in Claude.

With Claude Code

# Server im Hintergrund starten
npm run dev &

# In Claude Code verwenden:
# - Claude erkennt verfügbare Tools automatisch
# - Tools können direkt in Prompts genutzt werden

Available Tools

1. kfw_list_programs

Lists all available KfW programs for residential building renovation.

Input: No parameters required

Output: Array of programs (ID, Name, Type, Category, Description)

Example:

Claude: "Zeige mir alle verfügbaren KfW-Programme"

Server antwortet mit:
[
  {
    "id": "358",
    "name": "KfW 358 - Ergänzungskredit für Einzelmaßnahmen",
    "type": "Kredit",
    "category": "BEG - Einzelmaßnahmen",
    "description": "Zinsgünstiger Kredit für einzelne energetische Maßnahmen an Wohngebäuden",
    "maxLoanAmount": 120000,
    "interestRate": {
      "current": 2.75,
      "unit": "% p.a. effektiv"
    }
  },
  ...
]

2. kfw_get_program_details

Retrieves detailed information about a specific KfW program.

Parameters:

  • program_number (string, required): KfW program number (e.g., "358", "261", "458", "459")

Output: Detailed program information

Example:

Claude: "Gib mir Details zum KfW 358 Programm"

Server antwortet mit:
{
  "id": "358",
  "name": "KfW 358 - Ergänzungskredit für Einzelmaßnahmen",
  "type": "Kredit",
  "description": "Zinsgünstiger Kredit für einzelne energetische Maßnahmen an Wohngebäuden",
  "maxLoanAmount": 120000,
  "eligibleMeasures": [
    "Fenstertausch",
    "Türentausch",
    "Dachdämmung",
    "Wanddämmung",
    "Kellerdeckendämmung",
    "Heizungsanlage",
    "Lüftungsanlage",
    "Solarthermieanlage"
  ],
  "interestRate": {
    "current": 2.75,
    "unit": "% p.a. effektiv"
  },
  "maxRepaymentPeriod": 20,
  "minRepaymentPeriod": 4,
  "tilgungszuschuss": 0,
  "notes": "Für einzelne energetische Sanierungsmaßnahmen"
}

3. kfw_check_eligibility

Checks which KfW programs are suitable for a specific renovation measure.

Parameters:

  • measure (string, required): Renovation measure (e.g., "window replacement", "roof insulation", "heating replacement", "heat pump")

  • building_type (string, optional): Building type (e.g., "residential building")

  • is_owner_occupied (boolean, optional): Owner-occupied?

Output: Applicable programs with recommendations

Example:

Claude: "Welche KfW-Programme gibt es für Wärmepumpen?"

Server antwortet mit:
{
  "measure": "Wärmepumpe",
  "applicablePrograms": [
    {
      "id": "458",
      "name": "KfW 458 - Heizungsförderung",
      "type": "Zuschuss",
      "eligibilityNotes": "30% Basis + bis zu 40% Bonuszuschläge = max 70%"
    },
    {
      "id": "359",
      "name": "KfW 359 - Kredit für Sanierungsmaßnahmen",
      "type": "Kredit",
      "eligibilityNotes": "Umfassende Sanierung mit Effizienzhaus-Standard"
    }
  ],
  "matchCount": 2,
  "recommendations": [
    "Zuschuss- und Kreditprogramme verfügbar - vergleichen Sie die Konditionen.",
    "Zuschuss-Programme erfordern keine Rückzahlung.",
    "Kredit-Programme bieten zinsgünstige Darlehen."
  ]
}

4. kfw_calculate_funding

Calculates estimated loan installments and funding amounts for a KfW program.

Parameters:

  • program (string, required): KfW program number (e.g., "358", "458")

  • loan_amount (number, required): Loan amount/grant amount in EUR

  • term_years (number, optional): Term in years (Default: 15 years for loans)

Output: Calculation with monthly installment, total burden, interest rate, and repayment subsidy

Example:

Claude: "Berechne die monatliche Rate für einen 50.000€ Kredit im KfW 358 über 15 Jahre"

Server antwortet mit:
{
  "program": "358",
  "loanAmount": 50000,
  "termYears": 15,
  "type": "Kredit",
  "monthlyPayment": 351.24,
  "totalPayment": 63223.0,
  "totalInterest": 13223.0,
  "effectiveInterestRate": 2.75,
  "tilgungszuschuss": 0,
  "netLoanAmount": 50000,
  "notes": "Zinssatz: 2.75% p.a. effektiv"
}

For grants (e.g., KfW 458):

Claude: "Berechne den Zuschuss für eine 15.000€ Wärmepumpen-Anlage im KfW 458"

Server antwortet mit:
{
  "program": "458",
  "loanAmount": 15000,
  "type": "Zuschuss",
  "monthlyPayment": 0,
  "tilgungszuschuss": 10500,
  "netLoanAmount": 4500,
  "subsidyPercentage": 70,
  "notes": "70% Zuschuss = 10500€ nicht rückzahlbar"
}

Supported KfW Programs

Number

Name

Type

Category

358

Supplementary loan for individual measures

Loan

BEG Individual Measures

359

Loan for renovation measures

Loan

BEG Complete Renovation

261

Residential building efficiency house loan

Loan

BEG Efficiency House

458

Heating subsidy

Grant

BEG Heating

459

Grant for individual measures

Grant

BEG Individual Measures

(Other programs like 455, 440, 461 as legacy programs in the dataset)

Program Logic

Data Acquisition

  1. Primary: Fallback to static database (src/data/kfw-programs.json)

  2. Secondary: Attempt to scrape live data from https://www.kfw.de/inlandsfoerderung/Privatpersonen/Bestandsimmobilien/

  3. In case of scraping error → Static data is used automatically

Funding Amount Calculation

For loans:

  • Monthly installment: Standardized annuity formula with compound interest

  • Repayment subsidy is deducted from the loan base

  • Effective interest rate according to KfW specifications

For grants:

  • Percentage subsidy on total costs

  • KfW 458: Base 30% + bonus surcharges (up to 70% max)

  • KfW 459: Base 15% + standards (up to 25% max)

Development

Project Structure

kfw-mcp/
├── src/
│   ├── index.ts                 # MCP Server Entry Point
│   ├── tools/
│   │   ├── listPrograms.ts      # Tool 1: Programmübersicht
│   │   ├── programDetails.ts    # Tool 2: Details
│   │   ├── checkEligibility.ts  # Tool 3: Eignung
│   │   └── calculateFunding.ts  # Tool 4: Berechnung
│   ├── utils/
│   │   └── scraper.ts           # Web-Scraping-Hilfsfunktionen
│   └── data/
│       └── kfw-programs.json    # Statische Programmdatenbank
├── dist/                        # Kompilierte JavaScript-Dateien
├── package.json
├── tsconfig.json
└── README.md

Build and Test

# TypeScript compilieren
npm run build

# Server starten
npm start

# Entwicklungsmodus (mit Auto-Rebuild)
npm run dev

Update Data

Program and interest rate data can be updated in src/data/kfw-programs.json:

{
  "programs": [
    {
      "id": "358",
      "name": "KfW 358 - ...",
      "interestRate": { "current": 2.75, "unit": "% p.a. effektiv" },
      ...
    }
  ]
}

License

MIT License - See LICENSE file

Contact

Tim Fellendorf timfellendorf@googlemail.com

Part of the Sanierungskompass project to support energy-efficient building renovation in Germany.

A
license - permissive license
Not graded
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides large language models with access to news and information about renewable energy projects in Germany, allowing filtering by location, topic (solar, wind, hydrogen), and date range.
  • A
    license
    A
    quality
    D
    maintenance
    Provides access to FluentLab's funding database, enabling users to search for funding opportunities and retrieve document checklists required for specific funding programme applications.
    1
    13
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    87+ specialized tools for German and European energy data. Direct AI access to Marktstammdatenregister (MaStR), ENTSO-E, Redispatch 2.0, and Grid Operations for utilities and datacenters.
    2
    GPL 3.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides programmatic access to official German Bundestag parliamentary data, enabling LLMs to answer questions about legislation, voting records, and members.
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Live EU funding data in your AI: grant calls, programmes, consortium partners, VCs, incubators.

  • German Handelsregister + Austrian Firmenbuch for AI agents: master data, financials & ratios.

  • Broker-only credit/lending discovery shim for AI agents

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tife89/kfw-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server