Beltche-MCP-Server

gajda-w/Beltche-MCP-Server

3.1

If you are the rightful owner of Beltche-MCP-Server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

Beltche MCP Server is a Model Context Protocol Server designed for the Beltche BJJ gym management platform, enabling AI assistants to manage gym-related data.

Tools
3
Resources
0
Prompts
0

Beltche MCP Server

MCP (Model Context Protocol) Server for Beltche - BJJ gym management platform.

Allows AI assistants like ChatGPT to interact with your Beltche account to manage students, trainings, and gym data.

🚀 Quick Start

# Clone and install
git clone https://github.com/gajda-w/Beltche-MCP-Server.git
cd Beltche-MCP-Server
npm install

# Configure environment
cp .env.example .env
# Edit .env with your OAuth credentials

# Run
npm run dev

For ChatGPT integration, expose with ngrok: ngrok http 3000

🔧 MCP Tools

ToolDescription
authorizeGenerates OAuth URL, returns linkToken + authUrl
get_studentsFetches students (requires linkToken)
create_gymCreates a new gym/club (requires linkToken)

📊 API Coverage

Table showing which Beltche API endpoints are currently supported by MCP Server:

Gyms

EndpointMethodStatusMCP Tool
Create gymPOST /api/v1/gymscreate_gym
Get all gymsGET /api/v1/gyms-
Get gym by IDGET /api/v1/gyms/{id}-
Update gymPUT /api/v1/gyms/{id}-
Delete gymDELETE /api/v1/gyms-

Students

EndpointMethodStatusMCP Tool
Get all studentsGET /api/v1/studentsget_students
Create studentPOST /api/v1/students-
Update studentPUT /api/v1/students/{studentID}-
Delete studentDELETE /api/v1/students-
Get student by IDGET /api/v1/students/{studentID}-
Promote studentGET /api/v1/students/{studentID}/promote-
Get my attendanceGET /api/v1/students/my-attendance-

Classes

EndpointMethodStatusMCP Tool
Get all classesGET /api/v1/gyms/{id}/class-
Get class by IDGET /api/v1/gyms/{id}/class/{classid}-
Get today's classesGET /api/v1/gyms/{id}/classes/today-
Create classPOST /api/v1/gyms/{id}/class-
Update classPUT /api/v1/gyms/{id}/class/{classid}-
Delete classDELETE /api/v1/gyms/{id}/class-
Record attendancePOST /api/v1/gyms/{id}/class/{classid}/presence-
Check attendanceGET /api/v1/gyms/{id}/class/{classid}/presence-

Class Notes

EndpointMethodStatusMCP Tool
Create notePOST /api/v1/gyms/{id}/class/{classid}/note-
Get noteGET /api/v1/gyms/{id}/class/{classid}/note-
Update notePUT /api/v1/gyms/{id}/class/{classid}/note/{noteid}-
Delete noteDELETE /api/v1/gyms/{id}/class/{classid}/note/{noteid}-

Sparring

EndpointMethodStatusMCP Tool
Create sparringPOST /api/v1/gyms/{id}/class/{classid}/sparring-
Get sparringsGET /api/v1/gyms/{id}/class/{classid}/sparring-
Delete sparringDELETE /api/v1/gyms/{id}/class/{classid}/sparring/{sparringid}-

Level Groups

EndpointMethodStatusMCP Tool
Get level groupsGET /api/v1/gyms/{id}/levelgroup-
Create level groupPOST /api/v1/gyms/{id}/levelgroup-
Update groupPUT /api/v1/gyms/{id}/levelgroup/{group_id}-
Delete groupDELETE /api/v1/gyms/{id}/levelgroup/{group_id}-
Add students to groupPOST /api/v1/gyms/{id}/levelgroup/{group_id}/student-

Membership Plans

EndpointMethodStatusMCP Tool
Get plansGET /api/v1/gyms/{id}/membership-plans-
Get plan by IDGET /api/v1/gyms/{id}/membership-plans/{planId}-
Create planPOST /api/v1/gyms/{id}/membership-plans-
Update planPUT /api/v1/gyms/{id}/membership-plans/{planId}-
Delete planDELETE /api/v1/gyms/{id}/membership-plans/{planId}-

Memberships

EndpointMethodStatusMCP Tool
Get gym membershipsGET /api/v1/gyms/{id}/memberships-
Get student membershipsGET /api/v1/gyms/{id}/memberships/student/{studentId}-
Assign membershipPOST /api/v1/gyms/{id}/memberships/assign-
Get membership by IDGET /api/v1/gyms/{id}/memberships/{membershipId}-
Extend membershipPOST /api/v1/gyms/{id}/memberships/{membershipId}/extend-

Payments

EndpointMethodStatusMCP Tool
Create paymentPOST /api/v1/gyms/{id}/payment-
Get student paymentsGET /api/v1/gyms/{id}/student/{student_id}/payment-
Student payment historyGET /api/v1/gyms/{id}/payment-history/student/{studentId}-
Handle membership paymentGET /api/v1/gyms/{id}/memberships/{membershipId}/payment-

Notifications

EndpointMethodStatusMCP Tool
Create notificationPOST /api/v1/gyms/{id}/notifications-
Get gym notificationsGET /api/v1/gyms/{id}/notifications-
Get user notificationsGET /api/v1/gyms/{id}/user-notifications-
Mark as readPUT /api/v1/gyms/{id}/notifications/{notificationId}/read-

Registration

EndpointMethodStatusMCP Tool
Get pending registrationsGET /api/v1/registration/gym/{gymId}/pending-
Approve registrationPOST /api/v1/registration/request/{requestId}/approve-
Reject registrationPOST /api/v1/registration/request/{requestId}/reject-

Clothing Orders

EndpointMethodStatusMCP Tool
Create campaignPOST /api/v1/clothing-orders-
Get campaignsGET /api/v1/clothing-orders-
Get campaign ordersGET /api/v1/clothing-orders/{id}/orders-
Active campaigns for studentGET /api/v1/clothing-orders/active-

Others

EndpointMethodStatusMCP Tool
Get belt rankingsGET /api/v1/beltrank-
Get class tagsGET /api/v1/gyms/tags-

Legend:

  • ✅ Supported
  • ❌ Not yet supported

📦 Scripts

ScriptDescription
npm run devDevelopment server with hot reload
npm run buildBuild for production
npm startRun production server
npm testRun tests

📝 Environment Variables

VariableRequiredDescription
OAUTH_CLIENT_IDFusionAuth client ID
OAUTH_CLIENT_SECRETFusionAuth client secret
OAUTH_AUTHORIZE_URLFusionAuth authorize URL
OAUTH_TOKEN_URLFusionAuth token URL
OAUTH_REDIRECT_BASEBase URL for OAuth callback
REDIS_URLRedis URL (production)

📚 Documentation

  • - Authentication flow details
  • - Container deployment
  • - Common issues & debugging

📄 License

ISC