Name | pingera-mcp-server JSON |
Version |
0.1.0
JSON |
| download |
home_page | None |
Summary | Model Context Protocol (MCP) server for Pingera monitoring service integration |
upload_time | 2025-08-07 14:33:06 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.10 |
license | MIT License Copyright (c) 2024 Pingera Team Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
keywords |
api
mcp
monitoring
pingera
playwright
security
statuspage
synthetic
web monitoring
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Pingera MCP Server
A Model Context Protocol (MCP) server for the Pingera monitoring service, providing seamless integration between AI models and monitoring data.
## Features
- **Modular Architecture**: Separate Pingera API client library with clean abstractions
- **Flexible Operation Modes**: Run in read-only or read-write mode
- **MCP Resources**: Access monitoring data as structured resources (`pingera://pages`, `pingera://status`)
- **MCP Tools**: Execute monitoring operations through tools (list_pages, get_page_details, test_connection)
- **Robust Error Handling**: Comprehensive error handling with custom exception hierarchy
- **Real-time Data**: Direct integration with Pingera API v1 for live monitoring data
- **Type Safety**: Pydantic models for data validation and serialization
- **Configurable**: Environment-based configuration management
## Quick Start
### Prerequisites
- Python 3.10+
- UV package manager
- Pingera API key
### Installation and Setup
```bash
# Install dependencies
uv sync
# Set up your API key (required)
# Add PINGERA_API_KEY to your environment or Replit secrets
# Run the server
python main.py
```
The server will start in read-only mode by default and connect to the Pingera API.
## Configuration
Configure the server using environment variables:
```bash
# Required
PINGERA_API_KEY=your_api_key_here
# Optional
PINGERA_MODE=read_only # read_only or read_write
PINGERA_BASE_URL=https://api.pingera.ru/v1
PINGERA_TIMEOUT=30
PINGERA_MAX_RETRIES=3
PINGERA_DEBUG=false
PINGERA_SERVER_NAME=Pingera MCP Server
```
## MCP Resources
The server exposes the following resources:
- **`pingera://pages`** - List of all monitored status pages
- **`pingera://pages/{page_id}`** - Details for a specific status page
- **`pingera://status`** - Server and API connection status
## MCP Tools
Available tools for AI agents:
- **`list_pages`** - Get paginated list of monitored pages
- Parameters: `page`, `per_page`, `status`
- **`get_page_details`** - Get detailed information about a specific page
- Parameters: `page_id`
- **`test_pingera_connection`** - Test API connectivity
- **Write operations** - Available only in read-write mode (future implementation)
## Operation Modes
### Read-Only Mode (Default)
- Access monitoring data
- View status pages and their configurations
- Test API connectivity
- No modification capabilities
### Read-Write Mode
- All read-only features
- Create, update, and delete monitoring pages (future implementation)
- Manage incidents and notifications (future implementation)
Set `PINGERA_MODE=read_write` to enable write operations.
## Architecture
### Pingera API Client Library
Located in `pingera/`, this modular library provides:
- **PingeraClient**: Main API client with authentication and error handling
- **Models**: Pydantic data models for type-safe API responses
- **Exceptions**: Custom exception hierarchy for error handling
### MCP Server Implementation
- **FastMCP Framework**: Modern MCP server implementation
- **Resource Management**: Structured access to monitoring data
- **Tool Registration**: Executable operations for AI agents
- **Configuration**: Environment-based settings management
## Testing
### Running the Test Suite
Run all tests:
```bash
uv run pytest
```
Run tests with verbose output:
```bash
uv run pytest -v
```
Run specific test files:
```bash
uv run pytest tests/test_models.py
uv run pytest tests/test_config.py
uv run pytest tests/test_mcp_server.py
```
Run tests with coverage:
```bash
uv run pytest --cov=pingera --cov=config --cov=mcp_server
```
### Test Structure
The test suite includes:
- **Unit Tests**: Testing individual components (models, config, client)
- **Integration Tests**: Testing MCP server functionality
- **Mock Tests**: Testing with simulated API responses
### Manual Testing
Test the client library directly:
```bash
python -c "from pingera import PingeraClient; import os; client = PingeraClient(os.getenv('PINGERA_API_KEY')); print(f'Pages: {len(client.get_pages().pages)}')"
```
Test MCP server functionality:
```bash
python test_mcp_server.py
```
## Error Handling
The system includes comprehensive error handling:
- `PingeraError`: Base exception for all client errors
- `PingeraAPIError`: API response errors with status codes
- `PingeraAuthError`: Authentication failures
- `PingeraConnectionError`: Network connectivity issues
- `PingeraTimeoutError`: Request timeout handling
Raw data
{
"_id": null,
"home_page": null,
"name": "pingera-mcp-server",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "Pingera Team <privet@pingera.ru>",
"keywords": "api, mcp, monitoring, pingera, playwright, security, statuspage, synthetic, web monitoring",
"author": null,
"author_email": "Pingera Team <privet@pingera.ru>",
"download_url": "https://files.pythonhosted.org/packages/19/de/06e2a660868d468c5093a41df936ba6ad9d234e0270ab4185703eab3141b/pingera_mcp_server-0.1.0.tar.gz",
"platform": null,
"description": "# Pingera MCP Server\n\nA Model Context Protocol (MCP) server for the Pingera monitoring service, providing seamless integration between AI models and monitoring data.\n\n## Features\n\n- **Modular Architecture**: Separate Pingera API client library with clean abstractions\n- **Flexible Operation Modes**: Run in read-only or read-write mode\n- **MCP Resources**: Access monitoring data as structured resources (`pingera://pages`, `pingera://status`)\n- **MCP Tools**: Execute monitoring operations through tools (list_pages, get_page_details, test_connection)\n- **Robust Error Handling**: Comprehensive error handling with custom exception hierarchy\n- **Real-time Data**: Direct integration with Pingera API v1 for live monitoring data\n- **Type Safety**: Pydantic models for data validation and serialization\n- **Configurable**: Environment-based configuration management\n\n## Quick Start\n\n### Prerequisites\n- Python 3.10+\n- UV package manager\n- Pingera API key\n\n### Installation and Setup\n\n```bash\n# Install dependencies\nuv sync\n\n# Set up your API key (required)\n# Add PINGERA_API_KEY to your environment or Replit secrets\n\n# Run the server\npython main.py\n```\n\nThe server will start in read-only mode by default and connect to the Pingera API.\n\n## Configuration\n\nConfigure the server using environment variables:\n\n```bash\n# Required\nPINGERA_API_KEY=your_api_key_here\n\n# Optional\nPINGERA_MODE=read_only # read_only or read_write\nPINGERA_BASE_URL=https://api.pingera.ru/v1\nPINGERA_TIMEOUT=30\nPINGERA_MAX_RETRIES=3\nPINGERA_DEBUG=false\nPINGERA_SERVER_NAME=Pingera MCP Server\n```\n\n## MCP Resources\n\nThe server exposes the following resources:\n\n- **`pingera://pages`** - List of all monitored status pages\n- **`pingera://pages/{page_id}`** - Details for a specific status page\n- **`pingera://status`** - Server and API connection status\n\n## MCP Tools\n\nAvailable tools for AI agents:\n\n- **`list_pages`** - Get paginated list of monitored pages\n - Parameters: `page`, `per_page`, `status`\n- **`get_page_details`** - Get detailed information about a specific page\n - Parameters: `page_id`\n- **`test_pingera_connection`** - Test API connectivity\n- **Write operations** - Available only in read-write mode (future implementation)\n\n## Operation Modes\n\n### Read-Only Mode (Default)\n- Access monitoring data\n- View status pages and their configurations\n- Test API connectivity\n- No modification capabilities\n\n### Read-Write Mode\n- All read-only features\n- Create, update, and delete monitoring pages (future implementation)\n- Manage incidents and notifications (future implementation)\n\nSet `PINGERA_MODE=read_write` to enable write operations.\n\n## Architecture\n\n### Pingera API Client Library\nLocated in `pingera/`, this modular library provides:\n\n- **PingeraClient**: Main API client with authentication and error handling\n- **Models**: Pydantic data models for type-safe API responses\n- **Exceptions**: Custom exception hierarchy for error handling\n\n### MCP Server Implementation\n- **FastMCP Framework**: Modern MCP server implementation\n- **Resource Management**: Structured access to monitoring data\n- **Tool Registration**: Executable operations for AI agents\n- **Configuration**: Environment-based settings management\n\n## Testing\n\n### Running the Test Suite\n\nRun all tests:\n```bash\nuv run pytest\n```\n\nRun tests with verbose output:\n```bash\nuv run pytest -v\n```\n\nRun specific test files:\n```bash\nuv run pytest tests/test_models.py\nuv run pytest tests/test_config.py\nuv run pytest tests/test_mcp_server.py\n```\n\nRun tests with coverage:\n```bash\nuv run pytest --cov=pingera --cov=config --cov=mcp_server\n```\n\n### Test Structure\n\nThe test suite includes:\n- **Unit Tests**: Testing individual components (models, config, client)\n- **Integration Tests**: Testing MCP server functionality \n- **Mock Tests**: Testing with simulated API responses\n\n### Manual Testing\n\nTest the client library directly:\n```bash\npython -c \"from pingera import PingeraClient; import os; client = PingeraClient(os.getenv('PINGERA_API_KEY')); print(f'Pages: {len(client.get_pages().pages)}')\"\n```\n\nTest MCP server functionality:\n```bash\npython test_mcp_server.py\n```\n\n## Error Handling\n\nThe system includes comprehensive error handling:\n- `PingeraError`: Base exception for all client errors\n- `PingeraAPIError`: API response errors with status codes\n- `PingeraAuthError`: Authentication failures\n- `PingeraConnectionError`: Network connectivity issues\n- `PingeraTimeoutError`: Request timeout handling\n",
"bugtrack_url": null,
"license": " MIT License Copyright (c) 2024 Pingera Team Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
"summary": "Model Context Protocol (MCP) server for Pingera monitoring service integration",
"version": "0.1.0",
"project_urls": {
"Changelog": "https://github.com/pingera/pingera-mcp/blob/main/CHANGELOG.md",
"Documentation": "https://github.com/pingera/pingera-mcp#readme",
"Homepage": "https://pingera.ru",
"Issues": "https://github.com/pingera/pingera-mcp/issues",
"Repository": "https://github.com/pingera/pingera-mcp"
},
"split_keywords": [
"api",
" mcp",
" monitoring",
" pingera",
" playwright",
" security",
" statuspage",
" synthetic",
" web monitoring"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "a9eb935543ceaae21c36f9b763cf4177494fde4fd4e30095e57ea2b1df9eeef8",
"md5": "83bd20a3f3a03e8bd3f85a62ad190ca8",
"sha256": "3eb9251d7b32aea85c03fa79c04753efdee1f38c30433443b12b27ead04e3bde"
},
"downloads": -1,
"filename": "pingera_mcp_server-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "83bd20a3f3a03e8bd3f85a62ad190ca8",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 12486,
"upload_time": "2025-08-07T14:33:05",
"upload_time_iso_8601": "2025-08-07T14:33:05.095304Z",
"url": "https://files.pythonhosted.org/packages/a9/eb/935543ceaae21c36f9b763cf4177494fde4fd4e30095e57ea2b1df9eeef8/pingera_mcp_server-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "19de06e2a660868d468c5093a41df936ba6ad9d234e0270ab4185703eab3141b",
"md5": "d972d804eec689638b1f93ce306d8998",
"sha256": "0b29dba746eadbee9da8ff1e23b3640f391c1594625c6bafc4576d8065a8f2d7"
},
"downloads": -1,
"filename": "pingera_mcp_server-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "d972d804eec689638b1f93ce306d8998",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 404373,
"upload_time": "2025-08-07T14:33:06",
"upload_time_iso_8601": "2025-08-07T14:33:06.330656Z",
"url": "https://files.pythonhosted.org/packages/19/de/06e2a660868d468c5093a41df936ba6ad9d234e0270ab4185703eab3141b/pingera_mcp_server-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-07 14:33:06",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pingera",
"github_project": "pingera-mcp",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "pingera-mcp-server"
}