Skip to main content
Glama

MCP Orchestration Server

calendar_agent(2).py4.48 kB
#!/usr/bin/env python3 """ Calendar Agent - Inactive Calendar and scheduling agent currently marked as inactive for production deployment """ import os import asyncio from datetime import datetime, timedelta from typing import Dict, List, Any, Optional import logging # Add project root to path import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).parent.parent.parent)) from agents.base_agent import BaseMCPAgent, AgentCapability, MCPMessage # Agent metadata for auto-discovery AGENT_METADATA = { "id": "calendar_agent", "name": "Calendar Agent", "version": "2.0.0", "author": "MCP System", "description": "Calendar management and scheduling system (currently inactive)", "category": "productivity", "status": "inactive", "dependencies": ["google-auth", "google-auth-oauthlib", "google-auth-httplib2", "google-api-python-client"], "auto_load": False, "priority": 4, "health_check_interval": 120, "max_failures": 3, "recovery_timeout": 180, "inactive_reason": "Requires Google Calendar API credentials and OAuth setup" } class CalendarAgent(BaseMCPAgent): """Calendar Agent for scheduling and reminders - currently inactive.""" def __init__(self): capabilities = [ AgentCapability( name="calendar_management", description="Create events, reminders, and manage calendar scheduling", input_types=["text", "dict"], output_types=["dict"], methods=["process", "create_event", "create_reminder", "info"], version="2.0.0" ) ] super().__init__("calendar_agent", "Calendar Agent", capabilities) self.failure_count = 0 self.last_health_check = datetime.now() self.is_active = False # Marked as inactive self.logger.info("Calendar Agent initialized (INACTIVE)") async def health_check(self) -> Dict[str, Any]: """Health check for inactive agent.""" return { "agent_id": self.agent_id, "status": "inactive", "reason": AGENT_METADATA["inactive_reason"], "last_check": datetime.now().isoformat(), "failure_count": self.failure_count, "version": AGENT_METADATA["version"], "can_activate": False, "required_setup": [ "Google Calendar API credentials", "OAuth 2.0 configuration", "Google Cloud Project setup", "Calendar access permissions" ] } async def handle_process(self, message: MCPMessage) -> Dict[str, Any]: """Handle process requests for inactive agent.""" return { "status": "inactive", "message": "Calendar Agent is currently inactive. Scheduling functionality not available.", "agent": self.agent_id, "version": AGENT_METADATA["version"], "inactive_reason": AGENT_METADATA["inactive_reason"], "alternative": "Calendar functionality can be activated by configuring Google Calendar API credentials" } async def handle_info(self, message: MCPMessage) -> Dict[str, Any]: """Handle info request for inactive agent.""" return { "status": "inactive", "info": self.get_info(), "metadata": AGENT_METADATA, "health": await self.health_check(), "activation_requirements": [ "Set up Google Cloud Project", "Enable Google Calendar API", "Configure OAuth 2.0 credentials", "Set environment variables for authentication", "Grant calendar access permissions" ], "agent": self.agent_id } # Agent registration functions def get_agent_metadata(): """Get agent metadata for auto-discovery.""" return AGENT_METADATA def create_agent(): """Create and return the agent instance.""" return CalendarAgent() def get_agent_info(): """Get agent information for compatibility.""" return { "name": "Calendar Agent", "description": "Calendar management system (currently inactive)", "version": "2.0.0", "author": "MCP System", "capabilities": ["calendar_management", "scheduling", "reminders"], "category": "productivity", "status": "inactive" }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Nisarg-123-web/MCP2'

If you have feedback or need assistance with the MCP directory API, please join our Discord server