Skip to content

Contributing ​

Thanks for contributing to jshookmcp.

Start here ​

For regular users ​

If you only want to use the main server, prefer:

bash
npx -y @jshookmcp/jshook

You only need to clone repositories and build locally when:

  • you are debugging jshookmcp from source
  • you are developing your own plugin
  • you are developing your own workflow

Before you start developing ​

  • read README.md / README.zh.md
  • start from docs/index.md, docs/guide/getting-started.md, and docs/guide/tool-selection.md for the current information architecture
  • if you are adding extension capabilities, start from:
    • https://github.com/vmoranv/jshook_plugin_template
    • https://github.com/vmoranv/jshook_workflow_template
  • if you want your plugin or workflow to be considered for the extension registry, open an issue at:
    • https://github.com/vmoranv/jshookmcpextension/issues

Documentation hygiene rules ​

  • Prefer official VitePress capabilities first: locales, sidebar, local search, and the default theme.
  • Docs formatting and checking both go through markdownlint-cli2 (pnpm run check:docs-format, an alias of pnpm run lint:md) instead of adding extra formatting plugins for marginal gains.
  • Only introduce third-party VitePress plugins when official capabilities are clearly insufficient, and explain in the PR:
    • why official capabilities are not enough
    • the plugin maintenance and compatibility risk
    • the rollback path

Local verification ​

Run at least:

bash
pnpm run check:docs-format
pnpm run lint
pnpm run typecheck
pnpm run test
pnpm run build
pnpm run docs:build
pnpm run audit:tools

If you are working on dependency or bridge issues, also consider:

bash
pnpm run doctor
pnpm run check:docs-format

Extension development guidance ​

  • If you are only codifying a repeated tool chain: start with a workflow
  • If you need a new tool surface or an external bridge: move to a plugin
  • Use least privilege: only declare the toolExecution.allowTools entries you actually need
  • Git hygiene: do not commit artifacts/, screenshots/, debugger-sessions/, temporary traffic captures, or local secrets

Testing guidance ​

  • add tests under tests/server/domains/maintenance/*.test.ts when you add maintenance tools
  • update tests/server/ExtensionManager.test.ts when you change extension loading or security logic
  • update tests/server/domains/instrumentation/hooks/*.test.ts when you change hook presets
  • update tests/server/domains/workflow/handlers.test.ts when you change composite workflow handlers

Support the project ​

If the docs or tools are useful to you, you can support project maintenance:

WeChat Pay ​

WeChat Pay QR code

Alipay ​

Alipay QR code

Released under AGPL-3.0-only