fix: correct manifest.json to pass MCPB validation

- Add required 'version' field (1.0.0)
- Change 'author' from string to object with name/url
- Move 'mcp_config' inside 'server' object
- Fix 'user_config' to use proper field-level structure
- Remove invalid 'compatibility' and 'capabilities' top-level fields
- Create bundle icon (512x512 PNG) to satisfy icon requirement
- Remove icon placeholder file

Validation:  mcpb validate passes with warnings only
Tasks: T149 (icon), T158 (validate), T159 (build) marked complete

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-03-22 11:33:16 -05:00
parent 622b28e42c
commit c5e42adac0
5 changed files with 28 additions and 47 deletions

BIN
assets/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -1,12 +0,0 @@
# Icon Placeholder
#
# This is a placeholder for the bundle icon.
# To complete this task:
# 1. Create a 512x512 PNG icon representing the Obsidian MCP Bundle
# 2. Place it at assets/icon.png
# 3. Remove this placeholder file
#
# Suggested icon concepts:
# - Obsidian logo combined with AI/connection symbols
# - Brain/network icon in Obsidian's purple color scheme
# - Document/note icon with chat/conversation elements

View File

@@ -1,16 +1,19 @@
{ {
"version": "0.3", "manifest_version": "0.3",
"name": "obsidian-mcp", "name": "obsidian-mcp",
"version": "1.0.0",
"display_name": "Obsidian CLI Bundle", "display_name": "Obsidian CLI Bundle",
"description": "MCP Bundle for Obsidian CLI - Enable AI assistants to manage Obsidian vaults through conversational interface", "description": "MCP Bundle for Obsidian CLI - Enable AI assistants to manage Obsidian vaults through conversational interface",
"author": "Obsidian MCP Contributors", "author": {
"name": "Obsidian MCP Contributors",
"url": "https://github.com/obsidian-mcp/obsidian-mcp-bundle"
},
"homepage": "https://github.com/obsidian-mcp/obsidian-mcp-bundle", "homepage": "https://github.com/obsidian-mcp/obsidian-mcp-bundle",
"license": "MIT", "license": "MIT",
"icon": "assets/icon.png", "icon": "assets/icon.png",
"server": { "server": {
"type": "node", "type": "node",
"entry_point": "dist/index.js" "entry_point": "dist/index.js",
},
"mcp_config": { "mcp_config": {
"command": "node", "command": "node",
"args": [ "args": [
@@ -20,26 +23,14 @@
"OBSIDIAN_VAULT": "${user_config.vault_name}", "OBSIDIAN_VAULT": "${user_config.vault_name}",
"MCP_LOG_LEVEL": "info" "MCP_LOG_LEVEL": "info"
} }
}
}, },
"user_config": { "user_config": {
"type": "object",
"properties": {
"vault_name": { "vault_name": {
"type": "string", "type": "string",
"description": "Name of the Obsidian vault to manage", "title": "Vault Name",
"description": "Name of the Obsidian vault to manage (case-sensitive)",
"required": true "required": true
} }
} }
},
"compatibility": {
"platforms": ["darwin", "win32", "linux"],
"node": ">=18.0.0",
"obsidian_cli": ">=1.0.0"
},
"capabilities": {
"tools": true,
"resources": false,
"prompts": false
},
"tools": []
} }

View File

@@ -6,6 +6,7 @@
"main": "dist/index.js", "main": "dist/index.js",
"scripts": { "scripts": {
"build": "tsc", "build": "tsc",
"validate-manifest": "mcpb validate manifest.json",
"pack": "npm run build && mcpb pack", "pack": "npm run build && mcpb pack",
"test": "jest", "test": "jest",
"dev": "tsc --watch", "dev": "tsc --watch",
@@ -28,6 +29,7 @@
"zod": "^3.22.4" "zod": "^3.22.4"
}, },
"devDependencies": { "devDependencies": {
"@anthropic-ai/mcpb": "^2.1.2",
"@types/jest": "^29.5.11", "@types/jest": "^29.5.11",
"@types/node": "^20.10.6", "@types/node": "^20.10.6",
"jest": "^29.7.0", "jest": "^29.7.0",

View File

@@ -275,7 +275,7 @@
**Purpose**: Improvements that affect multiple user stories **Purpose**: Improvements that affect multiple user stories
- [ ] T149 [P] Add bundle icon (icon.png) to assets/ directory - [X] T149 [P] Add bundle icon (icon.png) to assets/ directory
- [ ] T150 [P] Create comprehensive README.md with all 95 tools documented - [ ] T150 [P] Create comprehensive README.md with all 95 tools documented
- [ ] T151 [P] Add CHANGELOG.md following semver conventions - [ ] T151 [P] Add CHANGELOG.md following semver conventions
- [ ] T152 [P] Update manifest.json tools array with accurate descriptions - [ ] T152 [P] Update manifest.json tools array with accurate descriptions
@@ -284,8 +284,8 @@
- [ ] T155 [P] Implement consistent error response structure across all tools - [ ] T155 [P] Implement consistent error response structure across all tools
- [ ] T156 [P] Add comprehensive parameter sanitization for security - [ ] T156 [P] Add comprehensive parameter sanitization for security
- [ ] T157 [P] Optimize CLI command construction for performance - [ ] T157 [P] Optimize CLI command construction for performance
- [ ] T158 Verify manifest.json with `mcpb pack --validate` - [X] T158 Verify manifest.json with `mcpb pack --validate`
- [ ] T159 Run TypeScript build (`npm run build`) and verify no errors - [X] T159 Run TypeScript build (`npm run build`) and verify no errors
- [ ] T160 Test bundle packaging with `npm run pack` (creates .mcpb file) - [ ] T160 Test bundle packaging with `npm run pack` (creates .mcpb file)
- [ ] T161 Validate quickstart.md scenarios against implemented tools - [ ] T161 Validate quickstart.md scenarios against implemented tools
- [ ] T162 [P] Add platform-specific testing (macOS, Windows, Linux) - [ ] T162 [P] Add platform-specific testing (macOS, Windows, Linux)