Skip to main content
Glama
il-il1

APK Security Guard MCP Suite

by il-il1
McpPlugin.class.uniqueId028.9 kB
����=�  java/lang/Object<init>()V   )com/mobilehackinglab/jadxplugin/McpPluginrunningZ  context$Ljadx/api/plugins/JadxPluginContext;0com/mobilehackinglab/jadxplugin/McpPluginOptions    pluginOptions2Lcom/mobilehackinglab/jadxplugin/McpPluginOptions;  "jadx/api/plugins/JadxPluginContextregisterOptions/(Ljadx/api/plugins/options/JadxPluginOptions;)Vjava/lang/Thread! "#runA(Lcom/mobilehackinglab/jadxplugin/McpPlugin;)Ljava/lang/Runnable; % &(Ljava/lang/Runnable;)V ( )start + ,-waitForJadxLoad()Z /01 23java/lang/SystemerrLjava/io/PrintStream;56[MCP] Jadx initialization failed. Not starting server. 789 :;java/io/PrintStreamprintln(Ljava/lang/String;)V = >?getHttpInterface()Ljava/lang/String; A BCparseHttpInterface"(Ljava/lang/String;)Ljava/net/URL; E FG startServer(Ljava/net/URL;)V /I J3out LMN O? java/net/URL getProtocol LQ R?getHost LT UVgetPort()IX YZmakeConcatWithConstants9(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;\java/io/IOException^"java/lang/IllegalArgumentException `ab c?java/lang/Exception getMessagee Yf&(Ljava/lang/String;)Ljava/lang/String; h i-isDecompilerValid k lm getDecompiler()Ljadx/api/JadxDecompiler; opq rsjadx/api/JadxDecompilergetClassesWithInners()Ljava/util/List; uvw xVjava/util/Listsizez Y{(I)Ljava/lang/String;}3[MCP] Waiting for Jadx to finish loading classes...� � ��sleep(J)V�java/lang/InterruptedException�7[MCP] Jadx failed to load classes within expected time.�jadx/api/plugins/JadxPluginInfo�jadx-mcp�JADX MCP Plugin�Exposes Jadx info over HTTP�3https://github.com/mobilehackinglab/jadx-mcp-plugin�1.0.0 �� �](Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V � �� serverSocketLjava/net/ServerSocket; ��� �-java/net/ServerSocketisClosed �� �close � ��executor&Ljava/util/concurrent/ExecutorService; ��� �$java/util/concurrent/ExecutorServiceshutdown ��� ��java/net/InetAddress getByName*(Ljava/lang/String;)Ljava/net/InetAddress; �� �(IILjava/net/InetAddress;)V ��� ��java/util/concurrent/ExecutorsnewFixedThreadPool)(I)Ljava/util/concurrent/ExecutorService;!�java/io/BufferedReader�java/io/InputStreamReader ��� ��java/net/SocketgetInputStream()Ljava/io/InputStream; ��� ��!java/nio/charset/StandardCharsetsUTF_8Ljava/nio/charset/Charset; �� �2(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V �� �(Ljava/io/Reader;)V �� ��getOutputStream()Ljava/io/OutputStream; �� �?readLine ���java/io/OutputStream �� ��� ��� ��java/lang/Stringsplit'(Ljava/lang/String;)[Ljava/lang/String; �� �-isEmpty �� �? toLowerCase�content-length: �� �� startsWith(Ljava/lang/String;)Z �� �Vlength �� �{ substring �� �?trim ��� �java/lang/IntegerparseInt(Ljava/lang/String;)I � read([C)I � ([CII)V /invoke �   equals(Ljava/lang/Object;)ZPOST � �equalsIgnoreCase  fprocessInvokeRequest{org/json/JSONObject  ; result  !"put;(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;$errore'/tools ) *? getToolsJson, Not found . /{toString �1 23getBytes(Ljava/nio/charset/Charset;)[B5java/io/PrintWriter 47 8(Ljava/io/OutputStream;Z)V:ZHTTP/1.1 200 OK Content-Type: application/json Content-Length: %d Connection: close �< =>valueOf(I)Ljava/lang/Integer; 4@ ABprintf<(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter; 4D Eflush �G HIwrite([B)V �DLjava/lang/Throwable KN OP addSuppressed(Ljava/lang/Throwable;)VeS�{ "tools": [ { "name": "get_class_source", "description": "Returns the decompiled source of a class.", "parameters": { "class_name": "string" } }, { "name": "search_method_by_name", "description": "Search methods by name.", "parameters": { "method_name": "string" } }, { "name": "search_class_by_name", "description": "Search class names containing a keyword.", "parameters": { "query": "string" } }, { "name": "list_all_classes", "description": "Returns a list of all class names.", "parameters": { "offset": "int", "limit": "int" } }, { "name": "get_methods_of_class", "description": "Returns all method names of a class.", "parameters": { "class_name": "string" } }, { "name": "get_fields_of_class", "description": "Returns all field names of a class.", "parameters": { "class_name": "string" } }, { "name": "get_method_code", "description": "Returns the code for a specific method.", "parameters": { "class_name": "string", "method_name": "string" } }, { "name": "get_apk_components", "description": "Returns all components (activities, services, receivers, providers) declared in AndroidManifest.xml", "parameters": {} }, { "name": "get_apk_info", "description": "Returns basic APK information from AndroidManifest.xml", "parameters": {} }, { "name": "get_intent_filters", "description": "Returns all intent-filters for all components", "parameters": {} }, { "name": "get_exported_components", "description": "Returns all components that are explicitly or implicitly exported", "parameters": {} }, { "name": "list_broadcast_receivers", "description": "Returns all broadcast receivers and their intent-filters", "parameters": {} }, { "name": "get_declared_permissions", "description": "Returns all permissions declared in AndroidManifest.xml", "parameters": {} }, { "name": "get_defined_permissions", "description": "Returns all custom permissions defined in AndroidManifest.xml", "parameters": {} }, { "name": "get_application_attributes", "description": "Returns all attributes of the <application> tag", "parameters": {} }, { "name": "get_all_meta_data", "description": "Returns all meta-data information from manifest and components", "parameters": {} } ] } Utool W Xf getStringZ parameters \ ]^ optJSONObject)(Ljava/lang/String;)Lorg/json/JSONObject; �` aVhashCodecget_class_sourceesearch_method_by_namegsearch_class_by_nameilist_all_classeskget_methods_of_classmget_fields_of_classoget_method_codeqget_apk_componentss get_apk_infouget_intent_filterswget_exported_componentsylist_broadcast_receivers{get_declared_permissions}get_defined_permissionsget_application_attributes�get_all_meta_data � ��handleGetClassSource)(Lorg/json/JSONObject;)Ljava/lang/String; � ��handleSearchMethodByName � ��handleSearchClassByName � ��handleListAllClasses � ��handleGetMethodsOfClass � ��handleGetFieldsOfClass � ��handleGetMethodCode � ��handleGetApkComponents � ��handleGetApkInfo � ��handleGetIntentFilters � ��handleGetExportedComponents � ��handleListBroadcastReceivers � ��handleGetDeclaredPermissions � ��handleGetDefinedPermissions � ��handleGetApplicationAttributes � ��handleGetAllMetaDatae � /?�query� � �� optString8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;�org/json/JSONArray � u� ��iterator()Ljava/util/Iterator; ��� �-java/util/IteratorhasNext �� ��next()Ljava/lang/Object;�jadx/api/JavaClass �� �? getFullName �� ��contains(Ljava/lang/CharSequence;)Z �� !�((Ljava/lang/Object;)Lorg/json/JSONArray;�results� class_name o� �s getClasses �� �?getCodee e� method_name�java/lang/StringBuilder � �� � decompile �� �s getMethods�jadx/api/JavaMethod �� �?getName �� ��append-(Ljava/lang/String;)Ljava/lang/StringBuilder;� -> � �� �� e eoffset  optInt(Ljava/lang/String;I)I limit    java/lang/Mathmin(II)I u get(I)Ljava/lang/Object;total  !*(Ljava/lang/String;I)Lorg/json/JSONObject;classes �. e � s getFields!jadx/api/JavaField  � e �% &indexOf �( & * +findMatchingBracket �- �.(II)Ljava/lang/String;00Could not extract method code from class source.2 Y�ee �6 78charAt(I)C o: ;<getRoot ()Ljadx/core/dex/nodes/RootNode; u� L@httpe ]ee LF G?getPathI/e LL M?getQuery LO P?getRef LR S? getUserInfoeVjava/net/MalformedURLExceptione ]Y Z*(Ljava/lang/String;Ljava/lang/Throwable;)V o\ ]s getResources_jadx/api/ResourceFile a bcgetClass()Ljava/lang/Class;e loadContentgjava/lang/Class fi jk getMethod@(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; mno pqjava/lang/reflect/Methodinvoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;�tgetOriginalNamev getFileNamexAndroidManifest.xmlzgetText|getData~[B �� �([BLjava/nio/charset/Charset;)V� getContent�Z鏃犳硶鑾峰彇AndroidManifest.xml鐨勫唴瀹�: 涓嶆敮鎸佺殑鍐呭绫诲瀷 `e ��� ��(javax/xml/parsers/DocumentBuilderFactory newInstance,()Ljavax/xml/parsers/DocumentBuilderFactory; �� ��setNamespaceAware(Z)V �� ��newDocumentBuilder%()Ljavax/xml/parsers/DocumentBuilder;�java/io/ByteArrayInputStream �� I ��� ��!javax/xml/parsers/DocumentBuilderparse-(Ljava/io/InputStream;)Lorg/w3c/dom/Document;�AndroidManifest.xml not found � ��getManifestDocument()Lorg/w3c/dom/Document;�activity�service�receiver�provider ��� ��org/w3c/dom/DocumentgetElementsByTagName*(Ljava/lang/String;)Lorg/w3c/dom/NodeList; ��� �Vorg/w3c/dom/NodeList getLength �� ��item(I)Lorg/w3c/dom/Node;�org/w3c/dom/Element�name� android:name �� �f getAttribute�exported�android:exported�manifest�package� versionCode�android:versionCode� versionName�android:versionName� application ��� intent-filter�action�android.intent.action.MAIN� mainActivity� component�actions�intent_filters�true�implicit�uses-permission� permission�protectionLevel�android:protectionLevel �� �� getAttributes()Lorg/w3c/dom/NamedNodeMap; ���org/w3c/dom/NamedNodeMap �� ��� �?org/w3c/dom/Node getNodeName � ? getNodeValue meta-datavalue android:value �   accept()Ljava/net/Socket; "R(Lcom/mobilehackinglab/jadxplugin/McpPlugin;Ljava/net/Socket;)Ljava/lang/Runnable; � submit3(Ljava/lang/Runnable;)Ljava/util/concurrent/Future; [ae  handleConnection(Ljava/net/Socket;)Vjadx/api/plugins/JadxPlugin PLUGIN_IDLjava/lang/String; ConstantValueCodeLineNumberTableLocalVariableTablethis+Lcom/mobilehackinglab/jadxplugin/McpPlugin;init'(Ljadx/api/plugins/JadxPluginContext;)VsafePluginStartup httpInterfaceLjava/net/URL;eLjava/lang/Exception; StackMapTablecountIretries getPluginInfo#()Ljadx/api/plugins/JadxPluginInfo;destroyhostportbindAddrLjava/net/InetAddress; Exceptions responseJsonLorg/json/JSONObject; requestLinemethodpath contentLengthheaderbuffer[C bytesReadbody respBytesLjava/io/PrintWriter; outStreamLjava/io/OutputStream;inLjava/io/BufferedReader;socketLjava/net/Socket;? requestBody requestJsontoolNameparamsPorg/json/JSONExceptionfullNameclsLjadx/api/JavaClass;arrayLorg/json/JSONArray; classNameLjadx/api/JavaMethod; methodNameLjava/lang/StringBuilder;imaxLimit allClassesLjava/util/List;responseLocalVariableTypeTable&Ljava/util/List<Ljadx/api/JavaClass;>;fieldLjadx/api/JavaField; methodCode closeBracket openBracket classCode methodIndexcCcodeopenPosdepthurl Ljava/net/MalformedURLException; resContainerLjava/lang/Object;e1xmlcontentdatae3e2factory*Ljavax/xml/parsers/DocumentBuilderFactory;resLjadx/api/ResourceFile;elLorg/w3c/dom/Element;objarrnodesLorg/w3c/dom/NodeList;compdocLorg/w3c/dom/Document; components[Ljava/lang/String;�kfilterjactfiltersappactsinfoapps filterObj actionNodes intentFiltershasIntentFilterattrLorg/w3c/dom/Node;attrsLorg/w3c/dom/NamedNodeMap; metaNodeslambda$startServer$1 clientSocketLjava/io/IOException;lambda$startServer$0 SourceFileMcpPlugin.javaBootstrapMethods� ��� ��"java/lang/invoke/LambdaMetafactory metafactory�(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;� � &� ��� Y�$java/lang/invoke/StringConcatFactory�(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;�,[MCP] Server started successfully at ://:�[MCP] Failed to start server: �)[MCP] Jadx fully loaded. Classes found: � � ��Failed to process tool: �"[MCP] Error handling connection: �Unknown tool: �Class not found: �Error fetching class: �No methods found for: �Error searching methods: �Error fetching methods: �Error fetching fields: �!Method '' not found in class ''�Class '' not found�Error fetching method code: �.Invalid protocol: . Only 'http' is supported.�,Missing or invalid host in HTTP interface: �6Port must be explicitly specified in HTTP interface: �(Path is not allowed in HTTP interface: �@HTTP interface must not contain query, fragment, or user info: �Malformed HTTP interface URL: �(鏃犳硶瑙f瀽AndroidManifest.xml: � � ��#[MCP] Error accepting connection:  InnerClasses�%java/lang/invoke/MethodHandles$Lookup�java/lang/invoke/MethodHandlesLookup!����� < *�*�� $" %!  "#$%r.*+� *�Y��*� *���Y*� �$�'� ,./1-2!."#.&�L*�*� �.4�6�**��<�@L*+�D�H+�K+�P+�S�W�6�L�.+�_�d�6�8;[8;] * 89:>?!@8C;A<BKD! '(<)*L"#+j`,-�Q<�B*�g�#*� �j�n�t=�H�y�6��H|�6~���M�����.��6�7=@� 6 JKLM!N-O/R7T=V@UAXG[O\! !,-Q"#O.-+ �,P�/0<��Y�������� d! "#1�2*�*���*�����*�����L*��� *����� [ "pqsv t!y(z1|! 2"#+`[FG�>+�PM+�S>,��:*��Y2����*����*��Y*���$�'� & �� �� �(�-�:�=�!4>"#>'(92 43-.456[K�+M��Y��Y+���Ʒ̷�N+��:-��:����-��,�,�ݱ޶�2:޶�2:6-��Y: ��% ������ �������6����: - �6 ��Y  �: � �d��Y* �:�����Y�: ��Y��: �N:�Y�#�_�%�: �0&� ��Y*�(�: ��Y�#+�:  �-�ƶ0:�4Y�6:9�Y��;S�?W�C�F�J�&�٧:��٧ :�M�-�ܧ:-�ܧ :�M�,� ,�ݧN,�,�ݧ :-�M-��M�.,�_�Q�6� ���`)�K@~�K���K3�K@��K���K7�K@��K���K?�`@��` �/�� ���$�)�?�@�K�V�Y�f�s����������������������� ���+�=�K�W�e�i�m�r�y�~�������������������!��78 �-�78 �)* 78 (78 $Z9K3:V(;Y%<-`= ��>? ��@- ��A =A78 K3B~W'JC�DE�FG�)*�"#�HI+:�3����� ����.��U��������J�����������J�� ��������J�`��M����K�����KK�FK����KK�JK� ��KK�B`*?.R� �! "#f�˻Y+�M,T�VN,Y�[:� �Y�:-:6�_�����7� �"�o��.�]��:�H[�A���˗"�L�U� ���G� ����� �EI&*�m/h9g�Sj�a%e+O��b� �6� d� ��6��f� ��6��h� ��6��j� ��6��l� ��6��n� ��6��p� ��6��r� ��6�~t� �s 6�lv� �a 6�Zx� �O 6�Hz� �= 6�6|� �+ 6�$~� �6��� �6��OXajs|����������*����*����*����*����*���|*���s*���j*���a*���X*���O*���F*���=*���4*���+*���"*����Y�#-������ b� ����($-6?HQZcl u ~ � � �����!4�"#�K �L8�M�N8+Q$�(�����P����6O���n+������M��Y��N*� �j�n��:���,����:��:��,�ә -��W��лY��-���� "?F R!Y#\$!>FQ?RSn"#nN8`�XTU+�)���/����U+ܶVM*� �j�޹�N-���#-����:��,� � �ᰧ��,���M,�_���?J`@IJ` "23.4:5@7C8J9K:!4.RSBVK )*U"#UN8+���%��`����+�VM��Y��N*� �j�޹�:���l����:�����:���B����:���,��ә!-�ж����������W������-��� -��� ,��M,�_����` 2 JKL9M>N`OrP�R�S�T�U�V!H`0:W9ZRS�X�Y� )*�"#�N8+5�#����&���E�� E��`��� �+�=+��>�6�>*� �j�n:�t6��Y��:6`� �"���:  �ж�W���׻Y�:�W�W�W�W��� Ja bcde"g0h9jBkRl`mkkqpzq�r�s�t�v!p ` RS E,Z-�"#�N8 �-� -�[-0z\]9q-BhTUz0^8_ 0z\`+#�"�" u��+��g�+ܶVM*� �j�޹�N-���]-����:��,� �C��Y��:���:�������:���W��������,���M,�_��y�`z��` 2 ��.�:�C�e�p�s�z�}�����!He :WC7TU.LRS|V� )*�"#�N8+0����4����#���`��g�+ܶVM*� �j�޹�N-���]-����:��,� �C��Y��:���:������ :�"��W��������,���M,�_�#�y�`z��` 2 ��.�:�C�e�p�s�z�}�����!He abC7TU.LRS|V� )*�"#�N8+0����4����#���`��9 �+ܶVM+�VN*� �j�޹�:��������:��,� �������:���l����:��-� �Q��:��$6  �4{ �'6  �#* �)6  �  `�,:  �/����-,�1���R,�3�M,�_�4���`���`���`���` ^���9�E�J�l�x������������������������������!z �c �d- �&e- Gf�;g- lZ:W9�RS�V�X� )*�"#�N8+=�#����2���k�������`+�>>`6+��/+�56{� ��}� ��������� . �����%�,�/�3�6�<�!>hi5Z->"#>j>k-<l-+����i-�?*� �6*� �j�**� �j�9�*� �j�n�=���L�;<` � ��&�;�<�=�!=)*?"#+ :@@`BCe��LY+�>M?,�K���]Y,�K�A�B�,�P� ,�P���]Y+�C�B�,�S��]Y+�D�B�,�E�(,�E��,�EH� ��]Y+�J�B�,�K�,�N� ,�Q��]Y+�T�B�,�M�]Y+�W,�X���U :   '8FN\z���� �!!* �m(�)n�"#�'+�'L + ��U6]��k �*� �j�[��L+����+���^MN,�`d�f�h,��l:�`r�f�h��l��N�C:,�`s�f�h,��l��N�$:,�`u�f�h,��l��N�:-�&-w��,�`d�f�h,��l:�`y�f�h��l��:��:�`{�f�h��l:�}���Y�}�Ʒ:�D�`��f�h��l:�}���Y�}�Ʒ:��`Y�����E:,�`d�f�h,��l�}:��Y�Ʒ:�:�`Y�_�������:������Y�ƶ0�������M�`Y����'[^``z}`��`���`�]``b��` �#&%''*?+[6^,`/z5}03�4�8�:�>�W�?�BCDG6H>IRK]V`NbQ}R�U�S�T�X�Y�Z�\�]!�?opq*`>)*�rrOr]sp]r}t~�r�u*b@v*��)*�op�#r�wx'��%�yz�"#+����K�^�`��^�``��^�```��E�^�`�7`5� �^��`��^�``�-�^�```��^���"��6`��2�*��M�Y�N��Y�SY�SY�SY�S::�66��2:��Y��: ,��: 6   ���N  ����: �Y�:  � ����W � ȹ��W  ��W� ���- �W���y-�-�M�Y�#,�_������` Jbc d+eEfNgXhgiuj~k�l�n�h�p�e�r�s�t!z u7{| ~.}8 [WZ- Nm~U Xc� Ev���� �8+����)*�"#�N8+k�7����# �������V����`���G*��M�Y�N,ʹ�����:-�̹��W-�й��W-�Թ��W,ֹ�:��������:���:6��������:  ٹ�: 6   ���k  ����:  ۹�: 6 ���< ����:����� �-� ����W����� ������`-�-�M�Y�#,�_����01` jz{ |!}3~EW�b�l�y����������������������%�+�1�2�!��%�|�E�-�T�| �H�� �t�- ���| �w�� ��Z-y��|����,�� $�8!�|b���2)*G"#GN8+P�� ������(���(��>����`���_*��M��Y��N��Y�SY�SY�S::�66�2:,��: 6   ����  ����: �Y�:  ��W � ����W��Y��:  ٹ�:6���w����:�Y�:��Y��:۹�:6���#���������W������W ��W���� � �W- ��W� ������-��M�Y�#,�_����HI` z�� �%�?�I�X�f�o�z�������������������� ���%�0�7�=�C�I�J�!��,�-�`�|�W�8�N�U�B�����-f�{| o�}8 ���U ����L�Z- I�� ?��D�� <U%$��J)*_"#_N8+� �1��������X����������:�������������+�����������������`���*��M��Y��N��Y�SY�SY�SY�S::�66��2:,��: 6   ����  ����:  ȹ�:  ٹ�����6 � � � ��O �J�Y�:��W� ����W� �� � �W-��W� ��_���>-��M�Y�#,�_����` R�� �+�E�O�^�l�x���������������������!� �>}8l�{| xx� �_� R�Z- O�� E����� �U+���)*"#N8+� �7��������;��@��9�������������������� ���������`��� *��M��Y��N,���:6��������:�Y�:�����W��Y��:ٹ�: 6   ���c  ����: ��Y��:  ۹�: 6 ���#  ���������W���� ��W� �����W-��W���1-��M�Y�#,�_������` b�� ��'�5�>�Q�Z�f�u���������������������������!��,�-�L�| �C�U �7�� il�- 5�{|>�}8Z��Uf��� �Z-��� �U���)* "# N8+������M �������1����������+� �����������`��4f*��M��Y��N,��:6���&����:-�����W����-��M�Y�#,�_����OP` * �� ��'�5�D�J�P�Q�!R5{|/Z-K�� CU8�Q)*f"#fN8+,�����.�`��q�*��M��Y��N,���:6���M����:�Y�:�����W����W-��W����-��M�Y�#,�_����vw` 6  '5 > Q d kqwx!\ 56{|>-}8VZ-r�� jU_�x)*�"#�N8+,�����U�`��{ �*��M�Y�N,ֹ�:���L����:��:6���'��:-����W����-�-�M�Y�#,�_����pq` 6  "/8GRek!q"r#!f R��;0Z-/<{|83��l�� d8Y�r)*�"#�N8+2�;�����/�`��q�*��M��Y��N,��:6���M����:�Y�:�����W���W-��W����-��M�Y�#,�_����vw` 6 )* +,'-5.>/Q0d1k,q3w4x5!\ 56{|>-}8VZ-r�� jU_��x)*�"#�N8+,�����U�`��>*��9*��� L*��*+� �W���L*���.+���6��Ʊ #[ & ��� �#�$�+�:�=�! �I$)�>"#+ b[�:*+�� �!"#�I��������������������������������������������������������������� ���

Latest Blog Posts

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/il-il1/APK-Security-Guard-MCP-Suite'

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