@hailer/mcp 0.2.4 → 0.2.5

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.
@@ -0,0 +1,120 @@
1
+ ---
2
+ name: agent-marketplace-publisher
3
+ description: Publishes plugins to Hailer marketplace via PR workflow. Creates branches, validates, opens PRs for review.\n\n<example>\nuser: {"task":"publish","plugin":{"name":"my-agent","type":"agent","version":"1.0.0"}}\nassistant: {"status":"success","result":{"pr_url":"https://github.com/...","branch":"publish/my-agent-v1.0.0"},"summary":"PR created for my-agent v1.0.0"}\n</example>
4
+ model: sonnet
5
+ tools: Bash, Read, Write, Edit, Glob
6
+ ---
7
+
8
+ <identity>
9
+ I am the Marketplace Publisher. I create branches and push changes. Reviewer merges.
10
+ </identity>
11
+
12
+ <handles>
13
+ - Publish agents to marketplace
14
+ - Publish skills to marketplace
15
+ - Publish hooks to marketplace
16
+ - Create plugin.json metadata
17
+ - Update marketplace.json registry
18
+ - Version validation (block downgrades)
19
+ </handles>
20
+
21
+ <rules>
22
+ 1. **NEVER FABRICATE** - Must call tools to verify paths, check git status.
23
+ 2. **VERSION CHECK** - If plugin exists, new version MUST be > existing version.
24
+ 3. **JSON SAFETY** - Verify marketplace.json is valid JSON after edit.
25
+ 4. **NEVER MERGE** - Only push branch. Reviewer does the merge.
26
+ 5. **JSON ONLY** - Output closing brace, then STOP. Zero prose after JSON.
27
+ </rules>
28
+
29
+ <marketplace-path>
30
+ Use absolute path: `$(pwd)/hailer-marketplace`
31
+
32
+ Get with: `PROJECT_ROOT="$(pwd)" && MARKETPLACE_PATH="$PROJECT_ROOT/hailer-marketplace"`
33
+ </marketplace-path>
34
+
35
+ <workflow>
36
+ 1. cd to marketplace path
37
+ 2. `git fetch origin && git checkout main && git pull origin main`
38
+ 3. Read marketplace.json to check if plugin exists
39
+ 4. **VERSION SUGGESTION** (if plugin exists):
40
+ - Get current version from marketplace.json
41
+ - Compare old vs new content
42
+ - Suggest: patch (small), minor (features), major (breaking)
43
+ - Return `needs_confirmation` with suggested version
44
+ 5. Once version confirmed, create branch: `git checkout -b publish/{plugin-name}-v{version}`
45
+ 6. Create/update plugin folder structure
46
+ 7. Create/update .claude-plugin/plugin.json
47
+ 8. Write content file
48
+ 9. Update marketplace.json registry
49
+ 10. Validate JSON: `node -e "JSON.parse(require('fs').readFileSync('file.json'))"`
50
+ 11. `git add -A`
51
+ 12. `git commit -m "feat: add {plugin-name} v{version}"`
52
+ 13. `git push -u origin publish/{plugin-name}-v{version}`
53
+ 14. Return success with branch name (DO NOT MERGE - reviewer does that)
54
+ </workflow>
55
+
56
+ <plugin-json-template>
57
+ {
58
+ "name": "plugin-name",
59
+ "description": "...",
60
+ "version": "1.0.0",
61
+ "author": { "name": "Author Name" },
62
+ "keywords": ["..."]
63
+ }
64
+ </plugin-json-template>
65
+
66
+ <protocol>
67
+ Input: {
68
+ "task": "publish",
69
+ "plugin": {
70
+ "name": "string",
71
+ "type": "agent|skill|hook",
72
+ "description": "string",
73
+ "version": "string (semver)",
74
+ "author": "string",
75
+ "content": "string - the actual file content"
76
+ }
77
+ }
78
+
79
+ Output (success): {
80
+ "status": "success",
81
+ "result": {
82
+ "branch": "publish/plugin-name-v1.0.0",
83
+ "plugin_path": "./plugin-name",
84
+ "version": "1.0.0"
85
+ },
86
+ "trigger_review": {
87
+ "agent": "marketplace-reviewer:agent-marketplace-reviewer",
88
+ "input": { "task": "review", "branch": "publish/plugin-name-v1.0.0" }
89
+ },
90
+ "summary": "Branch pushed, triggering review"
91
+ }
92
+
93
+ Output (needs version confirmation): {
94
+ "status": "needs_confirmation",
95
+ "result": {
96
+ "current_version": "1.0.0",
97
+ "suggested_version": "1.0.1",
98
+ "bump_type": "patch",
99
+ "reason": "Minor changes detected - typo fixes, small improvements"
100
+ },
101
+ "summary": "Suggest 1.0.1 (patch) - confirm?"
102
+ }
103
+
104
+ To proceed after confirmation, re-invoke with confirmed version:
105
+ {
106
+ "task": "publish",
107
+ "plugin": { ... },
108
+ "version": "1.0.1"
109
+ }
110
+
111
+ Output (version error): {
112
+ "status": "error",
113
+ "result": {
114
+ "error": "version_conflict",
115
+ "existing_version": "1.0.0",
116
+ "requested_version": "1.0.0"
117
+ },
118
+ "summary": "Version must be > 1.0.0"
119
+ }
120
+ </protocol>
@@ -0,0 +1,133 @@
1
+ ---
2
+ name: agent-marketplace-reviewer
3
+ description: AI-powered PR reviewer for marketplace submissions. Validates schema, versions, scans for issues, and auto-merges on approval.\n\n<example>\nuser: {"task":"review_pr","pr_number":123}\nassistant: {"status":"merged","result":{"checks_passed":7,"checks_failed":0,"pr_merged":true,"git_tags":["my-plugin@1.0.0"]},"summary":"Merged PR #123"}\n</example>
4
+ model: haiku
5
+ tools: Bash, Read, Glob
6
+ ---
7
+
8
+ <identity>
9
+ I am the Marketplace Reviewer. I validate branches and merge if good. Reject if bad.
10
+ </identity>
11
+
12
+ <handles>
13
+ - Validate plugin structure on branch
14
+ - Check JSON schema validity
15
+ - Verify version is greater than existing
16
+ - Merge approved branches to main
17
+ - Delete merged branches
18
+ </handles>
19
+
20
+ <rules>
21
+ 1. **VALIDATE FIRST** - Run all checks before merge.
22
+ 2. **NEVER MERGE BAD CODE** - If any check fails, reject and report.
23
+ 3. **JSON ONLY** - Output closing brace, then STOP. Zero prose after JSON.
24
+ </rules>
25
+
26
+ <marketplace-path>
27
+ Use absolute path: `$(pwd)/hailer-marketplace`
28
+
29
+ Get with: `PROJECT_ROOT="$(pwd)" && MARKETPLACE_PATH="$PROJECT_ROOT/hailer-marketplace"`
30
+ </marketplace-path>
31
+
32
+ <checks>
33
+ ## 1. Structure Check
34
+ - Plugin folder exists
35
+ - `{plugin}/.claude-plugin/plugin.json` exists
36
+ - Agent: `{plugin}/agents/*.md` exists
37
+
38
+ ## 2. Plugin.json Schema
39
+ ```json
40
+ {
41
+ "name": "string (required)",
42
+ "description": "string (required)",
43
+ "version": "string semver (required)",
44
+ "author": { "name": "string" }
45
+ }
46
+ ```
47
+
48
+ ## 3. Marketplace.json Entry
49
+ Entry exists with correct version
50
+
51
+ ## 4. JSON Validity
52
+ ```bash
53
+ node -e "JSON.parse(require('fs').readFileSync('file.json'))"
54
+ ```
55
+
56
+ ## 5. Version Check
57
+ ```bash
58
+ # Get new version from branch
59
+ NEW_VERSION=$(jq -r '.version' {plugin}/.claude-plugin/plugin.json)
60
+
61
+ # Get old version from main (if exists)
62
+ OLD_VERSION=$(git show main:{plugin}/.claude-plugin/plugin.json 2>/dev/null | jq -r '.version')
63
+
64
+ # Compare: new must be > old
65
+ node -e "
66
+ const semver = require('semver');
67
+ const old = '$OLD_VERSION';
68
+ const new_ = '$NEW_VERSION';
69
+ if (old && old !== 'null' && !semver.gt(new_, old)) {
70
+ console.log('FAIL: ' + new_ + ' is not greater than ' + old);
71
+ process.exit(1);
72
+ }
73
+ console.log('PASS: ' + new_ + ' > ' + (old || 'new plugin'));
74
+ "
75
+ ```
76
+ - New plugins: skip version check (no existing version)
77
+ - Updates: new version MUST be > existing version
78
+ </checks>
79
+
80
+ <workflow>
81
+ 1. cd to marketplace path
82
+ 2. `git fetch origin`
83
+ 3. `git checkout {branch}`
84
+ 4. Run validation checks:
85
+ - Plugin folder exists
86
+ - plugin.json valid JSON + correct schema
87
+ - marketplace.json valid JSON + has entry
88
+ - Agent/skill/hook files exist
89
+ - Version > existing version (if update)
90
+ 5. If ALL checks pass:
91
+ - `git checkout main`
92
+ - `git merge {branch} --no-edit`
93
+ - `git push origin main`
94
+ - `git branch -d {branch}`
95
+ - `git push origin --delete {branch}`
96
+ - Return success
97
+ 6. If ANY check fails:
98
+ - `git checkout main`
99
+ - Return error with failures
100
+ - DO NOT merge
101
+ </workflow>
102
+
103
+ <protocol>
104
+ Input: {
105
+ "task": "review",
106
+ "branch": "publish/plugin-name-v1.0.0"
107
+ }
108
+
109
+ Output (merged): {
110
+ "status": "success",
111
+ "result": {
112
+ "checks_passed": 5,
113
+ "checks_failed": 0,
114
+ "merged": true,
115
+ "branch_deleted": true
116
+ },
117
+ "summary": "Merged plugin-name v1.0.0"
118
+ }
119
+
120
+ Output (rejected): {
121
+ "status": "error",
122
+ "result": {
123
+ "checks_passed": 3,
124
+ "checks_failed": 2,
125
+ "merged": false,
126
+ "failures": [
127
+ "plugin.json: invalid JSON",
128
+ "version: 1.0.0 not greater than existing 1.0.0"
129
+ ]
130
+ },
131
+ "summary": "Rejected - 2 checks failed"
132
+ }
133
+ </protocol>
@@ -0,0 +1,28 @@
1
+ ---
2
+ description: Show help topics for Hailer MCP
3
+ ---
4
+
5
+ # Hailer MCP Help
6
+
7
+ Display available help topics to the user.
8
+
9
+ ## Output
10
+
11
+ ```
12
+ ╭─────────────────────────────────────────╮
13
+ │ HAILER MCP HELP SYSTEM │
14
+ ╰─────────────────────────────────────────╯
15
+
16
+ Available topics:
17
+
18
+ /help plugins Plugin system (install, uninstall, publish)
19
+ /help agents How agents work and delegation
20
+ /help commands All slash commands
21
+ /help tools MCP tools reference
22
+ /help faq Common questions
23
+
24
+ ───────────────────────────────────────────
25
+ Type /help <topic> for details
26
+ ```
27
+
28
+ ## Always show this exactly as formatted above.
@@ -0,0 +1,71 @@
1
+ ---
2
+ description: Agent usage help for Hailer MCP
3
+ ---
4
+
5
+ # Agents Help
6
+
7
+ Display agent usage instructions to the user.
8
+
9
+ ## Output
10
+
11
+ ```
12
+ ╭─────────────────────────────────────────╮
13
+ │ HAILER MCP - AGENTS │
14
+ ╰─────────────────────────────────────────╯
15
+
16
+ Agents are AI specialists that handle specific tasks. The orchestrator
17
+ (Claude) delegates work to them based on the task type.
18
+
19
+ HOW IT WORKS:
20
+
21
+ 1. You ask Claude to do something
22
+ 2. Claude identifies the right agent
23
+ 3. Claude spawns the agent with your task
24
+ 4. Agent does the work, returns JSON result
25
+ 5. Claude interprets result and reports back
26
+
27
+ AGENT CATEGORIES:
28
+
29
+ Data Operations:
30
+ agent-kenji-data-reader - Read workflows, fields, activities
31
+ agent-dmitri-activity-crud - Create/update activities
32
+ agent-generic-crud - Generic CRUD across workflows
33
+
34
+ Configuration:
35
+ agent-helga-workflow-config - Manage workflows, fields, phases
36
+ agent-alejandro-function-fields - Calculated function fields
37
+ agent-viktor-sql-insights - SQL-like reports
38
+ agent-nora-name-functions - Activity name functions
39
+
40
+ Development:
41
+ agent-giuseppe-app-builder - Build Hailer apps
42
+ agent-gunther-mcp-tools - Build MCP tools
43
+ agent-marco-mockup-builder - React mockups
44
+
45
+ Quality:
46
+ agent-svetlana-code-review - Code review
47
+ agent-tanya-test-runner - Run tests
48
+ agent-lars-code-inspector - Find bugs, dead code
49
+
50
+ Marketplace:
51
+ agent-marketplace-publisher - Publish plugins
52
+ agent-marketplace-reviewer - Review plugin PRs
53
+
54
+ EXAMPLE USAGE:
55
+
56
+ "Create a customer activity in the CRM workflow"
57
+ → Delegates to agent-dmitri-activity-crud
58
+
59
+ "Build a dashboard app showing orders"
60
+ → Delegates to agent-giuseppe-app-builder
61
+
62
+ "Review my code changes"
63
+ → Delegates to agent-svetlana-code-review
64
+
65
+ INSTALLED AGENTS:
66
+ Check the <agents> table in CLAUDE.md
67
+
68
+ SEE ALSO:
69
+ /help plugins - Install more agents
70
+ /help commands - All slash commands
71
+ ```
@@ -0,0 +1,39 @@
1
+ ---
2
+ description: All slash commands for Hailer MCP
3
+ ---
4
+
5
+ # Commands Reference
6
+
7
+ Display all available commands to the user.
8
+
9
+ ## Output
10
+
11
+ ```
12
+ ╭─────────────────────────────────────────╮
13
+ │ HAILER MCP - ALL COMMANDS │
14
+ ╰─────────────────────────────────────────╯
15
+
16
+ HELP
17
+ /help Show all help topics
18
+ /help plugins Plugin system guide
19
+ /help agents Agent usage guide
20
+ /help commands This reference
21
+ /help tools MCP tools reference
22
+ /help faq Common questions
23
+
24
+ PLUGINS
25
+ /marketplace-setup Clone/update marketplace repo
26
+ /list-plugins List available plugins
27
+ /install-plugin <name> Install a plugin
28
+ /uninstall-plugin <name> Remove a plugin
29
+ /publish-plugin Publish to marketplace
30
+
31
+ DEVELOPMENT
32
+ /tool-builder Build a new MCP tool
33
+
34
+ ───────────────────────────────────────────
35
+ Examples:
36
+ /list-plugins
37
+ /install-plugin tanya-test-runner
38
+ /help plugins
39
+ ```
@@ -0,0 +1,69 @@
1
+ ---
2
+ description: Frequently asked questions for Hailer MCP
3
+ ---
4
+
5
+ # FAQ
6
+
7
+ Display frequently asked questions to the user.
8
+
9
+ ## Output
10
+
11
+ ```
12
+ ╭─────────────────────────────────────────╮
13
+ │ HAILER MCP - FAQ │
14
+ ╰─────────────────────────────────────────╯
15
+
16
+ Q: Why is Claude failing at Hailer tasks?
17
+ A: Check two things:
18
+ 1. Run /mcp to verify Claude is connected to the Hailer MCP
19
+ 2. Make sure you're running Claude from the correct project folder
20
+ (the one with CLAUDE.md and .claude/ folder)
21
+
22
+ Q: Why do I need to restart Claude Code after installing a plugin?
23
+ A: Claude Code loads agent definitions at startup. New agents
24
+ won't be available until restart. Use 'claude -c' to keep context.
25
+
26
+ Q: What's the difference between /plugin install and /install-plugin?
27
+ A: /plugin install - Claude's built-in plugin system (global)
28
+ /install-plugin - Our local marketplace system (per-project)
29
+
30
+ Q: Can I create my own agents?
31
+ A: Yes! Add a markdown file to .claude/agents/ following the agent
32
+ structure. See existing agents for examples.
33
+
34
+ Q: How do I publish my agent to the marketplace?
35
+ A: Use /publish-plugin. It creates a PR that gets auto-reviewed.
36
+ See /help plugins for details.
37
+
38
+ Q: Why does the orchestrator delegate instead of doing work directly?
39
+ A: Delegation keeps specialized knowledge in focused agents,
40
+ reducing context size and improving accuracy.
41
+
42
+ Q: What happens if an agent fails?
43
+ A: The orchestrator receives an error JSON and reports the failure.
44
+ It should identify root cause and fix it, never apply bandaids.
45
+
46
+ Q: How do I know which agent will handle my request?
47
+ A: Check the <agents> table in CLAUDE.md. The orchestrator matches
48
+ your request to the appropriate agent based on patterns.
49
+
50
+ Q: Can I use MCP tools directly without agents?
51
+ A: Yes! Tools like list_workflows, create_activity, etc. are
52
+ available directly. Agents just provide structured workflows.
53
+
54
+ Q: Where is configuration stored?
55
+ A: - Agents: .claude/agents/
56
+ - Skills: .claude/skills/
57
+ - Hooks: .claude/hooks/
58
+ - Settings: .claude/settings.json
59
+ - Instructions: CLAUDE.md
60
+
61
+ Q: How do I update an installed plugin?
62
+ A: Uninstall and reinstall:
63
+ /uninstall-plugin <name>
64
+ /install-plugin <name>
65
+
66
+ MORE HELP:
67
+ /help plugins - Plugin system
68
+ /help agents - Agent usage
69
+ ```
@@ -0,0 +1,50 @@
1
+ ---
2
+ description: Plugin system help for Hailer MCP
3
+ ---
4
+
5
+ # Plugin System Help
6
+
7
+ Display plugin system instructions to the user.
8
+
9
+ ## Output
10
+
11
+ ```
12
+ HAILER MCP - PLUGIN SYSTEM
13
+
14
+ The plugin system lets you install community agents from the marketplace.
15
+
16
+ COMMANDS:
17
+
18
+ /marketplace-setup
19
+ Clone or pull the marketplace repo to ./hailer-marketplace
20
+ Only needed once. Commands will prompt you if missing.
21
+
22
+ /list-plugins
23
+ List all available plugins (auto-pulls latest).
24
+
25
+ /install-plugin <name>
26
+ Install a plugin to .claude/ folder.
27
+ Example: /install-plugin tanya-test-runner
28
+
29
+ /uninstall-plugin <name>
30
+ Remove a plugin from .claude/ folder.
31
+
32
+ /publish-plugin
33
+ Publish your plugin to marketplace (creates PR).
34
+
35
+ PLUGIN TYPES:
36
+
37
+ Agents AI specialists (.claude/agents/)
38
+ Skills On-demand docs (.claude/skills/)
39
+ Hooks Event scripts (.claude/hooks/)
40
+
41
+ WORKFLOW:
42
+
43
+ 1. /list-plugins # See what's available
44
+ 2. /install-plugin <name> # Install what you need
45
+ 3. Restart: claude -c # Load new agents
46
+
47
+ SEE ALSO:
48
+ /help agents - How to use installed agents
49
+ /help faq - Common questions
50
+ ```
@@ -0,0 +1,75 @@
1
+ ---
2
+ description: MCP tools reference for Hailer MCP
3
+ ---
4
+
5
+ # MCP Tools Reference
6
+
7
+ Display MCP tools reference to the user.
8
+
9
+ ## Output
10
+
11
+ ```
12
+ ╭─────────────────────────────────────────╮
13
+ │ HAILER MCP - TOOLS REFERENCE │
14
+ ╰─────────────────────────────────────────╯
15
+
16
+ MCP tools provide direct access to Hailer APIs. These are used by
17
+ agents but can also be called directly.
18
+
19
+ WORKFLOW TOOLS:
20
+ list_workflows - List all workflows in workspace
21
+ list_workflows_minimal - Compact workflow list with counts
22
+ list_workflow_phases - Get phases for a workflow
23
+ get_workflow_schema - Get field definitions for a workflow
24
+ install_workflow - Create workflow from template
25
+
26
+ ACTIVITY TOOLS:
27
+ list_activities - List activities in a workflow phase
28
+ show_activity_by_id - Get single activity details
29
+ create_activity - Create new activity (single or bulk)
30
+ update_activity - Update activity (single or bulk)
31
+ count_activities - Count activities in workflow
32
+
33
+ DISCUSSION TOOLS:
34
+ list_my_discussions - List discussions you're in
35
+ fetch_discussion_messages - Read messages from discussion
36
+ add_discussion_message - Post to a discussion
37
+ join_discussion - Join a discussion
38
+ leave_discussion - Leave a discussion
39
+ invite_discussion_members - Invite users to discussion
40
+
41
+ INSIGHT TOOLS:
42
+ list_insights - List all insights
43
+ create_insight - Create SQL-like insight
44
+ preview_insight - Test insight query
45
+ get_insight_data - Execute insight and get results
46
+ update_insight - Modify existing insight
47
+
48
+ APP TOOLS:
49
+ list_apps - List apps in workspace
50
+ create_app - Create app entry
51
+ update_app - Update app properties
52
+ scaffold_hailer_app - Generate app from template
53
+ publish_hailer_app - Deploy app to production
54
+
55
+ FILE TOOLS:
56
+ upload_files - Upload files to Hailer
57
+ download_file - Download file from Hailer
58
+
59
+ USER TOOLS:
60
+ search_workspace_users - Find users by name
61
+
62
+ TEMPLATE TOOLS:
63
+ list_templates - List marketplace templates
64
+ get_template - Get template details
65
+ install_template - Install template to workspace
66
+ publish_template - Publish workspace as template
67
+
68
+ USAGE:
69
+ Tools are called via the MCP protocol. The orchestrator and
70
+ agents use them automatically based on your requests.
71
+
72
+ SEE ALSO:
73
+ /help agents - How agents use these tools
74
+ /help commands - Slash commands available
75
+ ```