A Model Context Protocol (MCP) server that enables AI agents to interact with the Sonic API for managing events, venues, songs, and users.
This MCP server provides a comprehensive interface for AI agents to:
- Manage Events: Create, read, update, delete events with full CRUD operations
- Manage Venues: Handle venue information including addresses and capacity
- Handle Songs: Music data management with Spotify integration
- User Management: Profile operations and authentication
- Search Integration: Spotify music search and Google Maps places
- Real-time Interaction: Direct API communication with proper authentication
- Create events with dates, venues, and attendee limits
- Search and filter events by name, owner, or description
- Include related data (venues, users, songs) in responses
- Support for public/private events
- Create venues with detailed address information
- Manage venue capacity and descriptions
- Link venues to events
- Search venues by location or name
- Add songs to your library
- Search Spotify for tracks
- Link songs to events
- Manage music metadata (artist, album, genre)
- View user profiles
- Update account information
- Admin functions for user management
- Authentication and authorization
- Search places using Google Maps
- Get detailed place information
- Address autocomplete functionality
- Node.js 18+
- TypeScript
- Access to Sonic API with valid JWT token
-
Install dependencies:
npm install
-
Build the project:
npm run build
-
Set your authentication token:
# Windows (PowerShell) $env:SONIC_API_TOKEN = "your-jwt-token-here" # macOS/Linux export SONIC_API_TOKEN="your-jwt-token-here"
-
Run the server:
npm start
SONIC_API_TOKEN: Your JWT authentication token (required)SONIC_API_BASE_URL: API base URL (default: https://localhost:5001/api)
curl -X POST https://localhost:5001/api/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "your-email@example.com",
"password": "your-password"
}'Add to your Claude Desktop configuration:
{
"mcpServers": {
"sonic-api": {
"command": "node",
"args": ["C:\\path\\to\\sonic-mcp-server\\build\\index.js"],
"env": {
"SONIC_API_TOKEN": "your-jwt-token-here"
}
}
}
}get_events- List events with filtering and paginationget_event- Get specific event detailscreate_event- Create new eventupdate_event- Modify existing eventdelete_event- Remove event
get_venues- List venues with searchget_venue- Get venue detailscreate_venue- Add new venueupdate_venue- Modify venue infodelete_venue- Remove venue
get_songs- List music libraryget_song- Get song detailscreate_song- Add song to libraryupdate_song- Update song infodelete_song- Remove song
get_users- List users (admin)get_user- Get user profileget_current_user- Get your profileupdate_user- Update user info
search_spotify- Search Spotify catalogget_spotify_token- Check Spotify authsearch_places- Find locationsget_place_details- Get place info
Once configured with an AI assistant, you can use natural language:
- "Show me all events happening this week"
- "Create a new venue called 'The Blue Note Jazz Club' in New York"
- "Search Spotify for Beatles songs"
- "Find events at Madison Square Garden"
- "Update my user profile with a new email"
{
"name": "create_event",
"arguments": {
"name": "Summer Music Festival",
"description": "Outdoor music event",
"startDate": "2024-07-15T18:00:00Z",
"maxAttendees": 500,
"isPublic": true
}
}npm run build- Compile TypeScriptnpm run dev- Watch mode for developmentnpm run clean- Remove build filesnpm start- Run the compiled server
src/
βββ index.ts # Main MCP server
βββ sonic-client.ts # API client wrapper
βββ types.ts # TypeScript definitions
.vscode/
βββ mcp.json # VS Code MCP configuration
.github/
βββ copilot-instructions.md # AI coding assistance
The project includes VS Code debugging support. You can now debug this MCP server using VS Code with proper breakpoints and debugging tools.
- JWT Authentication: All API calls require valid JWT token
- Permission System: Cascading ownership with admin overrides
- Environment Variables: Secure token storage
- Error Handling: Comprehensive error messages without exposing sensitive data
Compatible with Sonic API endpoints:
/api/events- Event management/api/venues- Venue management/api/songs- Music management/api/users- User operations/api/spotify- Music search/api/maps- Location services
- Fork the repository
- Create a feature branch
- Make your changes with proper TypeScript types
- Add tests if applicable
- Submit a pull request
MIT License - See LICENSE file for details
For issues and questions:
- Check the troubleshooting section in the code
- Review the MCP protocol documentation
- Ensure your JWT token is valid and not expired