This project provides a set of tools, implemented as a FastAPI server, to interact with the Fineract self-service API. It is designed to be used as a Model-Coded-Processor (MCP) server.
- 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.
- Perform third-party account transfers.
-
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 -
Install the required dependencies:
pip install -r requirements.txt
The application connects to a Fineract API. The base URL and tenant ID are hardcoded in main.py:
FINERACT_BASE_URL:https://tt.mifos.community/fineract-provider/api/v1FINERACT_TENANT_ID:default
For authentication, the application uses default credentials (maria/password), but these can be overridden using environment variables for better security and flexibility.
Use this configuration file with Claude Desktop or any other IDE where you use MCP
{
"mcpServers": {
"tt-mobile-banking": {
"command": "/home/keshav/mcp-mifosx-self-service/venv/bin/python3", #your path
"args": [
"/home/keshav/mcp-mifosx-self-service/main.py" #directory where you have cloned
],
"env": {
"MIFOS_BASE_URL": "https://tt.mifos.community",
"MIFOS_TENANT": "default"
}
}
}
}To run the MCP server, execute the following command from the project's root directory:
python3 main.pyThe following tools are exposed by the server:
POST /mobile-banking/register-self-service: Register a self-service user.POST /mobile-banking/confirm-registration: Confirm user registration with a token.POST /mobile-banking/login: Authenticate a self-service user.GET /mobile-banking/clients: Get client information.POST /mobile-banking/beneficiaries: Add a new beneficiary.GET /mobile-banking/beneficiaries: Get the list of beneficiaries.PUT /mobile-banking/beneficiaries/{beneficiary_id}: Update a beneficiary.DELETE /mobile-banking/beneficiaries/{beneficiary_id}: Delete a beneficiary.GET /mobile-banking/clients/{client_id}/accounts: Get a list of client accounts.GET /mobile-banking/clients/{client_id}/transactions: Get a list of client transactions.POST /mobile-banking/transfers/third-party: Perform a third-party account transfer.