latexmk-mcp 2.0.2 → 2.0.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.
Potentially problematic release.
This version of latexmk-mcp might be problematic. Click here for more details.
- package/MCP_DEBUG_COMMANDS.md +86 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +6 -9
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/reference/mcp-jq/.github/ISSUE_TEMPLATE/bug_report.yml +80 -0
- package/reference/mcp-jq/.github/ISSUE_TEMPLATE/feature_request.yml +80 -0
- package/reference/mcp-jq/.github/workflows/ci.yml +76 -0
- package/reference/mcp-jq/CHANGELOG.md +40 -0
- package/reference/mcp-jq/CONTRIBUTING.md +167 -0
- package/reference/mcp-jq/EXAMPLES.md +142 -0
- package/reference/mcp-jq/INTEGRATION.md +170 -0
- package/reference/mcp-jq/LICENSE +21 -0
- package/reference/mcp-jq/PROJECT_SUMMARY.md +137 -0
- package/reference/mcp-jq/README.md +311 -0
- package/reference/mcp-jq/SECURITY.md +62 -0
- package/reference/mcp-jq/examples/company.json +34 -0
- package/reference/mcp-jq/examples/users.json +38 -0
- package/reference/mcp-jq/install.sh +100 -0
- package/reference/mcp-jq/mcp-config.json +11 -0
- package/reference/mcp-jq/package-lock.json +1088 -0
- package/reference/mcp-jq/package.json +56 -0
- package/reference/mcp-jq/src/index.ts +374 -0
- package/reference/mcp-jq/test.js +65 -0
- package/reference/mcp-jq/tsconfig.json +24 -0
- package/reference/package/.codex +0 -0
- package/reference/package/.gitattributes +5 -0
- package/reference/package/AGENTS.md +26 -0
- package/reference/package/GEMINI.md +60 -0
- package/reference/package/LICENSE +21 -0
- package/reference/package/README.md +155 -0
- package/reference/package/bun.lock +205 -0
- package/reference/package/outputs/index.ts +832 -0
- package/reference/package/outputs/package.json +27 -0
- package/reference/package/package.json +33 -0
- package/reference/package/roadmap.md +89 -0
- package/reference/package/src/handlers.ts +697 -0
- package/reference/package/src/index.ts +388 -0
- package/reference/package/src/parser.ts +141 -0
- package/reference/package/tests/handlers.test.ts +105 -0
- package/reference/package/tests/index.test.ts +56 -0
- package/reference/package/todo +9 -0
- package/reference/package/tsconfig.json +27 -0
- package/src/index.ts +6 -9
- package/tests/index.test.ts +1 -1
- package/dist/test.d.ts +0 -1
- package/dist/test.js +0 -3
- package/dist/test.js.map +0 -1
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# MCP Debug Commands
|
|
2
|
+
|
|
3
|
+
## Local build
|
|
4
|
+
```bash
|
|
5
|
+
bun run build
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
## Local tests
|
|
9
|
+
```bash
|
|
10
|
+
bun test
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Run local built server
|
|
14
|
+
```bash
|
|
15
|
+
node /home/aidan/projects/latexmk-mcp/dist/index.js
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Run built server from dist directory
|
|
19
|
+
```bash
|
|
20
|
+
./index.js
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Check published package metadata
|
|
24
|
+
```bash
|
|
25
|
+
npm view latexmk-mcp name version bin
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Show published package summary
|
|
29
|
+
```bash
|
|
30
|
+
npm show latexmk-mcp
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Pack local workspace
|
|
34
|
+
```bash
|
|
35
|
+
npm pack
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Pack published registry version
|
|
39
|
+
```bash
|
|
40
|
+
npm pack latexmk-mcp@2.0.2
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Extract packed tarball
|
|
44
|
+
```bash
|
|
45
|
+
tar -xzf latexmk-mcp-2.0.2.tgz
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Inspect packed package.json
|
|
49
|
+
```bash
|
|
50
|
+
cat package/package.json
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Inspect packed bin entrypoint
|
|
54
|
+
```bash
|
|
55
|
+
sed -n '1,5p' package/dist/index.js
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Check packed bin file permissions
|
|
59
|
+
```bash
|
|
60
|
+
ls -l package/dist/index.js
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Run packed entrypoint with node
|
|
64
|
+
```bash
|
|
65
|
+
node package/dist/index.js
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Run packed entrypoint directly
|
|
69
|
+
```bash
|
|
70
|
+
./package/dist/index.js
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Test npx shorthand with published package
|
|
74
|
+
```bash
|
|
75
|
+
npx -y latexmk-mcp@2.0.2
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Test explicit npm package plus bin command
|
|
79
|
+
```bash
|
|
80
|
+
npx -y --package latexmk-mcp@2.0.2 latexmk-mcp
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Add MCP server in Codex via npx
|
|
84
|
+
```bash
|
|
85
|
+
codex mcp add latexmk -- npx -y latexmk-mcp
|
|
86
|
+
```
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
export {
|
|
2
|
+
export {};
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,6 @@ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
|
3
3
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
4
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
5
5
|
import { handleCheck, handleClean, handleCompile, handleDraftCompile, handleListCitations, handleListDependencies, handleReadConfig, handleWatchList, handleWatchStart, handleWatchStop, handleWriteConfig, } from "./handlers.js";
|
|
6
|
-
export { parseLatexLog } from "./parser.js";
|
|
7
6
|
// Tool Definitions
|
|
8
7
|
const TOOLS = [
|
|
9
8
|
{
|
|
@@ -276,7 +275,7 @@ const TOOLS = [
|
|
|
276
275
|
},
|
|
277
276
|
];
|
|
278
277
|
// Server
|
|
279
|
-
const server = new Server({ name: "latexmk-mcp", version: "2.0.
|
|
278
|
+
const server = new Server({ name: "latexmk-mcp", version: "2.0.2" }, { capabilities: { tools: {} },
|
|
280
279
|
instructions: "Compile, clean, watch, and inspect LaTeX documents using latexmk."
|
|
281
280
|
});
|
|
282
281
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: TOOLS }));
|
|
@@ -340,12 +339,10 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
340
339
|
async function main() {
|
|
341
340
|
const transport = new StdioServerTransport();
|
|
342
341
|
await server.connect(transport);
|
|
343
|
-
console.error("latexmk MCP server v2.0.
|
|
344
|
-
}
|
|
345
|
-
if (process.env["NODE_ENV"] !== "test" && import.meta.url.endsWith(process.argv[1] ?? "")) {
|
|
346
|
-
main().catch((err) => {
|
|
347
|
-
console.error("Fatal:", err);
|
|
348
|
-
process.exit(1);
|
|
349
|
-
});
|
|
342
|
+
console.error("latexmk MCP server v2.0.2 running on stdio");
|
|
350
343
|
}
|
|
344
|
+
main().catch((err) => {
|
|
345
|
+
console.error("Fatal:", err);
|
|
346
|
+
process.exit(1);
|
|
347
|
+
});
|
|
351
348
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,WAAW,EACX,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,GAClB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
name: Bug Report
|
|
2
|
+
description: Report a bug in @247arjun/mcp-jq
|
|
3
|
+
title: "[Bug] "
|
|
4
|
+
labels: ["bug", "triage"]
|
|
5
|
+
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
Thank you for reporting a bug! Please fill out the information below to help us investigate.
|
|
11
|
+
|
|
12
|
+
- type: textarea
|
|
13
|
+
id: description
|
|
14
|
+
attributes:
|
|
15
|
+
label: Bug Description
|
|
16
|
+
description: A clear and concise description of what the bug is.
|
|
17
|
+
placeholder: Describe what happened and what you expected to happen.
|
|
18
|
+
validations:
|
|
19
|
+
required: true
|
|
20
|
+
|
|
21
|
+
- type: textarea
|
|
22
|
+
id: reproduce
|
|
23
|
+
attributes:
|
|
24
|
+
label: Steps to Reproduce
|
|
25
|
+
description: Steps to reproduce the behavior
|
|
26
|
+
placeholder: |
|
|
27
|
+
1. Configure MCP client with...
|
|
28
|
+
2. Call tool with parameters...
|
|
29
|
+
3. See error...
|
|
30
|
+
validations:
|
|
31
|
+
required: true
|
|
32
|
+
|
|
33
|
+
- type: textarea
|
|
34
|
+
id: environment
|
|
35
|
+
attributes:
|
|
36
|
+
label: Environment Information
|
|
37
|
+
description: Please provide your environment details
|
|
38
|
+
placeholder: |
|
|
39
|
+
- OS: [e.g., macOS 14.0, Ubuntu 22.04, Windows 11]
|
|
40
|
+
- Node.js version: [e.g., 20.10.0]
|
|
41
|
+
- jq version: [e.g., jq-1.7]
|
|
42
|
+
- mcp-jq version: [e.g., 1.0.0]
|
|
43
|
+
- MCP Client: [e.g., Claude Desktop, VS Code Extension]
|
|
44
|
+
validations:
|
|
45
|
+
required: true
|
|
46
|
+
|
|
47
|
+
- type: textarea
|
|
48
|
+
id: json-data
|
|
49
|
+
attributes:
|
|
50
|
+
label: Sample JSON Data (if applicable)
|
|
51
|
+
description: If the bug involves specific JSON data, please provide a minimal example
|
|
52
|
+
render: json
|
|
53
|
+
|
|
54
|
+
- type: textarea
|
|
55
|
+
id: jq-filter
|
|
56
|
+
attributes:
|
|
57
|
+
label: jq Filter (if applicable)
|
|
58
|
+
description: The jq filter expression that caused the issue
|
|
59
|
+
render: bash
|
|
60
|
+
|
|
61
|
+
- type: textarea
|
|
62
|
+
id: error-output
|
|
63
|
+
attributes:
|
|
64
|
+
label: Error Output
|
|
65
|
+
description: Any error messages or logs
|
|
66
|
+
render: bash
|
|
67
|
+
|
|
68
|
+
- type: textarea
|
|
69
|
+
id: expected
|
|
70
|
+
attributes:
|
|
71
|
+
label: Expected Behavior
|
|
72
|
+
description: What you expected to happen
|
|
73
|
+
validations:
|
|
74
|
+
required: true
|
|
75
|
+
|
|
76
|
+
- type: textarea
|
|
77
|
+
id: additional
|
|
78
|
+
attributes:
|
|
79
|
+
label: Additional Context
|
|
80
|
+
description: Any other context about the problem (screenshots, related issues, etc.)
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
name: Feature Request
|
|
2
|
+
description: Suggest a new feature for @247arjun/mcp-jq
|
|
3
|
+
title: "[Feature] "
|
|
4
|
+
labels: ["enhancement", "triage"]
|
|
5
|
+
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
Thank you for suggesting a new feature! Please provide details below.
|
|
11
|
+
|
|
12
|
+
- type: textarea
|
|
13
|
+
id: feature-description
|
|
14
|
+
attributes:
|
|
15
|
+
label: Feature Description
|
|
16
|
+
description: A clear and concise description of the feature you'd like to see
|
|
17
|
+
placeholder: Describe the feature you want to add
|
|
18
|
+
validations:
|
|
19
|
+
required: true
|
|
20
|
+
|
|
21
|
+
- type: textarea
|
|
22
|
+
id: use-case
|
|
23
|
+
attributes:
|
|
24
|
+
label: Use Case
|
|
25
|
+
description: Describe your use case and why this feature would be valuable
|
|
26
|
+
placeholder: Explain when and how you would use this feature
|
|
27
|
+
validations:
|
|
28
|
+
required: true
|
|
29
|
+
|
|
30
|
+
- type: textarea
|
|
31
|
+
id: example-usage
|
|
32
|
+
attributes:
|
|
33
|
+
label: Example Usage
|
|
34
|
+
description: Provide an example of how this feature would work
|
|
35
|
+
placeholder: |
|
|
36
|
+
Tool call example:
|
|
37
|
+
{
|
|
38
|
+
"tool": "new_tool_name",
|
|
39
|
+
"arguments": {
|
|
40
|
+
"param": "value"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
Expected output:
|
|
45
|
+
...
|
|
46
|
+
|
|
47
|
+
- type: dropdown
|
|
48
|
+
id: complexity
|
|
49
|
+
attributes:
|
|
50
|
+
label: Estimated Complexity
|
|
51
|
+
description: How complex do you think this feature would be to implement?
|
|
52
|
+
options:
|
|
53
|
+
- Simple (minor addition to existing tool)
|
|
54
|
+
- Medium (new tool or significant enhancement)
|
|
55
|
+
- Complex (major architectural changes)
|
|
56
|
+
- Not sure
|
|
57
|
+
|
|
58
|
+
- type: checkboxes
|
|
59
|
+
id: implementation
|
|
60
|
+
attributes:
|
|
61
|
+
label: Implementation Considerations
|
|
62
|
+
description: Check all that apply
|
|
63
|
+
options:
|
|
64
|
+
- label: This requires new jq functionality
|
|
65
|
+
- label: This could be implemented with existing jq features
|
|
66
|
+
- label: This requires changes to the MCP protocol usage
|
|
67
|
+
- label: This affects backwards compatibility
|
|
68
|
+
- label: This requires new dependencies
|
|
69
|
+
|
|
70
|
+
- type: textarea
|
|
71
|
+
id: alternatives
|
|
72
|
+
attributes:
|
|
73
|
+
label: Alternatives Considered
|
|
74
|
+
description: Have you considered any alternative solutions or workarounds?
|
|
75
|
+
|
|
76
|
+
- type: textarea
|
|
77
|
+
id: additional
|
|
78
|
+
attributes:
|
|
79
|
+
label: Additional Context
|
|
80
|
+
description: Any other context about the feature request (related issues, references, etc.)
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main, develop ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ main ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
runs-on: ${{ matrix.os }}
|
|
12
|
+
|
|
13
|
+
strategy:
|
|
14
|
+
matrix:
|
|
15
|
+
os: [ubuntu-latest, macos-latest]
|
|
16
|
+
node-version: [18.x, 20.x, 22.x]
|
|
17
|
+
|
|
18
|
+
steps:
|
|
19
|
+
- name: Checkout code
|
|
20
|
+
uses: actions/checkout@v4
|
|
21
|
+
|
|
22
|
+
- name: Setup Node.js ${{ matrix.node-version }}
|
|
23
|
+
uses: actions/setup-node@v4
|
|
24
|
+
with:
|
|
25
|
+
node-version: ${{ matrix.node-version }}
|
|
26
|
+
cache: 'npm'
|
|
27
|
+
|
|
28
|
+
- name: Install jq (Ubuntu)
|
|
29
|
+
if: matrix.os == 'ubuntu-latest'
|
|
30
|
+
run: sudo apt-get update && sudo apt-get install -y jq
|
|
31
|
+
|
|
32
|
+
- name: Install jq (macOS)
|
|
33
|
+
if: matrix.os == 'macos-latest'
|
|
34
|
+
run: brew install jq
|
|
35
|
+
|
|
36
|
+
- name: Install dependencies
|
|
37
|
+
run: npm ci
|
|
38
|
+
|
|
39
|
+
- name: Build project
|
|
40
|
+
run: npm run build
|
|
41
|
+
|
|
42
|
+
- name: Run tests
|
|
43
|
+
run: npm test
|
|
44
|
+
|
|
45
|
+
- name: Verify build output
|
|
46
|
+
run: |
|
|
47
|
+
test -f build/index.js
|
|
48
|
+
test -f build/index.d.ts
|
|
49
|
+
node build/index.js --version || echo "Server requires stdio transport"
|
|
50
|
+
|
|
51
|
+
lint:
|
|
52
|
+
runs-on: ubuntu-latest
|
|
53
|
+
|
|
54
|
+
steps:
|
|
55
|
+
- name: Checkout code
|
|
56
|
+
uses: actions/checkout@v4
|
|
57
|
+
|
|
58
|
+
- name: Setup Node.js
|
|
59
|
+
uses: actions/setup-node@v4
|
|
60
|
+
with:
|
|
61
|
+
node-version: '20.x'
|
|
62
|
+
cache: 'npm'
|
|
63
|
+
|
|
64
|
+
- name: Install dependencies
|
|
65
|
+
run: npm ci
|
|
66
|
+
|
|
67
|
+
- name: TypeScript check
|
|
68
|
+
run: npx tsc --noEmit
|
|
69
|
+
|
|
70
|
+
- name: Check build artifacts are not committed
|
|
71
|
+
run: |
|
|
72
|
+
if [ -d "build" ] && [ "$(ls -A build)" ]; then
|
|
73
|
+
echo "Error: Build artifacts found in repository"
|
|
74
|
+
echo "Please remove build/ directory from git and add to .gitignore"
|
|
75
|
+
exit 1
|
|
76
|
+
fi
|
|
@@ -0,0 +1,40 @@
|
|
|
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](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [1.0.0] - 2025-07-26
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- Initial release of @247arjun/mcp-jq Server
|
|
12
|
+
- Complete MCP protocol implementation using `@modelcontextprotocol/sdk`
|
|
13
|
+
- Five core tools for JSON querying and manipulation:
|
|
14
|
+
- `jq_query` - Query JSON data directly using jq syntax
|
|
15
|
+
- `jq_query_file` - Query JSON files using jq syntax
|
|
16
|
+
- `jq_format` - Format and prettify JSON data
|
|
17
|
+
- `jq_validate` - Validate JSON syntax
|
|
18
|
+
- `jq_keys` - Extract keys from JSON objects (with recursive option)
|
|
19
|
+
- TypeScript implementation with full type safety
|
|
20
|
+
- Comprehensive test suite
|
|
21
|
+
- Automated installation script (`install.sh`)
|
|
22
|
+
- Complete documentation:
|
|
23
|
+
- README.md with setup instructions
|
|
24
|
+
- EXAMPLES.md with usage examples
|
|
25
|
+
- INTEGRATION.md with MCP client integration guide
|
|
26
|
+
- PROJECT_SUMMARY.md with project overview
|
|
27
|
+
- Example JSON files for testing and demonstration
|
|
28
|
+
- MCP client configuration templates
|
|
29
|
+
- Error handling and validation
|
|
30
|
+
- Support for raw output and large datasets
|
|
31
|
+
- Cross-platform compatibility (macOS, Linux, Windows)
|
|
32
|
+
|
|
33
|
+
### Prerequisites
|
|
34
|
+
- Node.js 18+
|
|
35
|
+
- jq command-line utility
|
|
36
|
+
|
|
37
|
+
### Supported MCP Clients
|
|
38
|
+
- Claude Desktop
|
|
39
|
+
- VS Code MCP extensions
|
|
40
|
+
- Generic MCP clients
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# Contributing to @247arjun/mcp-jq
|
|
2
|
+
|
|
3
|
+
Thank you for your interest in contributing to @247arjun/mcp-jq! This document provides guidelines for contributing to the project.
|
|
4
|
+
|
|
5
|
+
## Getting Started
|
|
6
|
+
|
|
7
|
+
1. **Fork the repository** on GitHub
|
|
8
|
+
2. **Clone your fork** locally:
|
|
9
|
+
```bash
|
|
10
|
+
git clone https://github.com/YOUR_USERNAME/mcp-jq.git
|
|
11
|
+
cd mcp-jq
|
|
12
|
+
```
|
|
13
|
+
3. **Install dependencies**:
|
|
14
|
+
```bash
|
|
15
|
+
npm install
|
|
16
|
+
```
|
|
17
|
+
4. **Build the project**:
|
|
18
|
+
```bash
|
|
19
|
+
npm run build
|
|
20
|
+
```
|
|
21
|
+
5. **Run tests**:
|
|
22
|
+
```bash
|
|
23
|
+
npm test
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Development Process
|
|
27
|
+
|
|
28
|
+
### Setting Up Development Environment
|
|
29
|
+
|
|
30
|
+
1. Ensure you have Node.js 18+ installed
|
|
31
|
+
2. Install the `jq` command-line utility:
|
|
32
|
+
- macOS: `brew install jq`
|
|
33
|
+
- Ubuntu: `sudo apt-get install jq`
|
|
34
|
+
- Windows: Download from https://jqlang.github.io/jq/download/
|
|
35
|
+
|
|
36
|
+
### Making Changes
|
|
37
|
+
|
|
38
|
+
1. **Create a feature branch**:
|
|
39
|
+
```bash
|
|
40
|
+
git checkout -b feature/your-feature-name
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
2. **Make your changes** following the coding standards:
|
|
44
|
+
- Use TypeScript for all new code
|
|
45
|
+
- Follow existing code formatting and style
|
|
46
|
+
- Add appropriate error handling
|
|
47
|
+
- Include JSDoc comments for new functions
|
|
48
|
+
|
|
49
|
+
3. **Test your changes**:
|
|
50
|
+
```bash
|
|
51
|
+
npm run build
|
|
52
|
+
npm test
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
4. **Update documentation** if needed:
|
|
56
|
+
- Update README.md for new features
|
|
57
|
+
- Add examples to EXAMPLES.md
|
|
58
|
+
- Update INTEGRATION.md for client-related changes
|
|
59
|
+
|
|
60
|
+
### Code Style
|
|
61
|
+
|
|
62
|
+
- Use TypeScript strict mode
|
|
63
|
+
- Use camelCase for variables and functions
|
|
64
|
+
- Use PascalCase for classes
|
|
65
|
+
- Include proper error handling
|
|
66
|
+
- Add JSDoc comments for public methods
|
|
67
|
+
- Keep functions focused and single-purpose
|
|
68
|
+
|
|
69
|
+
### Adding New Tools
|
|
70
|
+
|
|
71
|
+
To add a new jq tool:
|
|
72
|
+
|
|
73
|
+
1. **Add tool definition** to the `ListToolsRequestSchema` handler in `src/index.ts`
|
|
74
|
+
2. **Add case handler** to the `CallToolRequestSchema` handler
|
|
75
|
+
3. **Implement the handler method** following the existing pattern
|
|
76
|
+
4. **Add tests** to `test.js`
|
|
77
|
+
5. **Update documentation** in EXAMPLES.md and README.md
|
|
78
|
+
|
|
79
|
+
Example tool structure:
|
|
80
|
+
```typescript
|
|
81
|
+
{
|
|
82
|
+
name: "jq_new_tool",
|
|
83
|
+
description: "Description of what the tool does",
|
|
84
|
+
inputSchema: {
|
|
85
|
+
type: "object",
|
|
86
|
+
properties: {
|
|
87
|
+
// Define parameters here
|
|
88
|
+
},
|
|
89
|
+
required: ["required_param"]
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Testing
|
|
95
|
+
|
|
96
|
+
- All changes must pass existing tests
|
|
97
|
+
- Add new tests for new functionality
|
|
98
|
+
- Test with various JSON data types and edge cases
|
|
99
|
+
- Verify error handling works correctly
|
|
100
|
+
|
|
101
|
+
### Commit Messages
|
|
102
|
+
|
|
103
|
+
Use clear, descriptive commit messages:
|
|
104
|
+
- `feat: add new jq tool for array manipulation`
|
|
105
|
+
- `fix: handle empty JSON objects correctly`
|
|
106
|
+
- `docs: update integration guide for VS Code`
|
|
107
|
+
- `test: add tests for edge cases in jq_query`
|
|
108
|
+
|
|
109
|
+
## Submitting Changes
|
|
110
|
+
|
|
111
|
+
1. **Push your changes** to your fork:
|
|
112
|
+
```bash
|
|
113
|
+
git push origin feature/your-feature-name
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
2. **Create a Pull Request** on GitHub with:
|
|
117
|
+
- Clear title and description
|
|
118
|
+
- Reference any related issues
|
|
119
|
+
- List of changes made
|
|
120
|
+
- Testing performed
|
|
121
|
+
|
|
122
|
+
3. **Respond to feedback** and make any requested changes
|
|
123
|
+
|
|
124
|
+
## Bug Reports
|
|
125
|
+
|
|
126
|
+
When reporting bugs, please include:
|
|
127
|
+
|
|
128
|
+
- **Environment details**: OS, Node.js version, jq version
|
|
129
|
+
- **Steps to reproduce** the issue
|
|
130
|
+
- **Expected behavior** vs actual behavior
|
|
131
|
+
- **Error messages** or logs
|
|
132
|
+
- **Sample JSON data** that causes the issue (if applicable)
|
|
133
|
+
|
|
134
|
+
Use the GitHub issue template for bug reports.
|
|
135
|
+
|
|
136
|
+
## Feature Requests
|
|
137
|
+
|
|
138
|
+
For new features:
|
|
139
|
+
|
|
140
|
+
- **Describe the use case** and why it's needed
|
|
141
|
+
- **Provide examples** of how it would be used
|
|
142
|
+
- **Consider backwards compatibility**
|
|
143
|
+
- **Check if it can be implemented** with existing jq functionality
|
|
144
|
+
|
|
145
|
+
## Documentation
|
|
146
|
+
|
|
147
|
+
Help improve documentation by:
|
|
148
|
+
|
|
149
|
+
- Fixing typos or unclear instructions
|
|
150
|
+
- Adding more examples
|
|
151
|
+
- Improving setup guides
|
|
152
|
+
- Adding troubleshooting information
|
|
153
|
+
|
|
154
|
+
## Questions?
|
|
155
|
+
|
|
156
|
+
- Check existing GitHub issues
|
|
157
|
+
- Review the documentation (README.md, EXAMPLES.md, INTEGRATION.md)
|
|
158
|
+
- Create a new issue with the "question" label
|
|
159
|
+
|
|
160
|
+
## Code of Conduct
|
|
161
|
+
|
|
162
|
+
- Be respectful and inclusive
|
|
163
|
+
- Focus on constructive feedback
|
|
164
|
+
- Help others learn and grow
|
|
165
|
+
- Follow GitHub's community guidelines
|
|
166
|
+
|
|
167
|
+
Thank you for contributing to @247arjun/mcp-jq! 🎉
|