MifosX Self Service MCP
Enables AI-driven banking workflows through secure interaction with Apache Fineract/MifosX Self-Service APIs, including authentication, account management, loans, savings, and transfers.
README
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.
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 --> A
Project 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.md
Installation
-
Clone the repository:
git clone https://github.com/openMF/mcp-mifosx-self-service.git cd mcp-mifosx-self-service -
Create and activate a virtual environment (recommended):
python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate -
Install 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 |
|---|---|---|
MIFOS_BASE_URL |
Base URL of Fineract instance | https://tt.mifos.community |
MIFOS_TENANT |
Tenant identifier | default |
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 --build
Using 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.py
Example 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 passwordpassword - Get 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_self_service |
Register a new self-service user |
| POST | confirm_registration |
Confirm user registration with token |
| POST | login_self_service |
Authenticate a self-service user |
Client & Accounts
| Method | MCP Tool Name | Description |
|---|---|---|
| GET | get_client_info |
Retrieve client information |
| GET | get_client_accounts |
Retrieve client accounts |
| GET | get_client_charges |
Retrieve client charges |
| GET | get_client_transactions |
Retrieve client transactions |
Beneficiaries
| Method | MCP Tool Name | Description |
|---|---|---|
| GET | get_beneficiaries |
List all beneficiaries |
| GET | get_beneficiary_template |
Get beneficiary template for an account |
| POST | add_beneficiary |
Add a new beneficiary |
| PUT | update_beneficiary |
Update an existing beneficiary |
| DELETE | delete_beneficiary |
Delete a beneficiary |
Loans
| Method | MCP Tool Name | Description |
|---|---|---|
| GET | get_loan_products |
Retrieve available loan products |
| GET | get_loan_product_details |
Retrieve loan product details |
| GET | get_loan_account_details |
Retrieve loan account details |
| GET | get_loan_transaction_detail |
Retrieve loan transaction detail |
| GET | get_loan_account_charges |
Retrieve loan charges |
| GET | get_loan_template |
Retrieve loan application template |
| POST | calculate_loan_repayment_calendar |
Calculate loan repayment schedule |
| POST | submit_loan_application |
Submit loan application |
| PUT | update_loan_application |
Update loan application |
| POST | withdraw_loan_application |
Withdraw loan application |
Savings
| Method | MCP Tool Name | Description |
|---|---|---|
| GET | get_savings_products |
Get list of savings products |
| GET | get_savings_product_details |
Get savings product details |
| GET | get_savings_account_details |
Get savings account details |
| GET | get_savings_account_transactions |
Get savings account transactions |
| GET | get_savings_account_transaction_details |
Get transaction details |
| GET | get_savings_account_charges |
Get savings account charges |
| GET | get_savings_account_template_raw |
Get savings account template |
| POST | submit_savings_application |
Submit savings account application |
| PUT | update_savings_account_application |
Update savings account application |
Guarantors
| Method | MCP Tool Name | Description |
|---|---|---|
| GET | get_guarantor_template |
Get template for creating guarantors |
| GET | get_guarantor_list |
Get list of guarantors for a loan |
| POST | create_guarantor |
Add a new guarantor for a loan |
| PUT | update_guarantor |
Update an existing guarantor |
| DELETE | delete_guarantor |
Delete a loan guarantor |
Shares
| Method | MCP Tool Name | Description |
|---|---|---|
| GET | get_share_product_list |
Get list of share products |
| GET | get_share_product_details |
Get share product details |
Notifications
| Method | MCP Tool Name | Description |
|---|---|---|
| GET | get_user_notification_details |
Get notification registration details |
| POST | register_for_notifications |
Register device for push notifications |
| PUT | update_notification_registration |
Update notification registration |
Transfers
| Method | MCP Tool Name | Description |
|---|---|---|
| GET | get_transfer_template |
Retrieve transfer options |
| POST | make_third_party_transfer |
Perform a third-party account transfer |
License
This project is licensed under the terms included in the LICENSE file.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。