belong-mcp
Click on "Deploy 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., "@belong-mcp Show me today's visitor approvals"
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.
Belong MCP Server
An MCP (Model Context Protocol) server that exposes the Belong Resident Application APIs as tools. This lets AI assistants like Claude interact with your Belong society account -- manage visitors, vehicles, maintenance issues, amenity bookings, finances, and more.
Prerequisites
Related MCP server: vitals
Setup
Clone the repo
git clone https://github.com/arjunbhasin/belong-mcp.git cd belong-mcpInstall dependencies
npm installCreate a
.envfile (optional -- you can authenticate via OTP through the MCP tools instead)cp .env.example .envIf you already have tokens, populate them:
ACCESS_TOKEN=your_access_token REFRESH_TOKEN=your_refresh_token MOBILE_NUMBER=your_mobile_number
Running the Server
The server communicates over stdio, which is how MCP clients (like Claude Code or Claude Desktop) connect to it.
node index.jsOr using the npm script:
npm startConnecting to Claude Code
Add to your Claude Code MCP config (~/.claude/claude_code_config.json or project-level .mcp.json):
{
"mcpServers": {
"belong-mcp": {
"command": "node",
"args": ["/absolute/path/to/belong-mcp/index.js"]
}
}
}Connecting to Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"belong-mcp": {
"command": "node",
"args": ["/absolute/path/to/belong-mcp/index.js"]
}
}
}Authentication
There are two ways to authenticate:
Option 1: OTP via MCP tools (recommended)
Once the server is connected, use the built-in authentication tools:
Call
request_otpwith your mobile numberCall
verify_otpwith the OTP you receivedTokens are saved to
.envautomatically
Option 2: Manual .env file
If you have tokens from another session, add them to the .env file directly (see Setup step 3).
The server automatically refreshes expired access tokens using the refresh token.
Available Tools
Authentication
Tool | Description |
| Send OTP to mobile number |
| Verify OTP to complete login |
| Check current auth state |
Profile & Flats
Tool | Description |
| Get your profile (name, mobile, email) |
| Get flat feature flags and access details |
| Get tower/wing/floor info for a flat |
| List all your associated flats |
| Filter flats by occupancy ID |
| Look up flats for specific residents |
Visitors & Gate
Tool | Description |
| List gate entries for a date |
| Monthly visitor approval count |
| Material movement exit passes |
| Visitor entry statistics |
| Delivery companies by category |
Staff & Services
Tool | Description |
| Registered staff (maid, cook, etc.) |
| Staff booking schedules |
| Available service types |
Vehicles
Tool | Description |
| Vehicles registered to a flat |
| Search by registration number |
| Available vehicle brands |
Maintenance Issues
Tool | Description |
| Your complaints and issues |
| Available issue categories |
| Issue statistics |
Amenities
Tool | Description |
| Amenity bookings (gym, pool, etc.) |
| Booking statistics |
Community
Tool | Description |
| Community announcements |
| Community feed posts |
| Promotional banners |
| Active campaigns |
| RWA committee members |
Buggy Service
Tool | Description |
| Golf cart pickup/drop stops |
| Buggy ride history |
Chat
Tool | Description |
| Residents available for chat |
| Wings available for chat |
| Residents on a floor |
Infrastructure
Tool | Description |
| Buildings in a project |
| Enabled modules/features |
| Integrated services (laundry, food) |
| Available languages |
Finance & Billing
Tool | Description |
| Transaction history for a date range |
| Unpaid amounts, interest, balance |
| Payment demands from management |
| Payment method configuration |
Notifications & Delivery
Tool | Description |
| Unread notification count |
| Auto-approve delivery settings |
License
ISC
Available Tools
45 toolscheck_auth_statusA
Check if the user is currently authenticated. Returns auth state and mobile number if available.
Inputs: no named parameters.
get_announcementsB
List community announcements for a flat
Inputs: flat_id (required), page, items.
get_approvals_countA
Get the count of visitor approvals for a flat in a given month
Inputs: year (required), month (required), flat_id (required).
get_bannersA
Get promotional banners displayed for a flat
Inputs: flat_id (required), page, items.
get_booking_statsA
Get amenity booking statistics (booked, completed, waitlisted counts)
Inputs: range_type.
get_buggy_activityA
Get buggy ride activity/history for a flat
Inputs: flat_id (required), page, items.
get_delivery_preferencesA
Get delivery preferences (auto-approve deliveries setting)
Inputs: no named parameters.
get_entry_statsB
Get visitor entry statistics (approved, completed, request_approved counts)
Inputs: range_type.
get_exit_passesA
List exit passes (material movement out of society) for a flat
Inputs: flat_id (required), page, items, status.
get_financial_ledgerB
Get financial transaction history (maintenance bills, payments) for a date range
Inputs: end_date (required), start_date (required), page, items.
get_flat_accessA
Get current flat access details: buggy service status, cometchat auth, electricity meter, feature flags, and more
Inputs: no named parameters.
get_flats_by_resident_idsC
Look up flats for specific resident IDs within a project
Inputs: resident_ids (required), requested_project_id (required).
get_invoice_statsA
Get invoice summary: total unpaid, payable amounts, interest, closing balance
Inputs: no named parameters.
get_issue_statsB
Get issue statistics (closed, in_progress counts)
Inputs: range_type.
get_module_accessA
Get which modules/features are enabled for the current project
Inputs: no named parameters.
get_notifications_countA
Get the count of unread notifications for a flat
Inputs: flat_id (required).
get_occupancy_detailA
Get detailed occupancy info for a flat: tower, wing, floor, project, flat number, occupancy type
Inputs: flat_occupancy_id (required).
get_payment_configA
Get available payment methods (UPI, card, netbanking, wallet) and their configuration
Inputs: no named parameters.
get_resident_profileA
Get the logged-in resident's profile: name, mobile, email, resident_id, default_flat_occupancy_id
Inputs: no named parameters.
get_towersA
List towers/buildings in a project
Inputs: project_id (required), page, items.
get_visitor_approvalsA
Get visitor/guest approval entries for a flat on a given date
Inputs: date (required), flat_id (required), page, items, +1 more.
list_booked_slotsB
List amenity bookings (gym, pool, clubhouse, etc.) for a flat
Inputs: flat_id (required), page, items, status.
list_buggy_stopsA
List buggy (golf cart) pickup/drop stops available for a flat
Inputs: flat_id (required), page, items.
list_campaignsB
List active campaigns/promotions
Inputs: page, items.
list_chat_enabled_residentsB
List residents available for chat in a project
Inputs: flat_id (required), requested_project_id (required), page, items.
list_chat_flat_residentsB
List residents on a specific floor for chat purposes
Inputs: floor_id (required), page, items.
list_chat_wingsB
List wings/sections available for chat in a tower
Inputs: tower_id (required), page, items.
list_community_feedsB
Get the community feed posts
Inputs: page, items.
list_demandnote_requestsB
List demand note requests (payment demands from management)
Inputs: page, items, status.
list_external_servicesA
List external services integrated with the project (laundry, food, etc.)
Inputs: page, items.
list_flatsA
List all flats associated with the current resident, with tower/wing/floor/project info
Inputs: page, items.
list_flats_by_occupancyA
List flats filtered by a specific flat_occupancy_id
Inputs: flat_occupancy_id (required), page, items.
list_issue_categoriesA
List available issue/complaint categories for a flat (plumbing, electrical, etc.)
Inputs: flat_id (required), page, items.
list_languagesB
List available languages for the app
Inputs: page, items.
list_maintenance_issuesB
List maintenance issues/complaints raised by the resident
Inputs: page, items, status, stats_type.
list_resident_vehiclesB
List vehicles registered to a flat
Inputs: flat_id (required), page, items, vehicle_type.
list_rwa_membersB
List RWA (Resident Welfare Association) committee members for a project
Inputs: requested_project_id (required), page, items.
list_service_staff_bookingsA
List service staff booking schedules for a flat
Inputs: flat_id (required), page, items.
list_service_staffsA
List service staff (maids, cooks, drivers, etc.) registered for a flat
Inputs: flat_id (required), page, sort, items.
list_service_typesC
List available service types (maid, cook, driver, etc.)
Inputs: page, items.
list_vehicle_brandsB
List all available vehicle brands
Inputs: page, items.
list_visitor_companiesB
List companies/brands under a visitor category (e.g. delivery services)
Inputs: visitor_category_id (required), page, items.
request_otpA
Send an OTP to a mobile number to start authentication. Call this first if not logged in.
Inputs: mobile_number (required).
search_vehiclesA
Search for vehicles by registration number across the society
Inputs: search (required), page, items.
verify_otpA
Verify the OTP received on mobile to complete login. Call after request_otp.
Inputs: otp (required), mobile_number (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 45 tools
Most tools target distinct resources and actions, with clear descriptions for each. Some similar-sounding tools (e.g., list_flats vs list_flats_by_occupancy, get_announcements vs list_community_feeds) exist but are still separable by their parameters and purpose.
All tool names use snake_case and mostly follow a verb_noun pattern, but there is a mix of verbs (get, list, search, check, request, verify) that isn't always predictable. For example, 'get_towers' returns a list while 'list_flats' is also a list, and 'search_vehicles' breaks the get/list convention.
With 45 tools, the set is far too large and will be difficult for an agent to navigate efficiently. Even a broad domain like community management can be covered with fewer, more generalized endpoints.
The tool surface is heavily read-focused, covering retrieval of bookings, issues, vehicles, financials, etc., but lacks any create/update/delete operations (except OTP auth). There are no tools to book an amenity, raise a complaint, approve a visitor, or update a profile, leaving many common workflows incomplete.
Maintenance
Related MCP Connectors
Spacebring MCP server. Look up members, bookings, invoices, subscriptions, events and more, and take everyday actions such as creating events or replying to support tickets, from MCP-compatible AI assistants that support remote servers with OAuth.
Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
The OpenRouter for tools. One MCP connection gives any AI agent 254 hosted tools, pay per call.
Related MCP Servers
- FlicenseAqualityDmaintenanceBridges AI/LLM applications to Actual Budget, exposing budget data as MCP tools for account listing, transactions, and budget balances.4-
- AlicenseNot gradedqualityCmaintenanceExposes personal health data (recovery, sleep, strain, etc.) as MCP tools for AI agents to query and analyze.5MIT
- AlicenseNot gradedqualityDmaintenanceExposes the CINC Systems HOA management REST API as MCP tools, enabling natural language queries and actions for ACC requests, aged balances, vendor records, call logs, documents, and more.1MIT
- AlicenseAqualityBmaintenanceEnables AI agents to interact with the Meridian business-services platform, exposing services, service requests, workflow steps, payments, and meetings as MCP tools and resources.1649 npmMIT