| name | parse-package-json |
| description | Extract version, dependencies, and metadata from package.json files. Use when needing project version, dependency list, or package metadata for releases, audits, or reports. |
| allowed-tools | Read |
Parse Package JSON
Extract structured data from package.json files for version management, dependency auditing, and metadata retrieval.
When to Use
- Get current project version for release workflows
- Extract dependency list for auditing
- Read package metadata for reports
- Validate package.json structure
Instructions
Step 1: Read package.json
Use Read tool to load package.json file.
Expected Input:
file_path: Path to package.json (default:./package.json)
Tools Used: Read
Step 2: Parse JSON
Parse the JSON content and validate structure.
Validation:
- File must be valid JSON
- Must contain
nameandversionfields at minimum - Dependencies should be objects (if present)
Step 3: Extract Fields
Extract relevant fields into structured output.
Fields to Extract:
version: Semantic version stringname: Package namedescription: Package description (optional)dependencies: Production dependencies object (optional)devDependencies: Development dependencies object (optional)scripts: Available npm scripts (optional)main: Entry point file (optional)private: Private flag (optional)
Step 4: Return Structured Data
Return extracted data as JSON object.
Expected Output:
{
"version": "0.7.0",
"name": "megacampus2",
"description": "Project description",
"dependencies": {
"react": "^18.2.0"
},
"devDependencies": {
"typescript": "^5.0.0"
},
"scripts": {
"build": "tsc",
"test": "jest"
},
"main": "dist/index.js",
"private": true
}
Error Handling
- File Not Found: Return error with message "package.json not found at {path}"
- Invalid JSON: Return error with parsing details
- Missing Required Fields: Return error listing missing fields (name, version)
- Invalid Structure: Return error describing structure issue
Examples
Example 1: Extract Version
Input:
file_path: ./package.json
Output:
{
"version": "0.7.0",
"name": "megacampus2"
}
Example 2: Full Package Info
Input:
file_path: ./packages/client/package.json
Output:
{
"version": "1.2.3",
"name": "@megacampus/client",
"dependencies": {
"react": "^18.2.0",
"react-dom": "^18.2.0"
},
"scripts": {
"dev": "vite",
"build": "vite build"
}
}
Example 3: Error - File Not Found
Input:
file_path: ./nonexistent.json
Output:
{
"error": "package.json not found at ./nonexistent.json",
"success": false
}
Validation
- Can read package.json from default path
- Can read package.json from custom path
- Extracts all specified fields correctly
- Handles missing optional fields gracefully
- Returns error for missing file
- Returns error for invalid JSON
- Returns error for missing required fields
Supporting Files
schema.json: JSON schema defining expected package.json structure