McScribble/sonic-mcp-server
If you are the rightful owner of sonic-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.
The Sonic MCP Server is a Model Context Protocol server that facilitates AI agents' interaction with the Sonic API for managing events, venues, songs, and users.
Sonic MCP Server
A Model Context Protocol (MCP) server that enables AI agents to interact with the Sonic API for managing events, venues, songs, and users.
Overview
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
Features
🎪 Event Management
- 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
🏢 Venue Management
- Create venues with detailed address information
- Manage venue capacity and descriptions
- Link venues to events
- Search venues by location or name
🎵 Music Integration
- Add songs to your library
- Search Spotify for tracks
- Link songs to events
- Manage music metadata (artist, album, genre)
👥 User Operations
- View user profiles
- Update account information
- Admin functions for user management
- Authentication and authorization
🗺️ Location Services
- Search places using Google Maps
- Get detailed place information
- Address autocomplete functionality
Installation & Setup
Prerequisites
- Node.js 18+
- TypeScript
- Access to Sonic API with valid JWT token
Quick Start
-
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
Configuration
Environment Variables
SONIC_API_TOKEN: Your JWT authentication token (required)SONIC_API_BASE_URL: API base URL (default: https://localhost:5001/api)
Getting Your JWT Token
curl -X POST https://localhost:5001/api/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "your-email@example.com",
"password": "your-password"
}'
AI Client Integration (Claude Desktop)
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"
}
}
}
}
Available Tools
Event Tools
get_events- List events with filtering and paginationget_event- Get specific event detailscreate_event- Create new eventupdate_event- Modify existing eventdelete_event- Remove event
Venue Tools
get_venues- List venues with searchget_venue- Get venue detailscreate_venue- Add new venueupdate_venue- Modify venue infodelete_venue- Remove venue
Song Tools
get_songs- List music libraryget_song- Get song detailscreate_song- Add song to libraryupdate_song- Update song infodelete_song- Remove song
User Tools
get_users- List users (admin)get_user- Get user profileget_current_user- Get your profileupdate_user- Update user info
Integration Tools
search_spotify- Search Spotify catalogget_spotify_token- Check Spotify authsearch_places- Find locationsget_place_details- Get place info
Usage Examples
Natural Language Commands
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"
Direct Tool Calls
{
"name": "create_event",
"arguments": {
"name": "Summer Music Festival",
"description": "Outdoor music event",
"startDate": "2024-07-15T18:00:00Z",
"maxAttendees": 500,
"isPublic": true
}
}
Development
Scripts
npm run build- Compile TypeScriptnpm run dev- Watch mode for developmentnpm run clean- Remove build filesnpm start- Run the compiled server
Project Structure
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
Debugging in VS Code
The project includes VS Code debugging support. You can now debug this MCP server using VS Code with proper breakpoints and debugging tools.
Security & Authentication
- 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
API Compatibility
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
Contributing
- Fork the repository
- Create a feature branch
- Make your changes with proper TypeScript types
- Add tests if applicable
- Submit a pull request
License
MIT License - See LICENSE file for details
Support
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