MCP server for Respona Dashboard API integration - enables natural language interactions with ticket management and analytics systems
Project description
Respona Dashboard MCP Server
An MCP (Model Context Protocol) server that provides tools to interact with the Respona Dashboard backend API. This server allows users to query ticket data, analytics, and AI flags through natural language interactions.
Features
This MCP server implements 13 tools corresponding to the Respona Dashboard API endpoints:
Ticket Management Tools
- get_tickets - Retrieve tickets with filtering and pagination
- get_ticket_stats - Get ticket statistics and metrics
- get_ticket_by_id - Retrieve a specific ticket by ID
- get_ticket_ai_analysis - Get AI analysis for a specific ticket
Analytics Tools
- get_ai_flags_distribution - Get AI flags distribution for analytics
- get_similar_incidents - Get count of similar incidents
- get_source_channels_distribution - Get distribution of ticket source channels
- get_priority_distribution - Get distribution of ticket priorities
- get_status_distribution - Get distribution of ticket statuses
- get_dashboard_analytics - Get comprehensive analytics for dashboard
AI Flags Tools
- get_analysis_flags - Get all flags for a specific AI analysis
- get_analysis_flag_stats - Get flag statistics for an AI analysis
- get_all_flags - Get all flags with pagination (admin view)
Installation
-
Clone the repository:
git clone <repository-url> cd respona_mcp_server
-
Install dependencies:
pip install -e .
Or using uv (recommended):
uv pip install -e .
-
Set up configuration:
cp .env.example .env # Edit .env with your configuration
Configuration
The server can be configured through environment variables or a .env file:
API Configuration
RESPONA_API_BASE_URL: Base URL for the Respona Dashboard API (default:http://10.250.201.107:3001)RESPONA_API_KEY: API key for authentication (optional)
Request Configuration
RESPONA_REQUEST_TIMEOUT: Request timeout in seconds (default: 30)RESPONA_MAX_RETRIES: Maximum number of request retries (default: 3)
Pagination Configuration
RESPONA_DEFAULT_PAGE_SIZE: Default number of items per page (default: 20)RESPONA_MAX_PAGE_SIZE: Maximum allowed page size (default: 100)
Usage
Running the Server
# Run directly
python -m respona_mcp_server
# Or using the installed script
respona-mcp-server
MCP Client Configuration
Add this server to your MCP client configuration. For example, in Claude Desktop, add to your claude_desktop_config.json:
{
"mcpServers": {
"respona-dashboard": {
"command": "python",
"args": ["-m", "respona_mcp_server"],
"env": {
"RESPONA_API_BASE_URL": "http://10.250.201.107:3001"
}
}
}
}
Or if you have the package installed globally:
{
"mcpServers": {
"respona-dashboard": {
"command": "respona-mcp-server",
"env": {
"RESPONA_API_BASE_URL": "http://10.250.201.107:3001"
}
}
}
}
Tool Usage Examples
Get All Tickets
Get me all tickets with high priority from the last week
Get Ticket Statistics
Show me the current ticket statistics
Get Specific Ticket
Show me details for ticket ID 12345
Get Analytics
What's the distribution of ticket priorities?
Filter Tickets
Show me all tickets assigned to John Doe with status "open"
Get AI Analysis
Get the AI analysis for ticket 67890
API Endpoints Mapping
| Tool Name | API Endpoint | Description |
|---|---|---|
| get_tickets | GET /api/tickets | Retrieve tickets with filtering |
| get_ticket_stats | GET /api/tickets/stats | Get ticket statistics |
| get_ticket_by_id | GET /api/tickets/{id} | Get specific ticket |
| get_ticket_ai_analysis | GET /api/tickets/{id}/ai-analysis | Get AI analysis |
| get_ai_flags_distribution | GET /api/analytics/ai-flags | Get AI flags distribution |
| get_similar_incidents | GET /api/analytics/similar-incidents | Get similar incidents count |
| get_source_channels_distribution | GET /api/analytics/source-channels | Get source channels distribution |
| get_priority_distribution | GET /api/analytics/priority-distribution | Get priority distribution |
| get_status_distribution | GET /api/analytics/status-distribution | Get status distribution |
| get_dashboard_analytics | GET /api/analytics/dashboard | Get all analytics |
| get_analysis_flags | GET /api/ai-flags/analysis/{analysisId}/flags | Get analysis flags |
| get_analysis_flag_stats | GET /api/ai-flags/analysis/{analysisId}/flags/stats | Get flag statistics |
| get_all_flags | GET /api/ai-flags/flags | Get all flags (admin) |
Error Handling
The server includes comprehensive error handling:
- Network Errors: Automatic retries with exponential backoff
- API Errors: Proper HTTP status code handling
- Parameter Validation: Input validation with helpful error messages
- Connection Issues: Graceful handling of API server downtime
Development
Running Tests
pytest
Code Formatting
ruff format .
ruff check .
Type Checking
mypy respona_mcp_server/
Troubleshooting
Common Issues
-
Connection Refused
- Check if the Respona API server is running
- Verify the
RESPONA_API_BASE_URLconfiguration - Check network connectivity
-
Authentication Errors
- Verify API key configuration if required
- Check if the API key has proper permissions
-
Timeout Errors
- Increase
RESPONA_REQUEST_TIMEOUT - Check network latency to the API server
- Increase
Logging
The server uses Python's standard logging. Set the log level:
export PYTHONPATH=.
python -m respona_mcp_server --log-level DEBUG
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Run the test suite
- Submit a pull request
License
MIT License - see LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_respona_dashboard-1.0.2.tar.gz.
File metadata
- Download URL: mcp_respona_dashboard-1.0.2.tar.gz
- Upload date:
- Size: 11.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0f1d942edd1903b59e15fb4b1ac8fb82c48e1020dc9000c14e4a54675c688ac
|
|
| MD5 |
fb7ebafca75a1c58a06d489c5d7fd406
|
|
| BLAKE2b-256 |
427c1218b911284f71ca49ec485678f5910ad09c04b6c91b895c9ad13192a5e6
|
File details
Details for the file mcp_respona_dashboard-1.0.2-py3-none-any.whl.
File metadata
- Download URL: mcp_respona_dashboard-1.0.2-py3-none-any.whl
- Upload date:
- Size: 10.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
924f7675b02505973244ba7246bdfdedc1c351ffe118c2cbfde0a3a8a7c92704
|
|
| MD5 |
81b4e70ffdb1c037d4dbbb325b8e6e6c
|
|
| BLAKE2b-256 |
974a756129c68167885621f4f2419d302a3ec17bc08eaf3e7e8ac5846f79dc40
|