o
    K0h                     @   s<   d dl Z d dlmZmZmZ d dlmZ G dd deZdS )    N)ListDictAny)MCPBasec                   @   sD   e Zd Zdd Zddee dee dedeeeef  fdd	Z	d
S )CourseraMCPc                 C   s   d| _ d| _d S )NYOUR_COURSERA_API_KEYz'https://api.coursera.org/api/courses.v1)api_keybase_url)self r   T/var/www/eduai.edurigo.com/doc_train/edurigo_ai/my_career/production/coursera_mcp.py__init__   s   
zCourseraMCP.__init__
   user_skills
skill_gapsmax_resultsreturnc           
   
   C   s   dd |dd D }dd | d}| j }d|d	|d
}ztj||d}|jdkr5| dg W S g W S  tyT }	 ztdt|	  g W  Y d}	~	S d}	~	ww )z5Fetch courses from Coursera API with targeted search.c                 S   s   g | ]}|d    qS )
skill_name)lower).0gapr   r   r   
<listcomp>   s    z-CourseraMCP.fetch_courses.<locals>.<listcomp>N   zmanagement  z course tutorial trainingsearchzNelements.courseId,elements.name,elements.partners.v1.name,elements.description)qqueryfieldslimit)params   elementsz!Error fetching Coursera courses: )	joinr	   requestsgetstatus_codejson	Exceptionprintstr)
r
   r   r   r   query_termsr   endpointr   responseer   r   r   fetch_courses
   s$   
zCourseraMCP.fetch_coursesN)r   )
__name__
__module____qualname__r   r   r   intr)   r   r.   r   r   r   r   r      s    4r   )r#   typingr   r   r   mcp_baser   r   r   r   r   r   <module>   s    