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.
Metadata
Release files for mcp-respona-dashboard 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mcp_respona_dashboard-1.0.2.tar.gz | 11.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcp_respona_dashboard-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.0 kB
Release files / mcp_respona_dashboard-1.0.2.tar.gz
| Download URL | mcp_respona_dashboard-1.0.2.tar.gz |
|---|---|
| Size | 11.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a0f1d942edd1903b59e15fb4b1ac8fb82c48e1020dc9000c14e4a54675c688ac
|
|
BLAKE2b-256 checksum How to use checksums |
427c1218b911284f71ca49ec485678f5910ad09c04b6c91b895c9ad13192a5e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / mcp_respona_dashboard-1.0.2-py3-none-any.whl
| Download URL | mcp_respona_dashboard-1.0.2-py3-none-any.whl |
|---|---|
| Size | 10.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
924f7675b02505973244ba7246bdfdedc1c351ffe118c2cbfde0a3a8a7c92704
|
|
BLAKE2b-256 checksum How to use checksums |
974a756129c68167885621f4f2419d302a3ec17bc08eaf3e7e8ac5846f79dc40
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|