# Class: com.pnfsoftware.jeb.client.mcp.JebMcpServer
- Super class: `java.lang.Object`

JEB Model Context Protocol server.

## Constructor: JebMcpServer
- parameter: `host`, type: `java.lang.String`
- parameter: `port`, type: `int`
- parameter: `endpoint`, type: `java.lang.String`
- parameter: `engctx`, type: `com.pnfsoftware.jeb.core.IEnginesContext`
- parameter: `clientctx`, type: `com.pnfsoftware.jeb.client.api.IClientContext`
- throws: `java.lang.Exception`

Description: Create an MCP server instance. It is recommended to use the [JebMcpServerInstance](com.pnfsoftware.jeb.client.mcp.JebMcpServerInstance.md)  factory class instead of directly calling this constructor.
parameter: host: the host the server will advertise to clients \(the http server will bind to this             interface\); leave null or empty to listen on localhost
parameter: port: mandatory port number
parameter: endpoint: end\-point starting with '/'; leave null or empty to use "/mcp"
parameter: engctx: mandatory back\-end engines
parameter: clientctx: optional client context
throws: 

## Static Final Field: MCP_SERVER_NAME
Type: `java.lang.String`

Constant value: `jeb-mcp-server`

## Static Final Field: MCP_SERVER_VERSION
Type: `java.lang.String`

Constant value: `1.3.0`

## Static Final Field: TOOL_add_artifact
Type: `java.lang.String`

Constant value: `add_artifact`

## Static Final Field: TOOL_bulk_auto_rename_dex_items
Type: `java.lang.String`

Constant value: `bulk_auto_rename_dex_items`

## Static Final Field: TOOL_cancel_operation
Type: `java.lang.String`

Constant value: `cancel_operation`

## Static Final Field: TOOL_check_operation
Type: `java.lang.String`

Constant value: `check_operation`

## Static Final Field: TOOL_close_project
Type: `java.lang.String`

Constant value: `close_project`

## Static Final Field: TOOL_create_dex_package
Type: `java.lang.String`

Constant value: `create_dex_package`

## Static Final Field: TOOL_decompile_code_item
Type: `java.lang.String`

Constant value: `decompile_code_item`

## Static Final Field: TOOL_find_dynamic_library
Type: `java.lang.String`

Constant value: `find_dynamic_library`

## Static Final Field: TOOL_get_apk_text_artifact
Type: `java.lang.String`

Constant value: `get_apk_text_artifact`

## Static Final Field: TOOL_get_client_information
Type: `java.lang.String`

Constant value: `get_client_information`

## Static Final Field: TOOL_get_disassembly_snippet
Type: `java.lang.String`

Constant value: `get_disassembly_snippet`

## Static Final Field: TOOL_get_project_information
Type: `java.lang.String`

Constant value: `get_project_information`

## Static Final Field: TOOL_get_type_information
Type: `java.lang.String`

Constant value: `get_type_information`

## Static Final Field: TOOL_get_ui_fragment_information
Type: `java.lang.String`

Constant value: `get_ui_fragment_information`

## Static Final Field: TOOL_get_unit_description
Type: `java.lang.String`

Constant value: `get_unit_description`

## Static Final Field: TOOL_get_unit_input_data
Type: `java.lang.String`

Constant value: `get_unit_input_data`

## Static Final Field: TOOL_list_apk_resources
Type: `java.lang.String`

Constant value: `list_apk_resources`

## Static Final Field: TOOL_list_code_items
Type: `java.lang.String`

Constant value: `list_code_items`

## Static Final Field: TOOL_list_code_strings
Type: `java.lang.String`

Constant value: `list_code_strings`

## Static Final Field: TOOL_list_comments
Type: `java.lang.String`

Constant value: `list_comments`

## Static Final Field: TOOL_list_cross_references
Type: `java.lang.String`

Constant value: `list_cross_references`

## Static Final Field: TOOL_list_decompiler_events
Type: `java.lang.String`

Constant value: `list_decompiler_events`

## Static Final Field: TOOL_list_units
Type: `java.lang.String`

Constant value: `list_units`

## Static Final Field: TOOL_move_dex_item_to_package
Type: `java.lang.String`

Constant value: `move_dex_item_to_package`

## Static Final Field: TOOL_open_project
Type: `java.lang.String`

Constant value: `open_project`

## Static Final Field: TOOL_rename_code_items
Type: `java.lang.String`

Constant value: `rename_code_items`

## Static Final Field: TOOL_rename_pseudo_code_variables
Type: `java.lang.String`

Constant value: `rename_pseudo_code_variables`

## Static Final Field: TOOL_run_apk_analysis
Type: `java.lang.String`

Constant value: `run_apk_analysis`

## Static Final Field: TOOL_run_apk_unpacker
Type: `java.lang.String`

Constant value: `run_apk_unpacker`

## Static Final Field: TOOL_run_script
Type: `java.lang.String`

Constant value: `run_script`

## Static Final Field: TOOL_save_project
Type: `java.lang.String`

Constant value: `save_project`

## Static Final Field: TOOL_set_comments
Type: `java.lang.String`

Constant value: `set_comments`

## Method: close


## Method: getEndpoint
- return type: `java.lang.String`

Description: Get the HTTP endpoint path exposed by the server.
return: endpoint path

## Method: getHostname
- return type: `java.lang.String`

Description: Get the hostname or bind address used by the server.
return: hostname

## Method: getName
- return type: `java.lang.String`

Description: Get the server name.
return: server name

## Method: getPort
- return type: `int`

Description: Get the listening port used by the server.
return: port number

## Method: getToolCallLogLevel
- return type: `int`

Description: 
return: a log level, as defined by [GlobalLog](com.pnfsoftware.jeb.util.logging.GlobalLog.md)

## Method: getToolCallLogVerbosity
- return type: `int`

Description: 
return: verbosity level:          
          
- 0=nothing logged          
- 1=basic tool call info is logged          
- 2=detailed tool call info is logged

## Method: getVersion
- return type: `java.lang.String`

Description: Get the server version.
return: server version

## Method: join

Description: Serve requests until the server is stopped. This method is blocking \(does not return\).

## Method: setToolCallLogLevel
- parameter: `level`, type: `int`

Description: 
parameter: a: log level, as defined by [GlobalLog](com.pnfsoftware.jeb.util.logging.GlobalLog.md)

## Method: setToolCallLogVerbosity
- parameter: `verbosity`, type: `int`

Description: Set the verbosity level for logging messages displayed when a tool is being invoked by an MCP  client.
parameter: verbosity: verbosity level:             
             
- 0=nothing logged             
- 1=basic tool call info is logged             
- 2=detailed tool call info is logged

## Static Method: createErrorResponse
- parameter: `message`, type: `java.lang.String`
- return type: `java.util.Map<java.lang.String,java.lang.Object>`


## Static Method: main
- parameter: `args`, type: `java.lang.String[]`


## Static Method: unitToPath
- parameter: `unit`, type: `com.pnfsoftware.jeb.core.units.IUnit`
- return type: `java.lang.String`


