File size: 1,409 Bytes
29bd579
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
"""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)