"""Gradio Space exposing the read-only Reverse Skill MCP tools.""" import gradio as gr from reverse_skill import ( draft_reverse_security_plan, get_reverse_skill_context, get_reverse_skill_scope_contract, list_reverse_skill_routes, route_reverse_task, ) DESCRIPTION = """ # Reverse Skill MCP Read-only routing and scope-first methodology for authorized reverse-engineering, defensive security, malware triage, code audit, forensics, and reporting. This remote service does not execute commands, install tools, contact targets, access credentials, or perform exploit/evasion activity. """ with gr.Blocks(title="Reverse Skill MCP") as demo: gr.Markdown(DESCRIPTION) gr.Markdown("Use **View API → MCP** to inspect the tools and connect this Space to HuggingChat.") # These are MCP-only endpoints: they provide pure, typed functions without # creating a second UI surface that could be mistaken for an operator console. gr.api(route_reverse_task, api_name="route_reverse_task") gr.api(get_reverse_skill_context, api_name="get_reverse_skill_context") gr.api(draft_reverse_security_plan, api_name="draft_reverse_security_plan") gr.api(get_reverse_skill_scope_contract, api_name="get_reverse_skill_scope_contract") gr.api(list_reverse_skill_routes, api_name="list_reverse_skill_routes") if __name__ == "__main__": demo.launch(mcp_server=True)