windows-exe-decompiler-mcp-server 0.1.1 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/CLAUDE_INSTALLATION.md +143 -0
  3. package/CODEX_INSTALLATION.md +36 -1
  4. package/COPILOT_INSTALLATION.md +43 -1
  5. package/LICENSE +21 -21
  6. package/README.md +315 -112
  7. package/README_zh.md +532 -0
  8. package/dist/analysis-provenance.d.ts +50 -2
  9. package/dist/analysis-provenance.js +1 -0
  10. package/dist/analysis-task-runner.js +29 -0
  11. package/dist/config.d.ts +78 -16
  12. package/dist/config.js +94 -3
  13. package/dist/database.js +115 -115
  14. package/dist/decompiler-worker.d.ts +24 -6
  15. package/dist/decompiler-worker.js +547 -106
  16. package/dist/dynamic-trace.d.ts +6 -0
  17. package/dist/dynamic-trace.js +52 -1
  18. package/dist/ghidra-analysis-status.d.ts +26 -0
  19. package/dist/ghidra-config.d.ts +21 -0
  20. package/dist/ghidra-config.js +159 -9
  21. package/dist/ghidra-execution-summary.d.ts +158 -0
  22. package/dist/ghidra-execution-summary.js +174 -0
  23. package/dist/index.js +32 -4
  24. package/dist/pe-runtime-functions.d.ts +90 -0
  25. package/dist/pe-runtime-functions.js +452 -0
  26. package/dist/polling-guidance.d.ts +28 -0
  27. package/dist/polling-guidance.js +75 -0
  28. package/dist/prompts/module-reconstruction-review.d.ts +5 -0
  29. package/dist/prompts/module-reconstruction-review.js +65 -0
  30. package/dist/runtime-correlation.d.ts +5 -0
  31. package/dist/runtime-correlation.js +179 -2
  32. package/dist/sample-workspace.d.ts +28 -0
  33. package/dist/sample-workspace.js +186 -0
  34. package/dist/semantic-name-suggestion-artifacts.d.ts +56 -0
  35. package/dist/semantic-name-suggestion-artifacts.js +87 -0
  36. package/dist/server.js +1 -1
  37. package/dist/setup-guidance.d.ts +75 -0
  38. package/dist/setup-guidance.js +302 -0
  39. package/dist/tools/artifact-read.d.ts +8 -8
  40. package/dist/tools/artifacts-diff.d.ts +8 -8
  41. package/dist/tools/artifacts-list.d.ts +8 -8
  42. package/dist/tools/attack-map.d.ts +8 -8
  43. package/dist/tools/binary-role-profile.d.ts +448 -68
  44. package/dist/tools/binary-role-profile.js +155 -6
  45. package/dist/tools/code-function-explain-apply.d.ts +12 -12
  46. package/dist/tools/code-function-explain-prepare.d.ts +12 -12
  47. package/dist/tools/code-function-explain-review.d.ts +16 -16
  48. package/dist/tools/code-function-rename-apply.d.ts +12 -12
  49. package/dist/tools/code-function-rename-prepare.d.ts +14 -14
  50. package/dist/tools/code-function-rename-review.d.ts +18 -18
  51. package/dist/tools/code-functions-define.d.ts +337 -0
  52. package/dist/tools/code-functions-define.js +337 -0
  53. package/dist/tools/code-functions-list.js +1 -1
  54. package/dist/tools/code-functions-rank.js +1 -1
  55. package/dist/tools/code-functions-reconstruct.d.ts +324 -14
  56. package/dist/tools/code-functions-reconstruct.js +130 -10
  57. package/dist/tools/code-functions-smart-recover.d.ts +352 -0
  58. package/dist/tools/code-functions-smart-recover.js +190 -0
  59. package/dist/tools/code-module-review-apply.d.ts +233 -0
  60. package/dist/tools/code-module-review-apply.js +209 -0
  61. package/dist/tools/code-module-review-prepare.d.ts +756 -0
  62. package/dist/tools/code-module-review-prepare.js +343 -0
  63. package/dist/tools/code-module-review.d.ts +474 -0
  64. package/dist/tools/code-module-review.js +566 -0
  65. package/dist/tools/code-reconstruct-export.d.ts +199 -27
  66. package/dist/tools/code-reconstruct-export.js +578 -21
  67. package/dist/tools/code-reconstruct-plan.d.ts +14 -14
  68. package/dist/tools/com-role-profile.d.ts +353 -0
  69. package/dist/tools/com-role-profile.js +186 -0
  70. package/dist/tools/dll-export-profile.d.ts +625 -0
  71. package/dist/tools/dll-export-profile.js +230 -0
  72. package/dist/tools/dotnet-metadata-extract.d.ts +19 -19
  73. package/dist/tools/dotnet-reconstruct-export.d.ts +27 -27
  74. package/dist/tools/dotnet-types-list.d.ts +18 -18
  75. package/dist/tools/dynamic-dependencies.d.ts +144 -8
  76. package/dist/tools/dynamic-dependencies.js +20 -1
  77. package/dist/tools/dynamic-memory-import.js +105 -2
  78. package/dist/tools/ghidra-analyze.d.ts +22 -0
  79. package/dist/tools/ghidra-analyze.js +18 -3
  80. package/dist/tools/ghidra-health.d.ts +177 -0
  81. package/dist/tools/ghidra-health.js +32 -0
  82. package/dist/tools/ioc-export.d.ts +8 -8
  83. package/dist/tools/packer-detect.d.ts +10 -10
  84. package/dist/tools/packer-detect.js +6 -9
  85. package/dist/tools/pe-exports-extract.d.ts +8 -8
  86. package/dist/tools/pe-exports-extract.js +6 -9
  87. package/dist/tools/pe-fingerprint.d.ts +36 -36
  88. package/dist/tools/pe-imports-extract.d.ts +8 -8
  89. package/dist/tools/pe-imports-extract.js +6 -9
  90. package/dist/tools/pe-pdata-extract.d.ts +448 -0
  91. package/dist/tools/pe-pdata-extract.js +219 -0
  92. package/dist/tools/pe-symbols-recover.d.ts +227 -0
  93. package/dist/tools/pe-symbols-recover.js +316 -0
  94. package/dist/tools/report-generate.d.ts +6 -0
  95. package/dist/tools/report-generate.js +132 -15
  96. package/dist/tools/report-summarize.d.ts +2053 -62
  97. package/dist/tools/report-summarize.js +178 -8
  98. package/dist/tools/runtime-detect.d.ts +8 -8
  99. package/dist/tools/runtime-detect.js +2 -12
  100. package/dist/tools/rust-binary-analyze.d.ts +2047 -0
  101. package/dist/tools/rust-binary-analyze.js +443 -0
  102. package/dist/tools/sample-profile-get.d.ts +135 -16
  103. package/dist/tools/sample-profile-get.js +35 -32
  104. package/dist/tools/sandbox-execute.d.ts +8 -8
  105. package/dist/tools/strings-extract.d.ts +8 -8
  106. package/dist/tools/strings-extract.js +2 -12
  107. package/dist/tools/strings-floss-decode.d.ts +8 -8
  108. package/dist/tools/system-health.d.ts +172 -36
  109. package/dist/tools/system-health.js +19 -0
  110. package/dist/tools/system-setup-guide.d.ts +179 -0
  111. package/dist/tools/system-setup-guide.js +67 -0
  112. package/dist/tools/task-status.js +36 -4
  113. package/dist/tools/tool-help.js +171 -0
  114. package/dist/tools/yara-scan.d.ts +8 -8
  115. package/dist/types.d.ts +2 -0
  116. package/dist/workflows/deep-static.js +7 -0
  117. package/dist/workflows/function-explanation-review.d.ts +3312 -17
  118. package/dist/workflows/function-explanation-review.js +93 -0
  119. package/dist/workflows/function-index-recover.d.ts +333 -0
  120. package/dist/workflows/function-index-recover.js +291 -0
  121. package/dist/workflows/module-reconstruction-review.d.ts +3905 -0
  122. package/dist/workflows/module-reconstruction-review.js +367 -0
  123. package/dist/workflows/reconstruct.d.ts +2436 -211
  124. package/dist/workflows/reconstruct.js +529 -12
  125. package/dist/workflows/semantic-name-review.d.ts +1710 -22
  126. package/dist/workflows/semantic-name-review.js +55 -0
  127. package/dist/workflows/triage.d.ts +8 -8
  128. package/ghidra_scripts/DecompileFunction.java +487 -487
  129. package/ghidra_scripts/ExtractCFG.java +256 -256
  130. package/ghidra_scripts/ExtractFunctions.java +442 -442
  131. package/ghidra_scripts/README.md +112 -112
  132. package/ghidra_scripts/SearchFunctionReferences.java +380 -380
  133. package/helpers/DotNetMetadataProbe/DotNetMetadataProbe.csproj +9 -9
  134. package/helpers/DotNetMetadataProbe/Program.cs +566 -566
  135. package/install-to-claude.ps1 +432 -0
  136. package/install-to-codex.ps1 +256 -178
  137. package/install-to-copilot.ps1 +389 -303
  138. package/package.json +6 -2
  139. package/requirements.txt +9 -9
  140. package/workers/requirements-dynamic.txt +11 -11
  141. package/workers/requirements.txt +8 -8
  142. package/workers/speakeasy_compat.py +175 -175
  143. package/workers/static_worker.py +3474 -3474
package/CHANGELOG.md ADDED
@@ -0,0 +1,51 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on Keep a Changelog, and this project follows Semantic
6
+ Versioning where practical.
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.1.4] - 2026-03-14
11
+
12
+ - Added safer Ghidra defaults for `GHIDRA_PROJECT_ROOT` / `GHIDRA_LOG_ROOT`, automatic project-parent creation, and safer Windows defaults that avoid unstable per-repo relative paths
13
+ - Fixed bundled `ghidra_scripts` resolution so helper scripts are loaded from the installed package or repository root instead of the current working directory
14
+ - Added richer Ghidra diagnostics: persisted command/runtime logs, parsed Java exception summaries, normalized remediation hints, and stage progress callbacks for queued analysis
15
+ - Surfaced structured `ghidra_execution` summaries through `workflow.reconstruct`, `workflow.semantic_name_review`, `workflow.function_explanation_review`, `workflow.module_reconstruction_review`, `report.summarize`, and `report.generate`
16
+ - Added Java runtime detection and Java 21+ setup guidance across `ghidra.health`, `system.health`, `system.setup.guide`, and high-level workflows
17
+ - Extended module reconstruction review refresh so all three high-level semantic review workflows now expose the same Ghidra project/log/progress context after export refresh
18
+ - Stabilized unit coverage for Ghidra analysis failure handling, timeout reporting, Java fallback extraction, and degraded function-index recovery
19
+
20
+ ## [0.1.3] - 2026-03-14
21
+
22
+ - Added DLL- and COM-oriented profiling with `dll.export.profile` and `com.role.profile`
23
+ - Added module-level LLM review primitives: `code.module.review.prepare`, `code.module.review`, `code.module.review.apply`, prompt `reverse.module_reconstruction_review`, and `workflow.module_reconstruction_review`
24
+ - Extended `workflow.reconstruct` with role-aware export strategy so DLL/COM/Rust preflight can influence module grouping and reconstruction priority
25
+ - Improved runtime memory ingestion with segment/module hints, region ownership, and richer runtime provenance
26
+ - Added structured setup guidance with `system.setup.guide` and surfaced install/input requirements from health checks and high-level workflows
27
+ - Refined README, installation docs, and release packaging for the `0.1.3` npm/GitHub release
28
+
29
+ ## [0.1.2] - 2026-03-12
30
+
31
+ - Upgraded `workflow.reconstruct` with universal preflight orchestration, including binary role profiling, Rust-specific profiling, and optional automatic function-index recovery before export
32
+ - Aligned `workflow.semantic_name_review` and `workflow.function_explanation_review` with reconstruct refresh preflight, provenance, and selection diff semantics
33
+ - Added `.pdata`-driven PE recovery tooling: `pe.pdata.extract`, `code.functions.smart_recover`, `pe.symbols.recover`, and `code.functions.define`
34
+ - Added `workflow.function_index_recover` and `rust_binary.analyze` to make Rust and hard-to-index native samples recoverable even when Ghidra function extraction fails
35
+ - Hardened sample/original and Ghidra project fallback handling so analysis can continue when older workspaces are incomplete
36
+ - Stabilized runtime state defaults by moving workspace, database, cache, and audit paths to persistent user-level configuration roots
37
+
38
+ ## [0.1.1] - 2026-03-11
39
+
40
+ - Added `binary.role.profile` for universal EXE/DLL/.NET/driver role profiling, export surface triage, and COM/service/plugin indicators
41
+ - Added quality scaffolding with benchmark corpus example and evaluation guidance for future regression baselines
42
+ - Added async job mode for `workflow.reconstruct`, `workflow.semantic_name_review`, and `workflow.function_explanation_review`
43
+ - Wired queued workflow execution into the background analysis task runner
44
+ - Integrated binary role profile output into `report.summarize` and `report.generate`
45
+ - Added report coverage for runtime/semantic provenance plus binary role context in generated markdown and JSON output
46
+ - Continued repository and packaging cleanup for public GitHub/npm release
47
+
48
+ ## [0.1.0] - 2026-03-11
49
+
50
+ - Initial public packaging baseline
51
+ - MCP server with static PE analysis, Ghidra integration hooks, runtime evidence tools, and reconstruction workflows
@@ -0,0 +1,143 @@
1
+ # Claude Installation
2
+
3
+ This repository can be installed into Claude Code as an MCP server in three
4
+ scopes:
5
+
6
+ - `local`: machine-local config for the current project, stored in
7
+ `~/.claude.json`
8
+ - `user`: machine-wide config for your user, stored in `~/.claude.json`
9
+ - `project`: project-scoped config written to `.mcp.json` in the repo root
10
+
11
+ On this Windows setup, writing the config file directly is more reliable than
12
+ shelling out to `claude mcp add`, so the install script uses the config-file
13
+ path directly and then verifies the result with `claude mcp get`.
14
+
15
+ ## Prerequisites
16
+
17
+ - Claude Code CLI installed and available as `claude`
18
+ - Node.js available as `node`
19
+ - Project already built with `npm run build`
20
+
21
+ ## Recommended Install
22
+
23
+ From the repository root:
24
+
25
+ ```powershell
26
+ .\install-to-claude.ps1
27
+ ```
28
+
29
+ The default scope is `user`, so this installs the server once for your account
30
+ and makes it available in all Claude Code projects on this machine.
31
+
32
+ The script also writes a stable `WORKSPACE_ROOT` by default:
33
+
34
+ - `%USERPROFILE%/.windows-exe-decompiler-mcp-server/workspaces`
35
+
36
+ It also pins:
37
+
38
+ - `DB_PATH`
39
+ - `CACHE_ROOT`
40
+ - `AUDIT_LOG_PATH`
41
+ - `GHIDRA_PROJECT_ROOT`
42
+ - `GHIDRA_LOG_ROOT`
43
+
44
+ The server's bundled `ghidra_scripts/` directory is resolved from the installed
45
+ package or repository root, not from the shell's current working directory. You
46
+ do not need to manually point Claude at `ExtractFunctions.py`.
47
+
48
+ For Ghidra 12.0.4, keep Java 21+ available. If Java is installed outside the
49
+ system default location, also set `JAVA_HOME`.
50
+
51
+ ## Pass Ghidra Explicitly
52
+
53
+ ```powershell
54
+ .\install-to-claude.ps1 -GhidraPath "C:\path\to\ghidra"
55
+ ```
56
+
57
+ The script writes both `GHIDRA_PATH` and `GHIDRA_INSTALL_DIR`.
58
+
59
+ If you want to pin Ghidra project/log roots explicitly, set:
60
+
61
+ - `GHIDRA_PROJECT_ROOT`
62
+ - `GHIDRA_LOG_ROOT`
63
+
64
+ If you want a different persistent workspace root:
65
+
66
+ ```powershell
67
+ .\install-to-claude.ps1 -WorkspaceRoot "D:\reverse-data\workspaces"
68
+ ```
69
+
70
+ ## Change Scope
71
+
72
+ Examples:
73
+
74
+ ```powershell
75
+ .\install-to-claude.ps1 -Scope local
76
+ .\install-to-claude.ps1 -Scope user
77
+ .\install-to-claude.ps1 -Scope project
78
+ ```
79
+
80
+ If you choose `project`, the script writes `.mcp.json` into the repository
81
+ root. If you choose `local` or `user`, the script updates `~/.claude.json`.
82
+ Use `local` only when you want this repo to override the global `user`
83
+ registration.
84
+
85
+ If both `user` and `local` registrations exist, Claude will show the `local`
86
+ scope while you are inside that repository, and the `user` scope everywhere
87
+ else.
88
+
89
+ ## Manual Config Format
90
+
91
+ Claude Code recognizes the standard MCP config shape:
92
+
93
+ ```json
94
+ {
95
+ "mcpServers": {
96
+ "windows-exe-decompiler": {
97
+ "command": "node",
98
+ "args": ["E:/Playground/Reverse/dist/index.js"],
99
+ "cwd": "E:/Playground/Reverse",
100
+ "env": {
101
+ "WORKSPACE_ROOT": "C:/Users/<you>/.windows-exe-decompiler-mcp-server/workspaces",
102
+ "GHIDRA_PATH": "C:/path/to/ghidra",
103
+ "GHIDRA_INSTALL_DIR": "C:/path/to/ghidra"
104
+ }
105
+ }
106
+ }
107
+ }
108
+ ```
109
+
110
+ That same server object works in:
111
+
112
+ - repo-local `.mcp.json` for `project` scope
113
+ - top-level `mcpServers` in `~/.claude.json` for `user` scope
114
+ - `projects["E:/path/to/repo"].mcpServers` in `~/.claude.json` for `local`
115
+ scope
116
+
117
+ ## Verify
118
+
119
+ ```powershell
120
+ claude mcp list
121
+ claude mcp get windows-exe-decompiler
122
+ ```
123
+
124
+ If you used `project` scope, `claude mcp get` should report `Scope: Project
125
+ config (shared via .mcp.json)`. If you used `local` or `user`, it should report
126
+ the corresponding Claude config scope from `~/.claude.json`.
127
+
128
+ ## First-run setup guidance
129
+
130
+ If Claude can connect to the MCP server but reports missing Python packages,
131
+ dynamic-analysis extras, or Ghidra configuration, ask it to call:
132
+
133
+ - `system.setup.guide`
134
+ - `system.health`
135
+ - `ghidra.health`
136
+
137
+ These tools return structured `setup_actions` and `required_user_inputs`
138
+ instead of only failing with a generic error.
139
+
140
+ ## References
141
+
142
+ - Claude Code MCP overview: https://docs.anthropic.com/en/docs/claude-code/mcp
143
+ - Claude Code MCP management and CLI behavior: https://docs.anthropic.com/en/docs/claude-code/mcp#manage-mcp-servers
@@ -14,6 +14,25 @@ Then run the helper script from the repository root:
14
14
  .\install-to-codex.ps1
15
15
  ```
16
16
 
17
+ By default, the script writes a stable `WORKSPACE_ROOT` under your user profile:
18
+
19
+ - `%USERPROFILE%/.windows-exe-decompiler-mcp-server/workspaces`
20
+
21
+ It also pins:
22
+
23
+ - `DB_PATH`
24
+ - `CACHE_ROOT`
25
+ - `AUDIT_LOG_PATH`
26
+ - `GHIDRA_PROJECT_ROOT`
27
+ - `GHIDRA_LOG_ROOT`
28
+
29
+ The server's bundled `ghidra_scripts/` directory is resolved from the installed
30
+ package or repository root, not from the shell's current working directory. You
31
+ do not need to manually configure a script path for `ExtractFunctions.py`.
32
+
33
+ For Ghidra 12.0.4, keep Java 21+ available. If Java is installed in a custom
34
+ location, set `JAVA_HOME` before starting Codex.
35
+
17
36
  If Ghidra is not already configured through `GHIDRA_PATH` or
18
37
  `GHIDRA_INSTALL_DIR`, pass it explicitly:
19
38
 
@@ -21,12 +40,21 @@ If Ghidra is not already configured through `GHIDRA_PATH` or
21
40
  .\install-to-codex.ps1 -GhidraPath "C:\tools\ghidra"
22
41
  ```
23
42
 
43
+ If you want a different persistent workspace root:
44
+
45
+ ```powershell
46
+ .\install-to-codex.ps1 -WorkspaceRoot "D:\reverse-data\workspaces"
47
+ ```
48
+
24
49
  ## What the script does
25
50
 
26
51
  - validates that `dist/index.js` exists
27
52
  - registers the MCP server with Codex
28
53
  - updates `~/.codex/config.toml`
54
+ - writes `WORKSPACE_ROOT` so workspaces do not depend on the current repo path
29
55
  - writes `GHIDRA_PATH` and `GHIDRA_INSTALL_DIR` when a Ghidra path is provided
56
+ - honors `GHIDRA_PROJECT_ROOT` and `GHIDRA_LOG_ROOT` when you want Ghidra
57
+ projects and runtime logs under a fixed location
30
58
 
31
59
  ## Manual configuration example
32
60
 
@@ -41,7 +69,7 @@ cwd = "E:/path/to/repo"
41
69
  startup_timeout_sec = 30
42
70
  tool_timeout_sec = 300
43
71
  enabled = true
44
- env = { GHIDRA_PATH = "C:/tools/ghidra", GHIDRA_INSTALL_DIR = "C:/tools/ghidra" }
72
+ env = { WORKSPACE_ROOT = "C:/Users/<you>/.windows-exe-decompiler-mcp-server/workspaces", GHIDRA_PATH = "C:/tools/ghidra", GHIDRA_INSTALL_DIR = "C:/tools/ghidra" }
45
73
  ```
46
74
 
47
75
  ## Verify
@@ -58,6 +86,13 @@ Then ask Codex to call one of these tools:
58
86
  - `sample.ingest`
59
87
  - `workflow.triage`
60
88
 
89
+ If Codex reports missing Python packages, dynamic-analysis extras, or Ghidra
90
+ configuration, ask it to call:
91
+
92
+ - `system.setup.guide`
93
+ - `system.health`
94
+ - `ghidra.health`
95
+
61
96
  ## Troubleshooting
62
97
 
63
98
  - `dist/index.js was not found`
@@ -6,6 +6,25 @@ This repository includes a helper script for local GitHub Copilot clients:
6
6
  .\install-to-copilot.ps1
7
7
  ```
8
8
 
9
+ By default, the script writes a stable `WORKSPACE_ROOT` under your user profile:
10
+
11
+ - `%USERPROFILE%/.windows-exe-decompiler-mcp-server/workspaces`
12
+
13
+ It also pins:
14
+
15
+ - `DB_PATH`
16
+ - `CACHE_ROOT`
17
+ - `AUDIT_LOG_PATH`
18
+ - `GHIDRA_PROJECT_ROOT`
19
+ - `GHIDRA_LOG_ROOT`
20
+
21
+ The server's bundled `ghidra_scripts/` directory is resolved from the installed
22
+ package or repository root, not from the shell's current working directory. You
23
+ do not need to separately point Copilot at `ExtractFunctions.py`.
24
+
25
+ For Ghidra 12.0.4, keep Java 21+ available. If Java is installed outside the
26
+ default system location, set `JAVA_HOME` before launching Copilot clients.
27
+
9
28
  Build the project first:
10
29
 
11
30
  ```powershell
@@ -18,6 +37,17 @@ If Ghidra is not already configured in the environment, pass it explicitly:
18
37
  .\install-to-copilot.ps1 -GhidraPath "C:\tools\ghidra"
19
38
  ```
20
39
 
40
+ If you want to pin Ghidra projects and logs under a fixed location, set:
41
+
42
+ - `GHIDRA_PROJECT_ROOT`
43
+ - `GHIDRA_LOG_ROOT`
44
+
45
+ If you want a different persistent workspace root:
46
+
47
+ ```powershell
48
+ .\install-to-copilot.ps1 -WorkspaceRoot "D:\reverse-data\workspaces"
49
+ ```
50
+
21
51
  ## What the script updates
22
52
 
23
53
  - workspace config: `.vscode/mcp.json`
@@ -60,12 +90,24 @@ or:
60
90
  /mcp show windows-exe-decompiler
61
91
  ```
62
92
 
93
+ ## First-run setup guidance
94
+
95
+ If Copilot can reach the MCP server but the server reports missing Python
96
+ packages, dynamic-analysis extras, or Ghidra configuration, ask Copilot to call:
97
+
98
+ - `system.setup.guide`
99
+ - `system.health`
100
+ - `ghidra.health`
101
+
102
+ These tools return structured setup actions and missing user inputs.
103
+
63
104
  ## References
64
105
 
65
106
  - https://code.visualstudio.com/docs/copilot/customization/mcp-servers
66
107
  - https://code.visualstudio.com/docs/copilot/reference/mcp-configuration
67
108
  - https://docs.github.com/copilot/how-tos/copilot-cli/customize-copilot/add-mcp-servers
68
109
  - https://docs.github.com/en/enterprise-cloud@latest/copilot/reference/cli-command-reference
110
+ - https://docs.github.com/en/copilot/how-tos/use-copilot-agents/coding-agent/extend-coding-agent-with-mcp
69
111
 
70
112
  ## Scope
71
113
 
@@ -74,4 +116,4 @@ These instructions are for local Copilot clients such as:
74
116
  - VS Code with GitHub Copilot
75
117
  - GitHub Copilot CLI
76
118
 
77
- They do not configure GitHub.com hosted coding agents.
119
+ They do not configure GitHub.com hosted coding agents. For hosted coding-agent MCP setup, use the GitHub MCP coding-agent documentation linked above.
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.