Register here: Open the
Register Extensionissue template
Registry-only repository for extension pointers used by vmoranv/jshookmcp.
This repository does not store plugin or workflow source code. It only maintains Git pointers and metadata snapshots for extension repositories so that jshookmcp can fetch them by reference.
registry/plugins.index.json: plugin pointer indexregistry/workflows.index.json: workflow pointer indexscripts/: index sync and validation scripts.github/ISSUE_TEMPLATE/: issue templates.github/workflows/auto-register-extension.yml: automated sync workflow
Generated local/CI cache files such as _closed_issues.json are not part of the registry state and should stay untracked.
Submit extension repository information through a GitHub Issue:
- Create an issue with the
Register Extensiontemplate - Fill in only the required fields:
KindandRepository URL - Keep the
register-extensionlabel on the issue (the template adds it by default) - Close the issue after manual review is approved
If review rejects the registration, close it as not planned instead. not planned issues are excluded from synchronization.
Only closed issues with the register-extension label are candidates for synchronization. Issues closed as not planned are excluded.
Plugin example
- Kind:
plugin - Repository URL:
https://github.com/example/jshook_plugin_demo - Title:
[register] plugin: https://github.com/example/jshook_plugin_demo
Workflow example
- Kind:
workflow - Repository URL:
https://github.com/example/jshook_workflow_demo - Title:
[register] workflow: https://github.com/example/jshook_workflow_demo
Requirements
- The repository should be publicly accessible
- Keep the
register-extensionlabel on the issue - Close the issue after approval so the sync Action can process it
GitHub Actions runs the sync process at the following times:
- On
issues.closedwhen the issue has theregister-extensionlabel - On manual
workflow_dispatch - Daily at
06:00Beijing time (22:00UTC)
Sync flow:
- Scan all closed issues with the
register-extensionlabel - Exclude issues closed as
not planned - Parse and validate extension pointers from the issue body
- Fetch the extension repository, read
meta.yaml, and resolve the current commit - Compare against the existing registry entries and apply additions, updates, or removals
- Update
registry/*.index.jsonand commit the result directly tomaster
Notes:
- Open issues are treated as pending review and are not synchronized
- Issues closed as
not plannedare excluded from synchronization; if they match an existing pointer, the next sync removes that pointer - Existing historical registry entries are not removed only because their issue is missing
- Pointers are cleaned up only when the remote repository becomes inaccessible or the entry file is invalid
jshookmcp can browse and fetch plugins/workflows with the following process:
- Fetch the indexes:
curl -L https://raw.githubusercontent.com/vmoranv/jshookmcpextension/master/registry/plugins.index.json
curl -L https://raw.githubusercontent.com/vmoranv/jshookmcpextension/master/registry/workflows.index.json- Select an entry by
slugorid, then read:
source.reposource.commit(pinning a commit is preferred for reproducibility)source.subpathsource.entry
- Fetch the extension repository and read the entry files, for example:
git clone https://github.com/vmoranv/jshook_plugin_ida_bridge tmp_ext
git -C tmp_ext checkout 20da9249d8eeb82a658c66817c7e2bf966bad95b
cat tmp_ext/manifest.ts
cat tmp_ext/meta.yaml- For plugins, read
manifest.ts; for workflows, readworkflow.ts; combine that withmeta.yamlto present metadata.
node scripts/validate-index.mjsgh issue list --repo vmoranv/jshookmcpextension --limit 200 --state closed --json number,title,body,labels,stateReason,createdAt,updatedAt,closedAt > _closed_issues.json
node scripts/sync-index-from-issues.mjs --issues-file _closed_issues.json
node scripts/validate-index.mjs