Ë
    ïñþiK;  ã                   óH  — d Z ddlZddlZddlZddlZddlZddlmZ ddl	m
Z
mZ ddlmZ ddlmZ 	 ddlZ	 dd	lmZ dd
lmZ 	 ddlZ ed«      Z ej4                  dddd¬«      Zd„ Zdedeeef   fd„Z	 	 d<dededz  de e   dz  de e   fd„Z!dedeeedz  f   fd„Z"d=dededz  fd„Z#ejI                  «       d>d„«       Z%ejI                  «        ejL                  dd ¬!«      dg fdede
edz   ejN                  d"d#d$ddd¬%«      f   de
e e    ejN                  d&d'¬!«      f   ddfd(„«       Z(ejI                  «        ejL                  dd ¬!«      dfded)e
edz   ejN                  d*d+d,¬!«      f   ddfd-„«       Z)ejI                  «        ejL                  dd ¬!«      ddg g dfded.e
edz   ejN                  d/d0d1¬!«      f   de
edz   ejN                  d"d#d$ddd¬%«      f   de
e e    ejN                  d&d'¬!«      f   d2e
e e    ejN                  d3d4d5¬!«      f   d6e
edz   ejN                  d7d8d9dddd¬:«      f   ddfd;„«       Z*y# e$ r  ed«        ej&                  d«       Y �Œ6w xY w# e$ r  ed«        ej&                  d«       Y �ŒOw xY w# e$ r dZY �ŒXw xY w)?zMCP CLI tools.é    N)ÚPath)Ú	AnnotatedÚAny)ÚFastMCP)ÚServerz=Error: typer is required. Install with 'pip install mcp[cli]'é   )Úclaude)Ú
get_loggerz?Error: mcp.server.fastmcp is not installed or not in PYTHONPATHÚcliÚmcpzMCP development toolsFT)ÚnameÚhelpÚadd_completionÚno_args_is_helpc                  óª   — t         j                  dk(  r'dD ]!  } 	 t        j                  | dgddd¬«       | c S  yy# t        j                  $ r Y Œ;w xY w)z5Get the correct npx command for the current platform.Úwin32)znpx.cmdznpx.exeÚnpxz	--versionT)ÚcheckÚcapture_outputÚshellNr   )ÚsysÚplatformÚ
subprocessÚrunÚCalledProcessError)Úcmds    úK/root/aria/mcps/aria-brain/venv/lib/python3.12/site-packages/mcp/cli/cli.pyÚ_get_npx_commandr   *   sa   € ä
‡|�|�wÒà0ò 	ˆCðÜ—‘  [Ð1¸ÈdÐZ^Õ_Ø’
ð	ð Øøô ×0Ñ0ò Ùðús   š<¼AÁAÚenv_varÚreturnc                 óÐ   — d| vr.t         j                  d| › d�«       t        j                  d«       | j	                  dd«      \  }}|j                  «       |j                  «       fS )z6Parse environment variable string in format KEY=VALUE.ú=z%Invalid environment variable format: z. Must be KEY=VALUEr   )ÚloggerÚerrorr   ÚexitÚsplitÚstrip)r   ÚkeyÚvalues      r   Ú_parse_env_varr*   8   sW   € à
�'ÑÜ�‰Ð<¸W¸IÐEXÐYÔZÜ�‰�ŒØ—‘˜s AÓ&�J€CˆØ�9‰9‹;˜Ÿ™›Ð%Ð%ó    Ú	file_specÚwith_editableÚwith_packagesc                 óÔ   — dg}|j                  g d¢«       |r|j                  dt        |«      g«       |r|D ]  }|sŒ|j                  d|g«       Œ |j                  dd| g«       |S )zABuild the uv run command that runs an MCP server through mcp run.Úuv)r   ú--withr   ú--with-editabler1   r   r   )ÚextendÚstr)r,   r-   r.   r   Úpkgs        r   Ú_build_uv_commandr6   A   sq   € ð ˆ&€Cà‡J�JÒ'Ô(áØ�
‰
Ð%¤s¨=Ó'9Ð:Ô;áØ ò 	,ˆCÚØ—
‘
˜H c˜?Õ+ð	,ð
 ‡J�J��u˜iÐ(Ô)Ø€Jr+   c                 óÆ  — t        | «      dkD  xr | d   dk(  }d|r| dd n| v r| j                  dd«      \  }}n| d}}t        |«      j                  «       j	                  «       }|j                  «       s-t        j                  d|› �«       t        j                  d«       |j                  «       s-t        j                  d|› �«       t        j                  d«       ||fS )zËParse a file path that may include a server object specification.

    Args:
        file_spec: Path to file, optionally with :object suffix

    Returns:
        Tuple of (file_path, server_object)
    r   ú:é   NzFile not found: zNot a file: )ÚlenÚrsplitr   Ú
expanduserÚresolveÚexistsr#   r$   r   r%   Úis_file)r,   Úhas_windows_driveÚfile_strÚserver_objectÚ	file_paths        r   Ú_parse_file_pathrD   X   sÓ   € ô ˜I›¨Ñ*ÒB¨y¸©|¸sÑ/BÐð Ñ 1ˆy˜˜‰}°yÑAØ"+×"2Ñ"2°3¸Ó":Ñˆ‘-à"+¨T�-ˆô �X“×)Ñ)Ó+×3Ñ3Ó5€IØ×ÑÔÜ�‰Ð'¨	 {Ð3Ô4Ü�‰�ŒØ×ÑÔÜ�‰�| I ;Ð/Ô0Ü�‰�Œà�mÐ#Ð#r+   ÚfilerB   c                 óö  — t        | j                  «      }|t        j                  vr t        j                  j	                  d|«       t
        j                  j                  d| «      }|r|j                  s7t        j                  ddt        | «      i¬«       t        j                  d«       t
        j                  j                  |«      }|j                  j                  |«       dt        dt         fd	„}|s‘d
D ]Q  }t        ||«      sŒ |t!        ||«      | › d|› �«      st        j                  d| › d|› d�«       ŒEt!        ||«      c S  t        j                  d| › d�dt        | «      i¬«       t        j                  d«       d|v r9|j#                  dd«      \  }}	 t        j$                  |«      }	t!        |	|d«      }
nt!        ||d«      }

€;t        j                  d|› d�dt        | «      i¬«       t        j                  d«        ||
|«      st        j                  d«       |
S # t&        $ r> t        j                  d|› d�dt        | «      i¬«       t        j                  d«       Y Œ£w xY w)zÏImport an MCP server from a file.

    Args:
        file: Path to the file
        server_object: Optional object name in format "module:object" or just "object"

    Returns:
        The server object
    r   Úserver_modulezCould not load modulerE   ©Úextrar   rB   Úobject_namec           	      óÈ   — t        | t        «      sRt        j                  d|› dt	        | «      › dt        › d�«       t        | t
        «      rt        j                  d«       yy)zÁHelper function to check that the server object is supported

        Args:
            server_object: The server object to check.

        Returns:
            True if it's supported.
        zThe server object z is of type z (expecting z).zXNote that only FastMCP server is supported. Low level Server class is not yet supported.FT)Ú
isinstancer   r#   r$   ÚtypeÚLowLevelServerÚwarning)rB   rJ   s     r   Ú_check_server_objectz,_import_server.<locals>._check_server_object�   s[   € ô ˜-¬Ô1Ü�L‰LÐ-¨k¨]¸,ÄtÈMÓGZÐF[Ð[gÔhoÐgpÐprÐsÔtÜ˜-¬Ô8Ü—‘Ønôð Ør+   )r   ÚserverÚappr8   zIgnoring object 'z#' as it's not a valid server objectzNo server object found in a  . Please either:
1. Use a standard variable name (mcp, server, or app)
2. Specify the object name with file:object syntax3. If the server creates the FastMCP object within main()    or another function, refactor the FastMCP object to be a    global variable named mcp, server, or app.NzCould not import module 'ú'zServer object 'z' not found)r4   Úparentr   ÚpathÚinsertÚ	importlibÚutilÚspec_from_file_locationÚloaderr#   r$   r%   Úmodule_from_specÚexec_moduler   ÚhasattrÚgetattrr&   Úimport_moduleÚImportError)rE   rB   Úfile_dirÚspecÚmodulerP   r   Úmodule_namerJ   rG   rQ   s              r   Ú_import_serverre   w   sE  € ô �4—;‘;Ó€HØ”s—x‘xÑÜ�‰�‰˜˜8Ô$ô �>‰>×1Ñ1°/À4ÓH€DÙ�t—{’{Ü�‰Ð,°V¼SÀ»YÐ4GˆÔHÜ�‰�Œä�^‰^×,Ñ,¨TÓ2€FØ‡K�K×Ñ˜FÔ#ð¬Cð ¼có ñ& à,ò 	-ˆDÜ�v˜tÕ$Ù+¬G°F¸DÓ,AÀdÀVÈ1ÈTÈFÐCSÔTÜ—L‘LÐ#4°T°F¸!¸D¸6ÐAdÐ!eÔfØÜ˜v tÓ,Ò,ð	-ô 	�‰Ø(¨¨ð /<ð <ð œ3˜t›9Ð%ð 	ô 	
ô 	�‰�Œð ˆmÑØ#0×#6Ñ#6°s¸AÓ#>Ñ ˆ�[ð	Ü%×3Ñ3°KÓ@ˆMÜ˜]¨K¸Ó>‰Fô ˜ °Ó5ˆà€~Ü�‰Ø˜m˜_¨KÐ8Øœ3˜t›9Ð%ð 	ô 	
ô 	�‰�Œá ¨Ô6Ü�‰�Œà€Møô) ò 	Ü�L‰LØ+¨K¨=¸Ð:Øœs 4›yÐ)ð ô ô �H‰H�QŽKð	ús   Æ$"H1 È1AI8É7I8c                  óæ   — 	 t         j                  j                  d«      } t        d| › �«       y# t         j                  j                  $ r# t        d«       t        j                  d«       Y yw xY w)zShow the MCP version.r   zMCP version z+MCP version unknown (package not installed)r   N)rW   ÚmetadataÚversionÚprintÚPackageNotFoundErrorr   r%   )rh   s    r   rh   rh   Ó   s[   € ðÜ×$Ñ$×,Ñ,¨UÓ3ˆÜ�˜W˜IÐ&Õ'øÜ×Ñ×2Ñ2ò ÜÐ;Ô<Ü�‰�Žðús   ‚-0 °=A0Á/A0.z2Python file to run, optionally with :object suffix)r   r2   z-ez?Directory containing pyproject.toml to install in editable mode)r   r>   Ú	file_okayÚresolve_pathr1   zAdditional packages to installc           	      óÖ  — t        | «      \  }}t        j                  dt        |«      ||rt        |«      nd|dœ¬«       	 t	        ||«      }t        |d«      r!t        t        ||j                  z   «      «      }t        | ||«      }t        «       }|s*t        j                  d«       t        j                  d«       t        j                  dk(  }t        j                   |d	g|z   d
|t#        t$        j&                  j)                  «       «      ¬«      }	t        j                  |	j*                  «       y# t        j,                  $ r`}
t        j                  dt        |«      t        |
«      |
j*                  dœ¬«       t        j                  |
j*                  «       Y d}
~
yd}
~
wt.        $ r: t        j                  ddt        |«      i¬«       t        j                  d«       Y yw xY w)z)Run an MCP server with the MCP Inspector.zStarting dev serverN)rE   rB   r-   r.   rH   Údependencieszbnpx not found. Please ensure Node.js and npm are properly installed and added to your system PATH.r   r   z@modelcontextprotocol/inspectorT)r   r   ÚenvzDev server failed)rE   r$   Ú
returncodezœnpx not found. Please ensure Node.js and npm are properly installed and added to your system PATH. You may need to restart your terminal after installation.rE   )rD   r#   Údebugr4   re   r]   ÚlistÚsetrn   r6   r   r$   r   r%   r   r   r   ÚdictÚosÚenvironÚitemsrp   r   ÚFileNotFoundError)r,   r-   r.   rE   rB   rQ   Úuv_cmdÚnpx_cmdr   ÚprocessÚes              r   Údevr}   Þ   sž  € ô4 +¨9Ó5Ñ€Dˆ-ä
‡L�LØä˜“IØ*Ù3@œS Ô/ÀdØ*ñ	
ð ô ð*ä  mÓ4ˆÜ�6˜>Ô*Ü ¤ ]°V×5HÑ5HÑ%HÓ!IÓJˆMä" 9¨m¸]ÓKˆô #Ó$ˆÙÜ�L‰LØtôô �H‰H�QŒKô —‘ Ñ'ˆÜ—.‘.ØÐ7Ð8¸6ÑAØØÜ”R—Z‘Z×%Ñ%Ó'Ó(ô	
ˆô 	�‰�×#Ñ#Õ$øÜ×(Ñ(ò 	Ü�‰Øä˜D›	Ü˜Q›ØŸl™lñð 	ô 	
ô 	�‰�—‘×ÑûÜò Ü�‰ð"ð œ3˜t›9Ð%ð	 	ô 	
ô 	�‰�Žðús!   ÁC1D4 Ä4G(ÅAF"Æ"AG(Ç'G(Ú	transportz--transportz-tz(Transport protocol to use (stdio or sse)c                 óD  — t        | «      \  }}t        j                  dt        |«      ||dœ¬«       	 t	        ||«      }i }|r||d<    |j
                  d	i |¤Ž y# t        $ r: t        j                  ddt        |«      i¬«       t        j                  d«       Y yw xY w)
a»  Run an MCP server.

    The server can be specified in two ways:

    1. Module approach: server.py - runs the module directly, expecting a server.run() call.

    2. Import approach: server.py:app - imports and runs the specified server object.



    Note: This command runs the server directly. You are responsible for ensuring
    all dependencies are available.

    For dependency management, use `mcp install` or `mcp dev` instead.
    zRunning server)rE   rB   r~   rH   r~   zFailed to run serverrE   r   N© )
rD   r#   rq   r4   re   r   Ú	ExceptionÚ	exceptionr   r%   )r,   r~   rE   rB   rQ   Úkwargss         r   r   r   1  s¯   € ô2 +¨9Ó5Ñ€Dˆ-ä
‡L�LØä˜“IØ*Ø"ñ
ð ô ðä  mÓ4ˆð ˆÙØ"+ˆF�;Ñàˆ�
‰
Ñ�VÓøäò Ü×ÑØ"àœ˜D›	ðð 	ô 	
ô 	�‰�Žðús   ´'A ÁA BÂBÚserver_namez--namez-nzMCustom name for the server (defaults to server's name attribute or file name)Úenv_varsz	--env-varz-vz)Environment variables in KEY=VALUE formatÚenv_filez
--env-filez-fz+Load environment variables from a .env file)r   r>   rk   Údir_okayrl   c           	      ó   — t        | «      \  }}t        j                  dt        |«      |||rt        |«      nd|dœ¬«       t	        j
                  «       s*t        j                  d«       t        j                  d«       |}d}	|s	 t        ||«      }	|	j                  }|	rt        |	d	g «      ng }|rt        t!        ||z   «      «      }d}|s|r�i }|rot"        r?	 |t#        j$                  |«      j'                  «       D ��ci c]  \  }}|€Œ	||“Œ c}}z  }n*t        j                  d«       t        j                  d«       |D ]  }t/        |«      \  }}|||<   Œ t	        j0                  | ||||¬«      rt        j3                  d|› d�«       yt        j                  d|› d�«       t        j                  d«       y# t        t        f$ r9}
t        j                  ddt        |
«      i¬«       |j                  }Y d}
~
�Œcd}
~
ww xY wc c}}w # t(        t*        f$ r. t        j-                  d
«       t        j                  d«       Y �Œ
w xY w)z¥Install an MCP server in the Claude desktop app.

    Environment variables are preserved once added and only updated if new values
    are explicitly provided.
    zInstalling serverN)rE   r„   rB   r-   r.   rH   zClaude app not foundr   zFCould not import server (likely missing dependencies), using file namer$   rn   zFailed to load .env filez6python-dotenv is not installed. Cannot load .env file.)r-   r.   r…   zSuccessfully installed z in Claude appzFailed to install )rD   r#   rq   r4   r	   Úget_claude_config_pathr$   r   r%   re   r   r`   ÚModuleNotFoundErrorÚstemr^   rr   rs   ÚdotenvÚdotenv_valuesrw   ÚOSErrorÚ
ValueErrorr‚   r*   Úupdate_claude_configÚinfo)r,   r„   r-   r.   r…   r†   rE   rB   r   rQ   r|   Úserver_dependenciesÚenv_dictÚkÚvr   r(   r)   s                     r   Úinstallr–   j  s+  € ôt +¨9Ó5Ñ€Dˆ-ä
‡L�LØä˜“IØ&Ø*Ù3@œS Ô/ÀdØ*ñ
ð ô 	ô ×(Ñ(Ô*Ü�‰Ð+Ô,Ü�‰�Œð €DØ€FÙð	Ü# D¨-Ó8ˆFØ—;‘;ˆDñ BHœ' &¨.¸"Ô=ÈRÐÙÜœS Ð1DÑ!DÓEÓFˆð '+€HÙ‘8ØˆáÝð Ø´&×2FÑ2FÀxÓ2P×2VÑ2VÓ2X× j©$¨!¨QÐ\]Ñ\i  A¡Ó jÑj‘Hô
 —‘ÐUÔVÜ—‘˜”ð  ò 	"ˆGÜ'¨Ó0‰JˆC�Ø!ˆH�SŠMð	"ô ×"Ñ"ØØØ#Ø#Øõô 	�‰Ð-¨d¨V°>ÐBÕCä�‰Ð)¨$¨¨~Ð>Ô?Ü�‰��øôW Ô0Ð1ò 	Ü�L‰LØXØ¤ A£Ð'ð ô ð —9‘9ŽDûð	üó( !køÜ¤Ð,ò  Ü×$Ñ$Ð%?Ô@Ü—H‘H˜Q—Kð úsB   ÂF? Ã'H Ä
H
ÄH
ÄH Æ?HÇ.HÈHÈ
H È9IÉI)NN)N)r    N)+Ú__doc__Úimportlib.metadatarW   Úimportlib.utilru   r   r   Úpathlibr   Útypingr   r   Ú
mcp.serverr   r   rN   Útyperr`   ri   r%   Úmcp.clir	   Ú$mcp.server.fastmcp.utilities.loggingr
   rŒ   r#   ÚTyperrR   r   r4   Útupler*   rr   r6   rD   re   Úcommandrh   ÚArgumentÚOptionr}   r   r–   r€   r+   r   ú<module>r¥      s'  ðÙ ã Û Û 	Û Û 
Ý ß !å Ý /ðÛð
ÝÝ?ð
Ûñ 
�EÓ	€à€e‡k�kØ	Ø	 ØØô	€òð&˜Cð & E¨#¨s¨(¡Oó &ð "&Ø&*ñØðà˜$‘;ðð ˜‘9˜tÑ#ðð 
ˆ#�Yó	ð.$ ð $¨¨d°C¸$±JÐ.>Ñ(?ó $ñ>Y˜ð Y¨c°D©jó Yðx ‡�ƒòó ðð ‡�ƒà#�U—^‘^ØØAôð 	ð 	ñ-OØðOð
 Øˆt‰Øˆ�‰ØØØRØØØô	
ð	ñ
ðOð  ØˆS‰	Øˆ�‰ØØ1ô	
ð	ñð!Oð. 
ò/Oó ðOðd ‡�ƒà#�U—^‘^ØØAôð 	ñ5Øð5ð
 Øˆd‰
Øˆ�‰ØØØ;ô	
ð	ñð5ð 
ò5ó ð5ðp ‡�ƒà#�U—^‘^ØØAôð 	ð 	ð 	ð 	ð 	ñe}Øð}ð
 Øˆd‰
Øˆ�‰ØØØ`ô	
ð	ñð}ð Øˆt‰Øˆ�‰ØØØRØØØô	
ð	ñ
ð}ð0 ØˆS‰	Øˆ�‰ØØ1ô	
ð	ñð1}ð> ØˆS‰	Øˆ�‰ØØØ<ô	
ð	ñð?}ðN Øˆt‰Øˆ�‰ØØØ>ØØØØô	
ð		ñðO}ðf 
òg}ó ñ}øðw
 ò Ù	Ð
IÔJØ€C‡H�HˆQ‡Kðûð ò Ù	Ð
KÔLØ€C‡H�HˆQ‡Kðûð ò ØƒFðús4   ²I
 ·I0 ÁJ É
I-É,I-É0JÊJÊJ!Ê J!