Mifos X - AI - Model Context Protocol (MCP) for Apache Fineract®

by openMF

25 stars
297 downloads
Not rated
GitHub Website

About

This project provides a Model Context Protocol (MCP) server for the Mifos X Ecosystem, enabling AI agents to access financial data and operations from the Apache Fineract banking backend. It is a standalone, stateless integration tier that works with any MCP-compatible client…

Details

Author
openMF
GitHub stars
25
Downloads
297
Categories
Other

- Multi-language implementations (Go, Java, Python, Rust)
- Stateless design with no user data storage
- RBAC enforced via Fineract’s native permissions
- Data sovereignty – the server makes no external calls
- Universal compatibility with any MCP client
- Up to 102 typed tools in the Go implementation

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Mifos X - AI - Model Context Protocol (MCP) for Apache Fineract®
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Choose an implementation, configure environment variables (copy .env.example and set the Fineract base URL, authentication token, and tenant ID), then build and run the server. For example, with Go: cd go && go build -o mcp-server && ./mcp-server. Use the MCP Inspector (npx @modelcontextprotocol/inspector <command>) to test interactively.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "mifos x - ai - model context protocol (mcp) for apache fineract\u00ae": {
            "mifosx": {
                "command": "jbang",
                "args": [
                    "--quiet",
                    "org.mifos.community.ai.mcp:mcp-server:1.0.0-SNAPSHOT:runner"
                ],
                "env": {
                    "MIFOSX_BASE_URL": "",
                    "MIFOSX_BASIC_AUTH_TOKEN": "",
                    "MIFOS_TENANT_ID": ""
                }
            }
        }
    }
}

McpServers

{
    "mifosx": {
        "command": "jbang",
        "args": [
            "--quiet",
            "org.mifos.community.ai.mcp:mcp-server:1.0.0-SNAPSHOT:runner"
        ],
        "env": {
            "MIFOSX_BASE_URL": "",
            "MIFOSX_BASIC_AUTH_TOKEN": "",
            "MIFOS_TENANT_ID": ""
        }
    }
}

Mifos MCP - Model Context Protocol (MCP)

This project provides Model Context Protocol (MCP) for the Mifos X Ecosystem, enabling AI agents to access financial data and operations.

Implementations are available in:
- Go (Native) — 102 typed tools (high-performance, cloud-native with SSE/Stdio).
- Java (Quarkus) — 38 typed tools (across Backoffice and Recommendations).
- Python (FastMCP) — 49 typed tools (modular domain-driven design).
- Rust — 89 typed tools (high-performance async I/O with exclusive bulk operations).

---

Architecture Overview

The Mifos MCP Server acts as a standalone, stateless integration tier that bridges any AI assistant or agent framework to the Apache Fineract banking backend.

┌──────────────────────────────────────────────┐
│            Apache Fineract / Mifos X          │
└───────────────────────┬──────────────────────┘
                        │ REST API
┌───────────────────────────────▼───────────────────────────────┐
│                 mcp-mifosx (Primary Repo)                     │
│                                                               │
│  ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐  │
│  │   /go (Native)  │ │ /java (Quarkus) │ │/python (FastMCP)│ │  /rust (Tokio)  │  │
│  │                 │ │                 │ │                 │ │                 │  │
│  │ - 102 Tools     │ │ - 38 Tools      │ │ - 49 Tools      │ │ - 89 Tools      │  │
│  │ - Go Routines   │ │ - Backoffice    │ │ - Modular Design│ │ - Async I/O     │  │
│  │ - SSE / Stdio   │ │ - Recommend.    │ │                 │ │ - Bulk Actions  │  │
│  └────────┬────────┘ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘  │
└───────────┴───────────────────┼───────────────────┼───────────────────┴───────────┘
                        │ MCP Protocol (stdio / SSE)
          ┌─────────────┼──────────────┐
          ▼             ▼              ▼
    Mifos X WebApp   Claude Code     n8n / Custom
    AI Assistant     (claude.ai)     Workflow Agent
    (your client)   (external)       (your client)

This repository is framework-agnostic. The client (LLM brain, UI, memory) lives in a separate repository. Any MCP-compatible system can plug in.

---

Implementation Synchronization

While this repository hosts two different programming languages, they are kept in functional parity where possible to ensure a consistent experience.

How they "Sync":

1. Tool Specification: All implementations aim to expose the same core banking tools. - Go currently leads with 102 tools, featuring advanced cloud-native features and SSE. - Rust provides 89 tools, uniquely featuring high-concurrency Bulk Operations and robust "Fetch-and-Merge" state management. - Python provides 49 tools using a modular domain design. - Java provides 38 tools (21 for Backoffice operations and 17 for User Recommendations). 2. API Alignment: All implementations are built against the same Apache Fineract REST API. They share identical logic for field routing. 3. Stateless Parity: All implementations follow a strictly stateless design. None of the servers store user data, PII, or AI memory. 4. Testing Protocol: Shared "Smoke Tests" ensure that all implementations return identical, predictable JSON structures to the LLM.

---

Project Structure

This repository is structured to support multiple implementations and client integrations.

.
├── README.md               # Root entry point & cross-implementation guide
├── go/                     # Go Implementation (Native / High-Performance)
│   ├── tools/              # 102 Domain-specific tools (SSE/Stdio)
│   ├── server/             # Dual-transport logic (HTTP/SSE & Stdio)
│   └── main.go             # Server entry point
├── rust/                   # Rust Implementation (Tokio/Reqwest)
│   ├── src/                # Multi-threaded typed tools & bulk execution logic
│   └── Cargo.toml          # Rust package dependencies
├── python/                 # Python Implementation (FastMCP)
│   ├── mcp_server.py       # Main entry point for the MCP server
│   ├── tools/              # Domain-specific banking tools (Loans, Clients, etc.)
│   └── core/               # API Gateway handlers
└── java/                   # Java Implementation (Quarkus)
    ├── backoffice/         # Core banking tools
    └── userrecommendation/ # Recommendation engine tools

---

Getting Started

1. Choose Your Implementation

Go (Native & Cloud-Ready)

Prerequisites: Go 1.21+

Steps:
1. Configure Environment:
Copy go/.env.example to go/.env and update credentials.
2. Build and Run:

   cd go
go build -o mcp-server .
./mcp-server

3. SSE Mode (Optional):
Define PORT=8080 in .env to switch from Stdio to SSE microservice mode.

Rust (High-Performance)

Prerequisites: Rust (Cargo)

Steps:
1. Configure Environment:
Copy rust/.env.example to rust/.env and update credentials.
2. Build and Run:

   cd rust
cargo build --release
./target/release/mcp-rust-mifosx

Java (Quarkus)

Prerequisites: JDK 21+, Maven

Steps:
1. Configure Environment Variables:

   export MIFOSX_BASE_URL="https://your-fineract-instance"
export MIFOSX_BASIC_AUTH_TOKEN="your_api_token"
export MIFOS_TENANT_ID="default"

2. Run via JBang:
   jbang --quiet org.mifos.community.ai:mcp-server:1.0.0-SNAPSHOT:runner

3. Build Native Executable (Optional):
   cd java/backoffice
./mvnw package -Dnative
./target/mcp-server-1.0.0-SNAPSHOT-runner

Python (FastMCP)

Prerequisites: Python 3.10+, pip

Steps:
1. Navigate to the Python directory:

   cd python

2. Install dependencies:
   pip install -r requirements.txt

3. Configure Environment:
Copy .env.example to .env and fill in your details.
4. Run the Server:
   python mcp_server.py

---

Available Tools Summary

The exact number and categorization of tools depend on the core server implementation deployed:

Go (102 Tools)

The most feature-complete implementation with native concurrent routines. - Clients & Identities: 16 Tools - Documents & Reports: 26 Tools - Loans & Savings: 23 Tools - Groups & Centers: 13 Tools - Bulk & Composite: 19 Tools (Cloud-Native) - Accounting & Stats: 5 Tools

Rust (89 Tools)

Built for asynchronous scale, bulk processing, and robust state-aware updates. - Clients & Collaterals: 25 Tools - Loans & Collaterals: 19 Tools - Groups, Savings & Centers: 23 Tools - Staff, Accounting & Charges: 11 Tools - Bulk Operations: 11 Tools (Exclusive to Rust)

Python (49 Tools)

Domain-driven design bridging AI directly to Fineract. - Clients & Groups: 16 Tools - Loans & Savings: 20 Tools - Staff & Accounting: 13 Tools

Java (38 Tools)

Enterprise suite categorized between Backoffice and recommendation engines. - Backoffice Operations: 21 Tools (Covers Clients, Loans, Savings) - User Recommendations: 17 Tools (Exclusive to Java)

---

Testing with MCP Inspector

Use the MCP Inspector to test and debug your server interactively:

npx @modelcontextprotocol/inspector <command_to_run_yours_server>

For Python:

npx @modelcontextprotocol/inspector python python/mcp_server.py

---

Examples - Backoffice Agent

| Video URL | Title | Prompt | Implementation |
| :--- | :--- | :--- | :--- |
| https://youtu.be/MDQKRoz5GKw?si=69X77C58nFhy6Ioh | Join and Try the Mifos MCP | Go to https://ai.mifos.community | Go / Java / Python / Rust |
| https://youtu.be/y5MR3j8EGM4?si=zXTurBNql4xF5CGY | Create Client | Create client using name: OCTAVIO PAZ, email: octaviopaz@mifos.org, etc. | Go / Java / Python / Rust |
| https://youtu.be/qJsC25cd-1g?si=qQzX8DeOe0_2qhfr | Activate Client | Activate the client OCTAVIO PAZ | Go / Java / Python / Rust |
| https://youtu.be/X1g_nVDsRnM?si=K7vsAN7gOLEC2OG0 | Add Address to Client | Add the address to the client OCTAVIO PAZ (Plaza de Loreto) | Java |
| https://youtu.be/xeL9_sycwA8?si=AtV6F4WhTvcDspSp | Add Personal Reference | Add Maria Elena Ramírez as sister to OCTAVIO PAZ | Java |
| https://youtu.be/IKGMeAJBAOk?si=N27rE64dn7qxmMBk | Create a Loan Product | Create default loan product named "SILVER" (10% interest) | Java |
| https://youtu.be/5EdgUyLyP0w?si=L0UdYjXlyYF6faL5 | Create Loan Application | Apply for individual loan for OCTAVIO PAZ using SILVER | Go / Java / Python / Rust |
| https://youtu.be/2ioN_8z_uaY?si=ZTB5rCrgS2jTpC4- | Approve Loan | Approve the loan account | Go / Java / Python / Rust |
| https://youtu.be/dDebmrn4lB0?si=0GTf4asCBHnsu27f | Disbursement of Loan | Disburse loan account using Money Transfer | Go / Java / Python / Rust |
| https://youtu.be/N3wnyJCh_Ik?si=gSy5LrJdFF2kfzHd | Make Loan Repayment | Make a repayment for account 6 (Amount: 6687.59) | Go / Java / Python / Rust |
| https://youtu.be/bOuTj97hyqU?si=9bpno4Kp0II1IfPY | Create Savings Product | Create default savings product named "WALLET" | Java |
| https://youtu.be/l-Z7LlE3AnM?si=yQM4lloJL8Hu6yv8 | Create Savings App | Apply for savings account for OCTAVIO PAZ using WALLET | Go / Java / Python / Rust |
| https://youtu.be/Q5ExlhalG8U?si=TwbsUZX30G3JeNJy | Approve Savings App | Approve the savings account with note "MY FIRST APPROVAL" | Go / Java / Python / Rust |
| https://youtu.be/DJgUiRYK-rE?si=YatfVgOgpbP4wV91 | Activate Savings | Activate the savings account | Go / Java / Python / Rust |
| https://youtu.be/Od7KFqktUtI?si=gPJNlLOB_7D74QdS | Make a Deposit | Create DEPOSIT of 5000 for account 1 | Go / Java / Python / Rust |
| https://youtu.be/9OL6N5wKG7c?si=R50RjTK6GI_ODuUs | Make a Withdrawal | Create WITHDRAWAL of 2000 for account 1 | Go / Java / Python / Rust |

---

Security & Guardrails

- Universal Compatibility — Works with Claude, GPT-4, Qwen, or any MCP client. - Data Sovereignty — The server makes no external calls. - RBAC Enforced — Every action is validated against Fineract's native permissions.

---

Contact & Community

- Mifos Community: https://mifos.org
- Mifos MCP (Docker): https://hub.docker.com/r/openmf/mifos-mcp
- Chatbot Demo: https://ai.mifos.community

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.