Spaces:
Sleeping
Sleeping
feat: Implement CredentialWatch agent with MCP client, main entry point, interactive query agent, and various debugging utilities.
9d3c7fc
| import asyncio | |
| import os | |
| import sys | |
| import logging | |
| from dotenv import load_dotenv | |
| # Add src to path | |
| sys.path.append(os.path.join(os.path.dirname(__file__), "src")) | |
| # Load env vars | |
| load_dotenv(".env.local") | |
| # Configure logging | |
| logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s') | |
| logger = logging.getLogger("debug_mcp") | |
| logger.setLevel(logging.DEBUG) | |
| # Silence noisy loggers | |
| logging.getLogger("httpcore").setLevel(logging.WARNING) | |
| logging.getLogger("httpx").setLevel(logging.WARNING) | |
| from credentialwatch_agent.mcp_client import mcp_client | |
| async def debug_mcp(): | |
| logger.info("Starting MCP debug script...") | |
| # Check environment variables | |
| logger.info(f"NPI_MCP_URL: {os.getenv('NPI_MCP_URL')}") | |
| logger.info(f"CRED_DB_MCP_URL: {os.getenv('CRED_DB_MCP_URL')}") | |
| logger.info(f"ALERT_MCP_URL: {os.getenv('ALERT_MCP_URL')}") | |
| try: | |
| logger.info("Connecting to MCP servers...") | |
| await mcp_client.connect() | |
| logger.info("Connected to MCP servers.") | |
| except Exception as e: | |
| logger.error(f"Failed to connect to MCP servers: {e}", exc_info=True) | |
| return | |
| # Test NPI Tool | |
| logger.info("\n--- Testing NPI Tool: search_providers ---") | |
| try: | |
| result = await mcp_client.call_tool("npi", "search_providers", {"query": "cardiology"}) | |
| logger.info(f"NPI Tool Result: {result}") | |
| except Exception as e: | |
| logger.error(f"NPI Tool Call Failed: {e}", exc_info=True) | |
| # Test Cred DB Tool | |
| logger.info("\n--- Testing Cred DB Tool: list_expiring_credentials ---") | |
| try: | |
| result = await mcp_client.call_tool("cred_db", "list_expiring_credentials", {"window_days": 90}) | |
| logger.info(f"Cred DB Tool Result: {result}") | |
| except Exception as e: | |
| logger.error(f"Cred DB Tool Call Failed: {e}", exc_info=True) | |
| logger.info("\nClosing connections...") | |
| await mcp_client.close() | |
| logger.info("Done.") | |
| if __name__ == "__main__": | |
| asyncio.run(debug_mcp()) | |