XAPIHub MCP Extension for Cursor
A Model Context Protocol (MCP) extension that integrates XAPIHub API with Cursor IDE, allowing developers to interact with XAPIHub services directly from their development environment.
Features
- 🔐 User Authentication: Get current user details from XAPIHub
- 🔗 API Integration: Direct connection to XAPIHub API endpoints
- ⚡ Real-time Data: Fetch live data from your XAPIHub organization
- 🛠️ Developer Tools: Built-in connection testing and diagnostics
Installation
Prerequisites
- Node.js 18+
- Cursor IDE with MCP support
- XAPIHub account and API token
Setup
-
Clone and Install Dependencies
git clone <your-repo-url> cd xapihub-mcp-extension npm install -
Configure Environment
cp env.example .envEdit
.envwith your XAPIHub credentials:XAPIHUB_BASE_URL=https://api-dev.xapihub.io XAPIHUB_TOKEN=your_bearer_token_here -
Build the Extension
npm run build -
Install in Cursor
- Open Cursor IDE
- Go to Extensions > Install from VSIX
- Select the built extension package
- Or configure MCP server manually (see below)
Manual MCP Server Configuration
If you prefer to run the MCP server directly, add this to your Cursor MCP configuration:
{
"mcpServers": {
"xapihub": {
"command": "node",
"args": ["path/to/your/dist/index.js"],
"env": {
"XAPIHUB_BASE_URL": "https://api-dev.xapihub.io",
"XAPIHUB_TOKEN": "your_bearer_token_here"
}
}
}
}
Available Tools
get_current_user
Retrieves current user details from XAPIHub API.
Example Response:
{
"success": true,
"message": "Current user details retrieved successfully",
"user": {
"id": "user_id",
"username": "username",
"email": "user@example.com",
"fullName": "John Doe",
"organization": "org_id",
"organizationType": "PREMIUM",
"userType": "ORGANIZATION_OWNER",
"userOrganizationAssociation": "OWNER",
"organizationVisibility": "PUBLIC",
"emailVerified": true,
"readOnlyOrganization": false,
"projectCount": 5,
"userScopes": ""
}
}
test_xapihub_connection
Tests connectivity to XAPIHub API.
Example Response:
{
"success": true,
"connected": true,
"message": "Successfully connected to XAPIHub API"
}
Usage in Cursor
Once installed, you can use the XAPIHub tools in several ways:
-
Command Palette:
- Press
Ctrl+Shift+P(Windows/Linux) orCmd+Shift+P(Mac) - Type "XAPIHub" to see available commands
- Press
-
MCP Tools:
- Use the tools directly in your code context
- Ask Cursor to "Get my XAPIHub user details"
- Request "Test XAPIHub connection"
-
Chat Integration:
- Ask Cursor: "What are my XAPIHub user details?"
- Request: "Check if I'm connected to XAPIHub"
Development
Project Structure
src/
├── types/
│ └── xapihub.ts # TypeScript type definitions
├── services/
│ └── xapihub-client.ts # XAPIHub API client
├── server.ts # MCP server implementation
└── index.ts # Main entry point
Scripts
npm run build- Build TypeScript to JavaScriptnpm run dev- Watch mode for developmentnpm run start- Start the MCP servernpm test- Run tests (when implemented)
Adding New Tools
-
Define the tool in
src/server.ts:{ name: 'your_tool_name', description: 'Tool description', inputSchema: { type: 'object', properties: { // Define input parameters }, required: [], }, } -
Implement the handler:
case 'your_tool_name': return await this.handleYourTool(args); -
Add the implementation method:
private async handleYourTool(args: any) { // Implementation }
API Reference
The extension uses the XAPIHub REST API. Current endpoint:
GET /platform/1.0.0/users/current-user- Get current user details
Troubleshooting
Common Issues
-
Authentication Error
- Verify your
XAPIHUB_TOKENis correct and not expired - Check that the token has proper permissions
- Verify your
-
Connection Failed
- Ensure
XAPIHUB_BASE_URLis correct - Check network connectivity
- Verify API endpoint is accessible
- Ensure
-
MCP Server Not Starting
- Check Node.js version (18+ required)
- Verify all dependencies are installed
- Check console for error messages
Debug Mode
To enable debug logging, set environment variable:
DEBUG=xapihub:* npm run start
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
License
MIT License - see LICENSE file for details.
Support
- GitHub Issues: Create an issue
- Documentation: XAPIHub Docs
- Email: support@xapihub.io
