MifosX Self Service MCP
OfficialProvides tools for interacting with the Apache Fineract (MifosX) Self-Service API, enabling AI agents to manage banking operations such as authentication, client management, beneficiaries, loans, savings, transfers, and more.
Click on "Install 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., "@MifosX Self Service MCPShow my savings accounts"
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.
MifosX Self Service MCP
MifosX Self Service MCP is a Model Context Protocol (MCP) server built using FastMCP (Python). It exposes a set of AI-callable tools that allow MCP-compatible clients (such as Claude Desktop or DeepChat) to securely interact with the Apache Fineract / MifosX Self-Service APIs.
This project enables AI-driven banking workflows such as authentication, account access, beneficiary management, loans, savings, and transfers — while keeping all sensitive logic on the server side.
Features
Register new self-service users.
Confirm user registration.
User login and authentication.
Manage client information.
Manage beneficiaries (add, list, update, delete).
View client accounts and transactions.
Manage loans (view products, applications, transactions, charges).
Manage savings accounts (products, applications, transactions, charges).
Manage guarantors for loans.
Manage share accounts and products.
Register for push notifications.
Perform third-party account transfers.
Related MCP server: ABANCA MCP Server
Architecture
The MCP server acts as a secure bridge between your AI client and the Mifos/Fineract backend.
graph LR
A[AI Client] -- MCP Protocol --> B[FastMCP Server]
B -- REST API --> C[MifosX / Fineract]
C -- Data --> B
B -- Context --> AProject Structure
The codebase is organized into a modular, maintainable structure:
mcp-mifosx-self-service/
│
├── main.py # MCP server entry point
├── mcp_app.py # FastMCP app initialization
│
├── config/
│ └── config.py # Environment-based configuration
│
├── routers/ # MCP tools grouped by domain
│ ├── auth_tools.py # User registration & authentication
│ ├── client_tools.py # Client information & accounts
│ ├── beneficiary_tools.py # Beneficiary management
│ ├── transfer_tools.py # Third-party transfers
│ ├── loan_tools.py # Loan products & accounts
│ ├── savings_tools.py # Savings accounts & products
│ ├── guarantor_tools.py # Loan guarantor management
│ ├── shares_tools.py # Share accounts & products
│ └── notification_tools.py # Push notification registration
│
├── schemas/ # Pydantic request/response models
│ ├── registration.py
│ ├── authentication.py
│ ├── confirm.py
│ ├── beneficiary.py
│ └── transfer.py
│
├── utils/ # Shared helpers
│ ├── http.py # Centralized HTTP client
│ └── auth.py # Auth helpers (Basic Auth)
│
├── resources/ # MCP resources (context & docs)
│ ├── overview.py
│ ├── endpoints.py
│ └── workflows.py
│
├── requirements.txt
├── Dockerfile
├── docker-compose.yml
└── README.mdInstallation
Clone the repository:
git clone https://github.com/openMF/mcp-mifosx-self-service.git cd mcp-mifosx-self-serviceCreate and activate a virtual environment (recommended):
python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activateInstall the required dependencies:
pip install -r requirements.txt
Configuration
The application connects to a Fineract API. Use environment variables (or a .env file) for customization:
Variable | Description | Default |
| Base URL of Fineract instance |
|
| Tenant identifier |
|
For authentication, the application uses default credentials (maria/password), but these can be overridden using environment variables for better security and flexibility.
Running with Docker
The project includes Docker support for easy deployment:
# Build and run with docker-compose
docker-compose up --buildUsing with Claude Desktop (MCP)
In Claude Desktop → Settings → Developer → Local MCP servers → Edit Config, add:
{
"mcpServers": {
"mifos-banking": {
"command": "/ABSOLUTE/PATH/TO/venv/bin/python",
"args": [
"/ABSOLUTE/PATH/TO/main.py"
],
"env": {
"MIFOS_BASE_URL": "https://tt.mifos.community",
"MIFOS_TENANT": "default"
}
}
}
}Restart Claude Desktop after saving.
Running the Server
To run the MCP server, execute the following command from the project's root directory:
python3 main.pyExample Usage (Natural Language) on Claude
Once the MCP server is connected, Claude can invoke the available tools automatically. You can paste the following prompts in Claude Desktop to verify that your configuration is working correctly:
Login using username
mariaand passwordpasswordGet my client information
Show my client accounts
List my beneficiaries
Get my loan accounts
Show my savings accounts
If these commands return valid responses, your MCP server is successfully connected and operational.
Available MCP Tools
The MCP server exposes the following AI-callable tools. Each tool internally maps to a Fineract self-service API call. These tools are invoked by MCP-compatible AI clients, not directly via HTTP.
Authentication
Method | MCP Tool Name | Description |
POST |
| Register a new self-service user |
POST |
| Confirm user registration with token |
POST |
| Authenticate a self-service user |
Client & Accounts
Method | MCP Tool Name | Description |
GET |
| Retrieve client information |
GET |
| Retrieve client accounts |
GET |
| Retrieve client charges |
GET |
| Retrieve client transactions |
Beneficiaries
Method | MCP Tool Name | Description |
GET |
| List all beneficiaries |
GET |
| Get beneficiary template for an account |
POST |
| Add a new beneficiary |
PUT |
| Update an existing beneficiary |
DELETE |
| Delete a beneficiary |
Loans
Method | MCP Tool Name | Description |
GET |
| Retrieve available loan products |
GET |
| Retrieve loan product details |
GET |
| Retrieve loan account details |
GET |
| Retrieve loan transaction detail |
GET |
| Retrieve loan charges |
GET |
| Retrieve loan application template |
POST |
| Calculate loan repayment schedule |
POST |
| Submit loan application |
PUT |
| Update loan application |
POST |
| Withdraw loan application |
Savings
Method | MCP Tool Name | Description |
GET |
| Get list of savings products |
GET |
| Get savings product details |
GET |
| Get savings account details |
GET |
| Get savings account transactions |
GET |
| Get transaction details |
GET |
| Get savings account charges |
GET |
| Get savings account template |
POST |
| Submit savings account application |
PUT |
| Update savings account application |
Guarantors
Method | MCP Tool Name | Description |
GET |
| Get template for creating guarantors |
GET |
| Get list of guarantors for a loan |
POST |
| Add a new guarantor for a loan |
PUT |
| Update an existing guarantor |
DELETE |
| Delete a loan guarantor |
Shares
Method | MCP Tool Name | Description |
GET |
| Get list of share products |
GET |
| Get share product details |
Notifications
Method | MCP Tool Name | Description |
GET |
| Get notification registration details |
POST |
| Register device for push notifications |
PUT |
| Update notification registration |
Transfers
Method | MCP Tool Name | Description |
GET |
| Retrieve transfer options |
POST |
| Perform a third-party account transfer |
License
This project is licensed under the terms included in the LICENSE file.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/openMF/mcp-mifosx-self-service'
If you have feedback or need assistance with the MCP directory API, please join our Discord server