feed-the-machine 1.5.0 → 1.6.0
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.
- package/LICENSE +21 -21
- package/README.md +170 -170
- package/bin/generate-manifest.mjs +463 -463
- package/bin/install.mjs +491 -491
- package/docs/HOOKS.md +243 -243
- package/docs/INBOX.md +233 -233
- package/ftm/SKILL.md +122 -122
- package/ftm-audit/SKILL.md +623 -541
- package/ftm-audit/references/protocols/PROJECT-PATTERNS.md +91 -91
- package/ftm-audit/references/protocols/RUNTIME-WIRING.md +66 -66
- package/ftm-audit/references/protocols/WIRING-CONTRACTS.md +135 -135
- package/ftm-audit/references/strategies/AUTO-FIX-STRATEGIES.md +69 -69
- package/ftm-audit/references/templates/REPORT-FORMAT.md +96 -96
- package/ftm-audit/scripts/run-knip.sh +23 -23
- package/ftm-audit.yml +2 -2
- package/ftm-brainstorm/SKILL.md +498 -498
- package/ftm-brainstorm/evals/evals.json +100 -100
- package/ftm-brainstorm/evals/promptfoo.yaml +109 -109
- package/ftm-brainstorm/references/agent-prompts.md +224 -224
- package/ftm-brainstorm/references/plan-template.md +121 -121
- package/ftm-brainstorm.yml +2 -2
- package/ftm-browse/SKILL.md +454 -454
- package/ftm-browse/daemon/browser-manager.ts +206 -206
- package/ftm-browse/daemon/bun.lock +30 -30
- package/ftm-browse/daemon/cli.ts +347 -347
- package/ftm-browse/daemon/commands.ts +410 -410
- package/ftm-browse/daemon/main.ts +357 -357
- package/ftm-browse/daemon/package.json +17 -17
- package/ftm-browse/daemon/server.ts +189 -189
- package/ftm-browse/daemon/snapshot.ts +519 -519
- package/ftm-browse/daemon/tsconfig.json +22 -22
- package/ftm-browse.yml +4 -4
- package/ftm-capture/SKILL.md +370 -370
- package/ftm-capture.yml +4 -4
- package/ftm-codex-gate/SKILL.md +361 -361
- package/ftm-codex-gate.yml +2 -2
- package/ftm-config/SKILL.md +345 -345
- package/ftm-config.default.yml +82 -80
- package/ftm-config.yml +2 -2
- package/ftm-council/SKILL.md +416 -416
- package/ftm-council/references/prompts/CLAUDE-INVESTIGATION.md +60 -60
- package/ftm-council/references/prompts/CODEX-INVESTIGATION.md +58 -58
- package/ftm-council/references/prompts/GEMINI-INVESTIGATION.md +58 -58
- package/ftm-council/references/prompts/REBUTTAL-TEMPLATE.md +57 -57
- package/ftm-council/references/protocols/PREREQUISITES.md +47 -47
- package/ftm-council/references/protocols/STEP-0-FRAMING.md +46 -46
- package/ftm-council.yml +2 -2
- package/ftm-dashboard/SKILL.md +163 -163
- package/ftm-dashboard.yml +4 -4
- package/ftm-debug/SKILL.md +1037 -1037
- package/ftm-debug/references/phases/PHASE-0-INTAKE.md +58 -58
- package/ftm-debug/references/phases/PHASE-1-TRIAGE.md +46 -46
- package/ftm-debug/references/phases/PHASE-2-WAR-ROOM-AGENTS.md +279 -279
- package/ftm-debug/references/phases/PHASE-3-TO-6-EXECUTION.md +436 -436
- package/ftm-debug/references/protocols/BLACKBOARD.md +86 -86
- package/ftm-debug/references/protocols/EDGE-CASES.md +103 -103
- package/ftm-debug.yml +2 -2
- package/ftm-diagram/SKILL.md +277 -277
- package/ftm-diagram.yml +2 -2
- package/ftm-executor/SKILL.md +777 -767
- package/ftm-executor/references/STYLE-TEMPLATE.md +73 -73
- package/ftm-executor/references/phases/PHASE-0-VERIFICATION.md +62 -62
- package/ftm-executor/references/phases/PHASE-2-AGENT-ASSEMBLY.md +34 -34
- package/ftm-executor/references/phases/PHASE-3-WORKTREES.md +38 -38
- package/ftm-executor/references/phases/PHASE-4-5-AUDIT.md +72 -72
- package/ftm-executor/references/phases/PHASE-4-DISPATCH.md +66 -66
- package/ftm-executor/references/phases/PHASE-5-5-CODEX-GATE.md +73 -73
- package/ftm-executor/references/protocols/DOCUMENTATION-BOOTSTRAP.md +36 -36
- package/ftm-executor/references/protocols/MODEL-PROFILE.md +59 -44
- package/ftm-executor/references/protocols/PROGRESS-TRACKING.md +66 -66
- package/ftm-executor/runtime/ftm-runtime.mjs +252 -252
- package/ftm-executor/runtime/package.json +8 -8
- package/ftm-executor.yml +2 -2
- package/ftm-git/SKILL.md +441 -441
- package/ftm-git/evals/evals.json +26 -26
- package/ftm-git/evals/promptfoo.yaml +75 -75
- package/ftm-git/hooks/post-commit-experience.sh +92 -92
- package/ftm-git/references/patterns/SECRET-PATTERNS.md +104 -104
- package/ftm-git/references/protocols/REMEDIATION.md +139 -139
- package/ftm-git/scripts/pre-commit-secrets.sh +110 -110
- package/ftm-git.yml +2 -2
- package/ftm-inbox/backend/adapters/_retry.py +64 -64
- package/ftm-inbox/backend/adapters/base.py +230 -230
- package/ftm-inbox/backend/adapters/freshservice.py +104 -104
- package/ftm-inbox/backend/adapters/gmail.py +125 -125
- package/ftm-inbox/backend/adapters/jira.py +136 -136
- package/ftm-inbox/backend/adapters/registry.py +192 -192
- package/ftm-inbox/backend/adapters/slack.py +110 -110
- package/ftm-inbox/backend/db/connection.py +54 -54
- package/ftm-inbox/backend/db/schema.py +78 -78
- package/ftm-inbox/backend/executor/__init__.py +7 -7
- package/ftm-inbox/backend/executor/engine.py +149 -149
- package/ftm-inbox/backend/executor/step_runner.py +98 -98
- package/ftm-inbox/backend/main.py +103 -103
- package/ftm-inbox/backend/models/__init__.py +1 -1
- package/ftm-inbox/backend/models/unified_task.py +36 -36
- package/ftm-inbox/backend/planner/__init__.py +6 -6
- package/ftm-inbox/backend/planner/generator.py +127 -127
- package/ftm-inbox/backend/planner/schema.py +34 -34
- package/ftm-inbox/backend/requirements.txt +5 -5
- package/ftm-inbox/backend/routes/execute.py +186 -186
- package/ftm-inbox/backend/routes/health.py +52 -52
- package/ftm-inbox/backend/routes/inbox.py +68 -68
- package/ftm-inbox/backend/routes/plan.py +271 -271
- package/ftm-inbox/bin/launchagent.mjs +91 -91
- package/ftm-inbox/bin/setup.mjs +188 -188
- package/ftm-inbox/bin/start.sh +10 -10
- package/ftm-inbox/bin/status.sh +17 -17
- package/ftm-inbox/bin/stop.sh +8 -8
- package/ftm-inbox/config.example.yml +55 -55
- package/ftm-inbox/package-lock.json +2898 -2898
- package/ftm-inbox/package.json +26 -26
- package/ftm-inbox/postcss.config.js +6 -6
- package/ftm-inbox/src/app.css +199 -199
- package/ftm-inbox/src/app.html +18 -18
- package/ftm-inbox/src/lib/api.ts +166 -166
- package/ftm-inbox/src/lib/components/ExecutionLog.svelte +81 -81
- package/ftm-inbox/src/lib/components/InboxFeed.svelte +143 -143
- package/ftm-inbox/src/lib/components/PlanStep.svelte +271 -271
- package/ftm-inbox/src/lib/components/PlanView.svelte +206 -206
- package/ftm-inbox/src/lib/components/StreamPanel.svelte +99 -99
- package/ftm-inbox/src/lib/components/TaskCard.svelte +190 -190
- package/ftm-inbox/src/lib/components/ui/EmptyState.svelte +63 -63
- package/ftm-inbox/src/lib/components/ui/KawaiiCard.svelte +86 -86
- package/ftm-inbox/src/lib/components/ui/PillButton.svelte +106 -106
- package/ftm-inbox/src/lib/components/ui/StatusBadge.svelte +67 -67
- package/ftm-inbox/src/lib/components/ui/StreamDrawer.svelte +149 -149
- package/ftm-inbox/src/lib/components/ui/ThemeToggle.svelte +80 -80
- package/ftm-inbox/src/lib/theme.ts +47 -47
- package/ftm-inbox/src/routes/+layout.svelte +76 -76
- package/ftm-inbox/src/routes/+page.svelte +401 -401
- package/ftm-inbox/svelte.config.js +12 -12
- package/ftm-inbox/tailwind.config.ts +63 -63
- package/ftm-inbox/tsconfig.json +13 -13
- package/ftm-inbox/vite.config.ts +6 -6
- package/ftm-intent/SKILL.md +241 -241
- package/ftm-intent.yml +2 -2
- package/ftm-manifest.json +3794 -3794
- package/ftm-map/SKILL.md +291 -291
- package/ftm-map/scripts/db.py +712 -712
- package/ftm-map/scripts/index.py +415 -415
- package/ftm-map/scripts/parser.py +224 -224
- package/ftm-map/scripts/queries/go-tags.scm +20 -20
- package/ftm-map/scripts/queries/javascript-tags.scm +35 -35
- package/ftm-map/scripts/queries/python-tags.scm +31 -31
- package/ftm-map/scripts/queries/ruby-tags.scm +19 -19
- package/ftm-map/scripts/queries/rust-tags.scm +37 -37
- package/ftm-map/scripts/queries/typescript-tags.scm +41 -41
- package/ftm-map/scripts/query.py +301 -301
- package/ftm-map/scripts/ranker.py +377 -377
- package/ftm-map/scripts/requirements.txt +5 -5
- package/ftm-map/scripts/setup-hooks.sh +27 -27
- package/ftm-map/scripts/setup.sh +56 -56
- package/ftm-map/scripts/test_db.py +364 -364
- package/ftm-map/scripts/test_parser.py +174 -174
- package/ftm-map/scripts/test_query.py +183 -183
- package/ftm-map/scripts/test_ranker.py +199 -199
- package/ftm-map/scripts/views.py +591 -591
- package/ftm-map.yml +2 -2
- package/ftm-mind/SKILL.md +1943 -1943
- package/ftm-mind/evals/promptfoo.yaml +142 -142
- package/ftm-mind/references/blackboard-schema.md +328 -328
- package/ftm-mind/references/complexity-guide.md +110 -110
- package/ftm-mind/references/event-registry.md +319 -319
- package/ftm-mind/references/mcp-inventory.md +296 -296
- package/ftm-mind/references/protocols/COMPLEXITY-SIZING.md +72 -72
- package/ftm-mind/references/protocols/MCP-HEURISTICS.md +32 -32
- package/ftm-mind/references/protocols/PLAN-APPROVAL.md +80 -80
- package/ftm-mind/references/reflexion-protocol.md +249 -249
- package/ftm-mind/references/routing/SCENARIOS.md +22 -22
- package/ftm-mind/references/routing-scenarios.md +35 -35
- package/ftm-mind.yml +2 -2
- package/ftm-pause/SKILL.md +395 -395
- package/ftm-pause/references/protocols/SKILL-RESTORE-PROTOCOLS.md +186 -186
- package/ftm-pause/references/protocols/VALIDATION.md +80 -80
- package/ftm-pause.yml +2 -2
- package/ftm-researcher/SKILL.md +275 -275
- package/ftm-researcher/evals/agent-diversity.yaml +17 -17
- package/ftm-researcher/evals/synthesis-quality.yaml +12 -12
- package/ftm-researcher/evals/trigger-accuracy.yaml +39 -39
- package/ftm-researcher/references/adaptive-search.md +116 -116
- package/ftm-researcher/references/agent-prompts.md +193 -193
- package/ftm-researcher/references/council-integration.md +193 -193
- package/ftm-researcher/references/output-format.md +203 -203
- package/ftm-researcher/references/synthesis-pipeline.md +165 -165
- package/ftm-researcher/scripts/score_credibility.py +234 -234
- package/ftm-researcher/scripts/validate_research.py +92 -92
- package/ftm-researcher.yml +2 -2
- package/ftm-resume/SKILL.md +518 -518
- package/ftm-resume/references/protocols/VALIDATION.md +172 -172
- package/ftm-resume.yml +2 -2
- package/ftm-retro/SKILL.md +380 -380
- package/ftm-retro/references/protocols/SCORING-RUBRICS.md +89 -89
- package/ftm-retro/references/templates/REPORT-FORMAT.md +109 -109
- package/ftm-retro.yml +2 -2
- package/ftm-routine/SKILL.md +170 -170
- package/ftm-routine.yml +4 -4
- package/ftm-state/blackboard/capabilities.json +5 -5
- package/ftm-state/blackboard/capabilities.schema.json +27 -27
- package/ftm-state/blackboard/context.json +23 -23
- package/ftm-state/blackboard/experiences/index.json +9 -9
- package/ftm-state/blackboard/patterns.json +6 -6
- package/ftm-state/schemas/context.schema.json +130 -130
- package/ftm-state/schemas/experience-index.schema.json +77 -77
- package/ftm-state/schemas/experience.schema.json +78 -78
- package/ftm-state/schemas/patterns.schema.json +44 -44
- package/ftm-upgrade/SKILL.md +194 -194
- package/ftm-upgrade/scripts/check-version.sh +76 -76
- package/ftm-upgrade/scripts/upgrade.sh +143 -143
- package/ftm-upgrade.yml +2 -2
- package/ftm-verify.yml +2 -2
- package/ftm.yml +2 -2
- package/hooks/ftm-blackboard-enforcer.sh +93 -93
- package/hooks/ftm-discovery-reminder.sh +90 -90
- package/hooks/ftm-drafts-gate.sh +61 -61
- package/hooks/ftm-event-logger.mjs +107 -107
- package/hooks/ftm-map-autodetect.sh +79 -79
- package/hooks/ftm-pending-sync-check.sh +22 -22
- package/hooks/ftm-plan-gate.sh +92 -92
- package/hooks/ftm-post-commit-trigger.sh +57 -57
- package/hooks/settings-template.json +81 -81
- package/install.sh +363 -363
- package/package.json +84 -84
- package/uninstall.sh +25 -25
|
@@ -1,296 +1,296 @@
|
|
|
1
|
-
# MCP Capability Inventory
|
|
2
|
-
**Purpose**: Orient-phase reference. Scan input → match domain keywords → select MCP → check approval gate.
|
|
3
|
-
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## 1. Server Catalog
|
|
7
|
-
|
|
8
|
-
### Development
|
|
9
|
-
|
|
10
|
-
#### `git`
|
|
11
|
-
| Field | Detail |
|
|
12
|
-
|-------|--------|
|
|
13
|
-
| **Tools** | `git_status`, `git_diff`, `git_diff_staged`, `git_diff_unstaged`, `git_log`, `git_show`, `git_add`, `git_commit`, `git_checkout`, `git_create_branch`, `git_branch`, `git_reset` |
|
|
14
|
-
| **When to use** | Checking repo state, reviewing changes, branching, committing, exploring history |
|
|
15
|
-
| **When NOT to use** | Detached HEAD state (orphaned commits risk); force-push to main |
|
|
16
|
-
| **Approval required** | Auto: `status`, `diff`, `log`, `show`, `branch` (read). Needs approval: `commit`, `push`, `reset`, `checkout` (destructive or state-changing) |
|
|
17
|
-
|
|
18
|
-
#### `playwright`
|
|
19
|
-
| Field | Detail |
|
|
20
|
-
|-------|--------|
|
|
21
|
-
| **Tools** | `browser_navigate`, `browser_click`, `browser_fill_form`, `browser_type`, `browser_snapshot`, `browser_take_screenshot`, `browser_select_option`, `browser_press_key`, `browser_wait_for`, `browser_evaluate`, `browser_console_messages`, `browser_network_requests`, `browser_tabs`, `browser_close`, `browser_drag`, `browser_hover`, `browser_file_upload`, `browser_handle_dialog`, `browser_resize`, `browser_run_code`, `browser_install` |
|
|
22
|
-
| **When to use** | E2E testing, visual verification, UI interaction testing, scraping pages that require JS |
|
|
23
|
-
| **When NOT to use** | Headless server environments; when a REST API exists for the same data; anti-bot risk |
|
|
24
|
-
| **Approval required** | Auto: `snapshot`, `screenshot`, `console_messages` (read). Needs approval: form submissions, file uploads, any write-through-browser action |
|
|
25
|
-
|
|
26
|
-
#### `sequential-thinking`
|
|
27
|
-
| Field | Detail |
|
|
28
|
-
|-------|--------|
|
|
29
|
-
| **Tools** | `sequentialthinking` |
|
|
30
|
-
| **When to use** | Multi-step reasoning, architecture decisions, complex debugging chains, trade-off analysis |
|
|
31
|
-
| **When NOT to use** | Simple single-step lookups — adds latency and token cost without benefit |
|
|
32
|
-
| **Approval required** | Auto: analysis only, no side effects |
|
|
33
|
-
|
|
34
|
-
#### `chrome-devtools`
|
|
35
|
-
| Field | Detail |
|
|
36
|
-
|-------|--------|
|
|
37
|
-
| **Tools** | Chrome DevTools Protocol bridge tools |
|
|
38
|
-
| **When to use** | Low-level browser debugging, network inspection, performance profiling of a running Chrome instance |
|
|
39
|
-
| **When NOT to use** | General web browsing; prefer `playwright` for test automation |
|
|
40
|
-
| **Approval required** | Auto: inspection. Needs approval: any action that modifies browser state or page |
|
|
41
|
-
|
|
42
|
-
---
|
|
43
|
-
|
|
44
|
-
### Communication
|
|
45
|
-
|
|
46
|
-
#### `slack`
|
|
47
|
-
| Field | Detail |
|
|
48
|
-
|-------|--------|
|
|
49
|
-
| **Tools** | `slack_list_channels`, `slack_get_channel_history`, `slack_get_thread_replies`, `slack_post_message`, `slack_reply_to_thread`, `slack_get_users`, `slack_get_user_profile`, `slack_add_reaction` |
|
|
50
|
-
| **When to use** | Notifying team, posting updates, searching conversation history, replying to threads |
|
|
51
|
-
| **When NOT to use** | Sending sensitive credentials or PII; bulk messaging that looks like spam |
|
|
52
|
-
| **Approval required** | Auto: `list_channels`, `get_channel_history`, `get_thread_replies`, `get_users`, `get_user_profile` (read). Needs approval: `post_message`, `reply_to_thread`, `add_reaction` (write to Slack) |
|
|
53
|
-
|
|
54
|
-
#### `gmail`
|
|
55
|
-
| Field | Detail |
|
|
56
|
-
|-------|--------|
|
|
57
|
-
| **Tools** | `search_emails`, `read_email`, `draft_email`, `send_email`, `delete_email`, `modify_email`, `batch_modify_emails`, `batch_delete_emails`, `create_label`, `update_label`, `delete_label`, `list_email_labels`, `create_filter`, `create_filter_from_template`, `get_filter`, `list_filters`, `delete_filter`, `get_or_create_label`, `download_attachment` |
|
|
58
|
-
| **When to use** | Email triage, searching inbox, drafting replies, managing labels/filters |
|
|
59
|
-
| **When NOT to use** | Bulk delete without confirmation; sending on behalf of user without explicit approval |
|
|
60
|
-
| **Approval required** | Auto: `search_emails`, `read_email`, `list_email_labels`, `get_filter`, `list_filters` (read). Needs approval: `send_email`, `delete_email`, `batch_delete_emails`, `batch_modify_emails`, `create_filter` (write/destructive) |
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
### Project Management
|
|
65
|
-
|
|
66
|
-
#### `mcp-atlassian-personal` (personal Jira + Confluence account)
|
|
67
|
-
| Field | Detail |
|
|
68
|
-
|-------|--------|
|
|
69
|
-
| **Tools** | Jira: `jira_search`, `jira_get_issue`, `jira_create_issue`, `jira_update_issue`, `jira_delete_issue`, `jira_transition_issue`, `jira_add_comment`, `jira_edit_comment`, `jira_get_transitions`, `jira_get_all_projects`, `jira_get_project_issues`, `jira_get_board_issues`, `jira_get_sprint_issues`, `jira_get_sprints_from_board`, `jira_get_agile_boards`, `jira_create_sprint`, `jira_update_sprint`, `jira_add_issues_to_sprint`, `jira_batch_create_issues`, `jira_create_issue_link`, `jira_remove_issue_link`, `jira_get_link_types`, `jira_add_worklog`, `jira_get_worklog`, `jira_add_watcher`, `jira_remove_watcher`, `jira_get_issue_watchers`, `jira_get_user_profile`, `jira_download_attachments`, `jira_get_issue_images`, `jira_link_to_epic`, `jira_get_project_components`, `jira_get_project_versions`, `jira_batch_create_versions`, `jira_create_version`, `jira_get_issue_sla`, `jira_get_issue_dates`, `jira_get_issue_development_info`, `jira_get_issues_development_info`, `jira_batch_get_changelogs`, `jira_get_queue_issues`, `jira_get_service_desk_for_project`, `jira_get_service_desk_queues`, `jira_create_remote_issue_link`, `jira_search_fields`, `jira_get_field_options`, `jira_get_issue_proforma_forms`, `jira_get_proforma_form_details`, `jira_update_proforma_form_answers` | Confluence: `confluence_search`, `confluence_get_page`, `confluence_create_page`, `confluence_update_page`, `confluence_delete_page`, `confluence_add_comment`, `confluence_reply_to_comment`, `confluence_get_comments`, `confluence_add_label`, `confluence_get_labels`, `confluence_get_page_children`, `confluence_get_page_history`, `confluence_get_page_diff`, `confluence_get_page_views`, `confluence_move_page`, `confluence_upload_attachment`, `confluence_upload_attachments`, `confluence_get_attachments`, `confluence_delete_attachment`, `confluence_download_attachment`, `confluence_download_content_attachments`, `confluence_get_page_images`, `confluence_search_user` |
|
|
70
|
-
| **When to use** | Tracking personal tickets, updating your own issues, commenting, logging work, searching your Jira backlog, reading/writing Confluence docs |
|
|
71
|
-
| **When NOT to use** | IT admin operations (use `mcp-atlassian` instead); service desk ticket management (use `freshservice-mcp`) |
|
|
72
|
-
| **Approval required** | Auto: all `get_*`, `search*`, `list_*`, `download_*` (read). Needs approval: `create_issue`, `update_issue`, `delete_issue`, `transition_issue`, `add_comment`, `create_page`, `update_page`, `delete_page`, `add_worklog` |
|
|
73
|
-
|
|
74
|
-
#### `mcp-atlassian` (IT admin Jira + Confluence account)
|
|
75
|
-
| Field | Detail |
|
|
76
|
-
|-------|--------|
|
|
77
|
-
| **Tools** | Same tool set as `mcp-atlassian-personal` |
|
|
78
|
-
| **When to use** | IT admin operations, organization-wide Jira/Confluence actions requiring admin credentials |
|
|
79
|
-
| **When NOT to use** | Personal work — use `mcp-atlassian-personal` to avoid admin footprint on personal tickets |
|
|
80
|
-
| **Approval required** | Same gate as personal; extra caution given admin scope — all writes need approval |
|
|
81
|
-
|
|
82
|
-
---
|
|
83
|
-
|
|
84
|
-
### Service Desk
|
|
85
|
-
|
|
86
|
-
#### `freshservice-mcp`
|
|
87
|
-
| Field | Detail |
|
|
88
|
-
|-------|--------|
|
|
89
|
-
| **Tools** | Tickets: `get_tickets`, `get_ticket_by_id`, `create_ticket`, `update_ticket`, `delete_ticket`, `get_ticket_fields`, `filter_tickets`, `list_all_ticket_conversation`, `create_ticket_note`, `send_ticket_reply`, `get_requested_items` | Agents/Requesters: `get_all_agents`, `get_agent`, `create_agent`, `update_agent`, `filter_agents`, `get_all_requesters`, `get_requester_id`, `create_requester`, `update_requester`, `filter_requesters`, `list_all_requester_fields`, `get_all_requester_groups`, `get_requester_groups_by_id`, `create_requester_group`, `update_requester_group`, `list_requester_group_members`, `add_requester_to_group` | Groups/Products: `get_all_agent_groups`, `getAgentGroupById`, `create_group`, `update_group`, `get_all_products`, `get_products_by_id`, `create_product`, `update_product` | Solutions/Canned: `get_all_solution_category`, `get_solution_category`, `create_solution_category`, `update_solution_category`, `get_list_of_solution_folder`, `get_solution_folder`, `create_solution_folder`, `update_solution_folder`, `get_list_of_solution_article`, `get_solution_article`, `create_solution_article`, `update_solution_article`, `publish_solution_article`, `list_all_canned_response_folder`, `list_canned_response_folder`, `get_all_canned_response`, `get_canned_response` | Service: `create_service_request`, `list_service_items` | Workspace: `get_workspace`, `list_all_workspaces` |
|
|
90
|
-
| **When to use** | IT service desk tickets, hardware requests, onboarding/offboarding, software access requests, agent/group management |
|
|
91
|
-
| **When NOT to use** | Engineering project tracking (use Jira); general team comms (use Slack) |
|
|
92
|
-
| **Approval required** | Auto: all `get_*`, `filter_*`, `list_*` (read). Needs approval: `create_ticket`, `update_ticket`, `delete_ticket`, `send_ticket_reply`, `create_ticket_note`, `create_service_request`, `create_agent`, `update_agent` |
|
|
93
|
-
|
|
94
|
-
---
|
|
95
|
-
|
|
96
|
-
### Documentation & Knowledge
|
|
97
|
-
|
|
98
|
-
#### `context7`
|
|
99
|
-
| Field | Detail |
|
|
100
|
-
|-------|--------|
|
|
101
|
-
| **Tools** | `resolve-library-id`, `get-library-docs` |
|
|
102
|
-
| **When to use** | Library/framework API docs, "how do I use X library", version-specific documentation lookup |
|
|
103
|
-
| **When NOT to use** | Internal company docs (use Confluence/Glean); saved personal reading (use Readwise if configured) |
|
|
104
|
-
| **Approval required** | Auto: all read-only |
|
|
105
|
-
|
|
106
|
-
#### `glean_default`
|
|
107
|
-
| Field | Detail |
|
|
108
|
-
|-------|--------|
|
|
109
|
-
| **Tools** | `chat`, `search`, `read_document` |
|
|
110
|
-
| **When to use** | Searching internal Klaviyo knowledge base, finding internal docs, policies, runbooks, past decisions |
|
|
111
|
-
| **When NOT to use** | External library docs (use context7); real-time web search (use WebSearch tool) |
|
|
112
|
-
| **Approval required** | Auto: all read-only |
|
|
113
|
-
|
|
114
|
-
#### `apple-doc-mcp`
|
|
115
|
-
| Field | Detail |
|
|
116
|
-
|-------|--------|
|
|
117
|
-
| **Tools** | `list_technologies`, `get_documentation`, `search_symbols`, `list_container_technologies`, `get_container_documentation`, `search_container_symbols`, `list_containerization_technologies`, `get_containerization_documentation`, `search_containerization_symbols`, `check_updates` |
|
|
118
|
-
| **When to use** | Apple platform development (Swift, SwiftUI, UIKit, AppKit), containerization docs for Apple frameworks |
|
|
119
|
-
| **When NOT to use** | Non-Apple development contexts; general web docs |
|
|
120
|
-
| **Approval required** | Auto: all read-only |
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
### People & CRM
|
|
125
|
-
|
|
126
|
-
#### `lusha`
|
|
127
|
-
| Field | Detail |
|
|
128
|
-
|-------|--------|
|
|
129
|
-
| **Tools** | `contactSearch`, `contactEnrich`, `personBulkLookup`, `companySearch`, `companyEnrich`, `companyBulkLookup`, `contactFilters`, `companyFilters` |
|
|
130
|
-
| **When to use** | Finding contact info for a person or company, enriching a lead with email/phone, company intelligence lookups |
|
|
131
|
-
| **When NOT to use** | Internal employee lookups (use Slack/Glean); existing contacts already in CRM |
|
|
132
|
-
| **Approval required** | Auto: all search/enrich (read from Lusha). Needs approval if results are being written somewhere |
|
|
133
|
-
|
|
134
|
-
---
|
|
135
|
-
|
|
136
|
-
### Calendar
|
|
137
|
-
|
|
138
|
-
#### `google-calendar`
|
|
139
|
-
| Field | Detail |
|
|
140
|
-
|-------|--------|
|
|
141
|
-
| **Tools** | `list-calendars`, `list-events`, `get-event`, `search-events`, `create-event`, `create-events`, `update-event`, `delete-event`, `respond-to-event`, `get-freebusy`, `get-current-time`, `list-colors`, `manage-accounts` |
|
|
142
|
-
| **When to use** | Checking schedule, finding free time, creating/updating meetings, responding to invites, scheduling across participants |
|
|
143
|
-
| **When NOT to use** | Non-calendar scheduling (use Jira for sprint planning) |
|
|
144
|
-
| **Approval required** | Auto: `list-calendars`, `list-events`, `get-event`, `search-events`, `get-freebusy`, `get-current-time`, `list-colors` (read). Needs approval: `create-event`, `update-event`, `delete-event`, `respond-to-event` |
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## 2. Contextual Trigger Map
|
|
149
|
-
|
|
150
|
-
| User says / context contains... | Reach for... | Tool category |
|
|
151
|
-
|----------------------------------|--------------|---------------|
|
|
152
|
-
| "commit", "push", "branch", "PR", "git log", "diff", "staged" | `git` | Version control |
|
|
153
|
-
| "Jira", "ticket", "sprint", "story", "epic", "backlog", "SCRUM" | `mcp-atlassian-personal` | Project mgmt |
|
|
154
|
-
| "IT ticket", "service request", "Freshservice", "hardware request", "onboarding", "access request" | `freshservice-mcp` | Service desk |
|
|
155
|
-
| "Confluence", "wiki", "internal doc", "runbook", "write a page" | `mcp-atlassian-personal` | Documentation |
|
|
156
|
-
| "Slack", "post to channel", "notify the team", "DM", "thread" | `slack` | Communication |
|
|
157
|
-
| "email", "Gmail", "inbox", "draft", "reply to", "send to" | `gmail` | Communication |
|
|
158
|
-
| "calendar", "meeting", "schedule", "free time", "invite", "block time" | `google-calendar` | Calendar |
|
|
159
|
-
| "how do I use [library]", "API docs", "documentation for X framework" | `context7` | Ext. docs |
|
|
160
|
-
| "find in internal docs", "Glean", "search Klaviyo", "company policy" | `glean_default` | Internal knowledge |
|
|
161
|
-
| "screenshot", "test the UI", "click button", "E2E", "browser test" | `playwright` | Testing |
|
|
162
|
-
| "find someone's email", "contact info", "company profile", "person lookup" | `lusha` | CRM/people |
|
|
163
|
-
| "Swift docs", "SwiftUI", "UIKit", "Apple framework", "AppKit" | `apple-doc-mcp` | Apple dev |
|
|
164
|
-
| "think through this", "complex analysis", "multi-step reasoning", "trade-offs" | `sequential-thinking` | Reasoning |
|
|
165
|
-
| "debug browser", "network request", "Chrome DevTools", "performance profile" | `chrome-devtools` | Dev tools |
|
|
166
|
-
| "who is oncall", "search internal", "Klaviyo runbook" | `glean_default` | Internal ops |
|
|
167
|
-
| "IT admin", "org-wide Jira change", "admin Confluence" | `mcp-atlassian` | Admin ops |
|
|
168
|
-
| "highlight", "saved article", "Readwise", "reading list" | *(Readwise — not configured in current settings)* | — |
|
|
169
|
-
|
|
170
|
-
---
|
|
171
|
-
|
|
172
|
-
## 3. Multi-MCP Workflows
|
|
173
|
-
|
|
174
|
-
### W1: Jira Ticket → Research → Implement → PR → Notify Team
|
|
175
|
-
```
|
|
176
|
-
1. mcp-atlassian-personal.jira_get_issue → read ticket details
|
|
177
|
-
2. context7.get-library-docs → research relevant APIs
|
|
178
|
-
3. git.git_status + git.git_create_branch → prep branch
|
|
179
|
-
4. [implement code changes]
|
|
180
|
-
5. git.git_add + git.git_commit → commit work
|
|
181
|
-
6. slack.slack_post_message → notify team of PR
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
### W2: Calendar Check → Draft Message → Email Follow-up
|
|
185
|
-
```
|
|
186
|
-
1. google-calendar.get-freebusy → find mutual availability
|
|
187
|
-
2. google-calendar.search-events → context on existing meetings
|
|
188
|
-
3. slack.slack_post_message OR slack.slack_reply_to_thread → async coordination
|
|
189
|
-
4. gmail.draft_email → formal follow-up (needs approval to send)
|
|
190
|
-
5. google-calendar.create-event → book the slot (needs approval)
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
### W3: IT Service Request → Jira Tracking → Slack Update
|
|
194
|
-
```
|
|
195
|
-
1. freshservice-mcp.get_ticket_by_id → read service request
|
|
196
|
-
2. mcp-atlassian-personal.jira_create_issue → create linked engineering task (needs approval)
|
|
197
|
-
3. freshservice-mcp.update_ticket → update FS ticket with Jira link (needs approval)
|
|
198
|
-
4. slack.slack_post_message → notify requester's team (needs approval)
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
### W4: Bug Report → Code Investigation → Fix → Test → Close
|
|
202
|
-
```
|
|
203
|
-
1. mcp-atlassian-personal.jira_get_issue → read bug details
|
|
204
|
-
2. git.git_log + git.git_diff → inspect recent changes
|
|
205
|
-
3. glean_default.search → search internal runbooks for context
|
|
206
|
-
4. [implement fix]
|
|
207
|
-
5. playwright.browser_navigate + browser_snapshot → visual smoke test
|
|
208
|
-
6. git.git_add + git.git_commit → commit fix
|
|
209
|
-
7. mcp-atlassian-personal.jira_transition_issue → close/resolve ticket (needs approval)
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
### W5: New Hire Onboarding Request → Access Provisioning → Confirm
|
|
213
|
-
```
|
|
214
|
-
1. freshservice-mcp.get_ticket_by_id → read onboarding request
|
|
215
|
-
2. mcp-atlassian-personal.jira_create_issue → create IT tasks (needs approval)
|
|
216
|
-
3. lusha.contactEnrich → enrich new hire contact info if needed
|
|
217
|
-
4. freshservice-mcp.create_requester → add to Freshservice (needs approval)
|
|
218
|
-
5. slack.slack_post_message → notify IT and manager (needs approval)
|
|
219
|
-
6. gmail.draft_email → welcome email (needs approval to send)
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
### W6: Architecture Research → Documentation → Team Sync
|
|
223
|
-
```
|
|
224
|
-
1. context7.get-library-docs → library/framework research
|
|
225
|
-
2. glean_default.search → find existing internal decisions
|
|
226
|
-
3. sequential-thinking.sequentialthinking → synthesize trade-offs
|
|
227
|
-
4. mcp-atlassian-personal.confluence_create_page → write decision doc (needs approval)
|
|
228
|
-
5. slack.slack_post_message → share with team (needs approval)
|
|
229
|
-
6. google-calendar.create-event → schedule review meeting (needs approval)
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
---
|
|
233
|
-
|
|
234
|
-
## 4. Approval Gate Annotations
|
|
235
|
-
|
|
236
|
-
### Auto-execute (safe — read/query/list only)
|
|
237
|
-
| Operation type | Examples |
|
|
238
|
-
|----------------|---------|
|
|
239
|
-
| Read git state | `git_status`, `git_diff`, `git_log`, `git_show`, `git_branch` |
|
|
240
|
-
| Search/list Jira | `jira_search`, `jira_get_issue`, `jira_get_all_projects`, `jira_get_sprint_issues` |
|
|
241
|
-
| Read Confluence | `confluence_get_page`, `confluence_search`, `confluence_get_comments` |
|
|
242
|
-
| Read Freshservice | `get_tickets`, `get_ticket_by_id`, `filter_tickets`, `get_all_agents` |
|
|
243
|
-
| Read calendar | `list-events`, `get-event`, `search-events`, `get-freebusy`, `get-current-time` |
|
|
244
|
-
| Read Slack | `list_channels`, `get_channel_history`, `get_thread_replies`, `get_users` |
|
|
245
|
-
| Read Gmail | `search_emails`, `read_email`, `list_email_labels` |
|
|
246
|
-
| Lookup contacts | `lusha.contactSearch`, `lusha.companySearch`, `lusha.contactEnrich` |
|
|
247
|
-
| Read docs | `context7.get-library-docs`, `glean_default.search`, `apple-doc-mcp.*` |
|
|
248
|
-
| Browser inspect | `playwright.browser_snapshot`, `browser_screenshot`, `browser_console_messages` |
|
|
249
|
-
| Analysis | `sequential-thinking.sequentialthinking` |
|
|
250
|
-
|
|
251
|
-
### Needs approval (write / mutate / send / delete)
|
|
252
|
-
| Operation type | Examples |
|
|
253
|
-
|----------------|---------|
|
|
254
|
-
| Git write | `git_commit`, `git_checkout`, `git_reset`, `git_create_branch` |
|
|
255
|
-
| Jira write | `jira_create_issue`, `jira_update_issue`, `jira_delete_issue`, `jira_transition_issue`, `jira_add_comment`, `jira_add_worklog` |
|
|
256
|
-
| Confluence write | `confluence_create_page`, `confluence_update_page`, `confluence_delete_page`, `confluence_add_comment` |
|
|
257
|
-
| Freshservice write | `create_ticket`, `update_ticket`, `delete_ticket`, `send_ticket_reply`, `create_ticket_note`, `create_service_request`, `create_agent`, `update_agent` |
|
|
258
|
-
| Calendar write | `create-event`, `update-event`, `delete-event`, `respond-to-event` |
|
|
259
|
-
| Slack write | `slack_post_message`, `slack_reply_to_thread`, `slack_add_reaction` |
|
|
260
|
-
| Gmail write | `send_email`, `draft_email`, `delete_email`, `batch_delete_emails`, `create_filter` |
|
|
261
|
-
| Browser actions | Form submissions, file uploads, page mutations via Playwright |
|
|
262
|
-
|
|
263
|
-
> **Hook enforcement**: `settings.json` registers a `PreToolUse` guard script on `mcp__mcp-atlassian-personal`, `mcp__mcp-atlassian`, `mcp__freshservice-mcp`, `mcp__slack`, and `mcp__gmail`. The guard will intercept write operations — treat any tool in those namespaces as needing user confirmation before proceeding.
|
|
264
|
-
|
|
265
|
-
---
|
|
266
|
-
|
|
267
|
-
## 5. Mind Integration Notes (Orient Phase)
|
|
268
|
-
|
|
269
|
-
### Scan → Match → Gate → Chain
|
|
270
|
-
|
|
271
|
-
```
|
|
272
|
-
INPUT SCAN (keywords, intent, entities)
|
|
273
|
-
│
|
|
274
|
-
├── Domain keyword detected?
|
|
275
|
-
│ └── Yes → look up Contextual Trigger Map (Section 2)
|
|
276
|
-
│
|
|
277
|
-
├── Single domain or multi-domain?
|
|
278
|
-
│ ├── Single → pick direct MCP tool
|
|
279
|
-
│ └── Multi → pick workflow from Section 3 or compose ad-hoc chain
|
|
280
|
-
│
|
|
281
|
-
├── Approval gate check (Section 4)
|
|
282
|
-
│ ├── Read-only? → auto-proceed
|
|
283
|
-
│ └── Write/send/delete? → surface to user for confirmation
|
|
284
|
-
│
|
|
285
|
-
└── Execute → synthesize result → continue OODA loop
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
### Orient heuristics
|
|
289
|
-
|
|
290
|
-
1. **Prefer read before write**: Always gather current state (`get_issue`, `git_status`, `list-events`) before proposing mutations.
|
|
291
|
-
2. **Parallel reads are safe**: `jira_get_issue` + `glean_default.search` + `git_log` can run concurrently — no side effects.
|
|
292
|
-
3. **Chain writes sequentially**: Write operations must be user-confirmed and ordered — never batch-execute multiple destructive actions.
|
|
293
|
-
4. **Use personal over admin**: Default to `mcp-atlassian-personal` unless the task explicitly requires IT admin scope.
|
|
294
|
-
5. **Match specificity**: IT/hardware/access → Freshservice. Engineering work → Jira. Internal knowledge → Glean. External library → context7. Personal saved reading → Readwise (not currently configured).
|
|
295
|
-
6. **Stop after answer**: If a single read resolves the question, stop. Do not escalate to `sequential-thinking` for simple factual lookups.
|
|
296
|
-
7. **Guard hook awareness**: Slack, Gmail, Atlassian, and Freshservice write operations are intercepted by the external-action-guard hook — do not attempt to batch them silently.
|
|
1
|
+
# MCP Capability Inventory
|
|
2
|
+
**Purpose**: Orient-phase reference. Scan input → match domain keywords → select MCP → check approval gate.
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## 1. Server Catalog
|
|
7
|
+
|
|
8
|
+
### Development
|
|
9
|
+
|
|
10
|
+
#### `git`
|
|
11
|
+
| Field | Detail |
|
|
12
|
+
|-------|--------|
|
|
13
|
+
| **Tools** | `git_status`, `git_diff`, `git_diff_staged`, `git_diff_unstaged`, `git_log`, `git_show`, `git_add`, `git_commit`, `git_checkout`, `git_create_branch`, `git_branch`, `git_reset` |
|
|
14
|
+
| **When to use** | Checking repo state, reviewing changes, branching, committing, exploring history |
|
|
15
|
+
| **When NOT to use** | Detached HEAD state (orphaned commits risk); force-push to main |
|
|
16
|
+
| **Approval required** | Auto: `status`, `diff`, `log`, `show`, `branch` (read). Needs approval: `commit`, `push`, `reset`, `checkout` (destructive or state-changing) |
|
|
17
|
+
|
|
18
|
+
#### `playwright`
|
|
19
|
+
| Field | Detail |
|
|
20
|
+
|-------|--------|
|
|
21
|
+
| **Tools** | `browser_navigate`, `browser_click`, `browser_fill_form`, `browser_type`, `browser_snapshot`, `browser_take_screenshot`, `browser_select_option`, `browser_press_key`, `browser_wait_for`, `browser_evaluate`, `browser_console_messages`, `browser_network_requests`, `browser_tabs`, `browser_close`, `browser_drag`, `browser_hover`, `browser_file_upload`, `browser_handle_dialog`, `browser_resize`, `browser_run_code`, `browser_install` |
|
|
22
|
+
| **When to use** | E2E testing, visual verification, UI interaction testing, scraping pages that require JS |
|
|
23
|
+
| **When NOT to use** | Headless server environments; when a REST API exists for the same data; anti-bot risk |
|
|
24
|
+
| **Approval required** | Auto: `snapshot`, `screenshot`, `console_messages` (read). Needs approval: form submissions, file uploads, any write-through-browser action |
|
|
25
|
+
|
|
26
|
+
#### `sequential-thinking`
|
|
27
|
+
| Field | Detail |
|
|
28
|
+
|-------|--------|
|
|
29
|
+
| **Tools** | `sequentialthinking` |
|
|
30
|
+
| **When to use** | Multi-step reasoning, architecture decisions, complex debugging chains, trade-off analysis |
|
|
31
|
+
| **When NOT to use** | Simple single-step lookups — adds latency and token cost without benefit |
|
|
32
|
+
| **Approval required** | Auto: analysis only, no side effects |
|
|
33
|
+
|
|
34
|
+
#### `chrome-devtools`
|
|
35
|
+
| Field | Detail |
|
|
36
|
+
|-------|--------|
|
|
37
|
+
| **Tools** | Chrome DevTools Protocol bridge tools |
|
|
38
|
+
| **When to use** | Low-level browser debugging, network inspection, performance profiling of a running Chrome instance |
|
|
39
|
+
| **When NOT to use** | General web browsing; prefer `playwright` for test automation |
|
|
40
|
+
| **Approval required** | Auto: inspection. Needs approval: any action that modifies browser state or page |
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
### Communication
|
|
45
|
+
|
|
46
|
+
#### `slack`
|
|
47
|
+
| Field | Detail |
|
|
48
|
+
|-------|--------|
|
|
49
|
+
| **Tools** | `slack_list_channels`, `slack_get_channel_history`, `slack_get_thread_replies`, `slack_post_message`, `slack_reply_to_thread`, `slack_get_users`, `slack_get_user_profile`, `slack_add_reaction` |
|
|
50
|
+
| **When to use** | Notifying team, posting updates, searching conversation history, replying to threads |
|
|
51
|
+
| **When NOT to use** | Sending sensitive credentials or PII; bulk messaging that looks like spam |
|
|
52
|
+
| **Approval required** | Auto: `list_channels`, `get_channel_history`, `get_thread_replies`, `get_users`, `get_user_profile` (read). Needs approval: `post_message`, `reply_to_thread`, `add_reaction` (write to Slack) |
|
|
53
|
+
|
|
54
|
+
#### `gmail`
|
|
55
|
+
| Field | Detail |
|
|
56
|
+
|-------|--------|
|
|
57
|
+
| **Tools** | `search_emails`, `read_email`, `draft_email`, `send_email`, `delete_email`, `modify_email`, `batch_modify_emails`, `batch_delete_emails`, `create_label`, `update_label`, `delete_label`, `list_email_labels`, `create_filter`, `create_filter_from_template`, `get_filter`, `list_filters`, `delete_filter`, `get_or_create_label`, `download_attachment` |
|
|
58
|
+
| **When to use** | Email triage, searching inbox, drafting replies, managing labels/filters |
|
|
59
|
+
| **When NOT to use** | Bulk delete without confirmation; sending on behalf of user without explicit approval |
|
|
60
|
+
| **Approval required** | Auto: `search_emails`, `read_email`, `list_email_labels`, `get_filter`, `list_filters` (read). Needs approval: `send_email`, `delete_email`, `batch_delete_emails`, `batch_modify_emails`, `create_filter` (write/destructive) |
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
### Project Management
|
|
65
|
+
|
|
66
|
+
#### `mcp-atlassian-personal` (personal Jira + Confluence account)
|
|
67
|
+
| Field | Detail |
|
|
68
|
+
|-------|--------|
|
|
69
|
+
| **Tools** | Jira: `jira_search`, `jira_get_issue`, `jira_create_issue`, `jira_update_issue`, `jira_delete_issue`, `jira_transition_issue`, `jira_add_comment`, `jira_edit_comment`, `jira_get_transitions`, `jira_get_all_projects`, `jira_get_project_issues`, `jira_get_board_issues`, `jira_get_sprint_issues`, `jira_get_sprints_from_board`, `jira_get_agile_boards`, `jira_create_sprint`, `jira_update_sprint`, `jira_add_issues_to_sprint`, `jira_batch_create_issues`, `jira_create_issue_link`, `jira_remove_issue_link`, `jira_get_link_types`, `jira_add_worklog`, `jira_get_worklog`, `jira_add_watcher`, `jira_remove_watcher`, `jira_get_issue_watchers`, `jira_get_user_profile`, `jira_download_attachments`, `jira_get_issue_images`, `jira_link_to_epic`, `jira_get_project_components`, `jira_get_project_versions`, `jira_batch_create_versions`, `jira_create_version`, `jira_get_issue_sla`, `jira_get_issue_dates`, `jira_get_issue_development_info`, `jira_get_issues_development_info`, `jira_batch_get_changelogs`, `jira_get_queue_issues`, `jira_get_service_desk_for_project`, `jira_get_service_desk_queues`, `jira_create_remote_issue_link`, `jira_search_fields`, `jira_get_field_options`, `jira_get_issue_proforma_forms`, `jira_get_proforma_form_details`, `jira_update_proforma_form_answers` | Confluence: `confluence_search`, `confluence_get_page`, `confluence_create_page`, `confluence_update_page`, `confluence_delete_page`, `confluence_add_comment`, `confluence_reply_to_comment`, `confluence_get_comments`, `confluence_add_label`, `confluence_get_labels`, `confluence_get_page_children`, `confluence_get_page_history`, `confluence_get_page_diff`, `confluence_get_page_views`, `confluence_move_page`, `confluence_upload_attachment`, `confluence_upload_attachments`, `confluence_get_attachments`, `confluence_delete_attachment`, `confluence_download_attachment`, `confluence_download_content_attachments`, `confluence_get_page_images`, `confluence_search_user` |
|
|
70
|
+
| **When to use** | Tracking personal tickets, updating your own issues, commenting, logging work, searching your Jira backlog, reading/writing Confluence docs |
|
|
71
|
+
| **When NOT to use** | IT admin operations (use `mcp-atlassian` instead); service desk ticket management (use `freshservice-mcp`) |
|
|
72
|
+
| **Approval required** | Auto: all `get_*`, `search*`, `list_*`, `download_*` (read). Needs approval: `create_issue`, `update_issue`, `delete_issue`, `transition_issue`, `add_comment`, `create_page`, `update_page`, `delete_page`, `add_worklog` |
|
|
73
|
+
|
|
74
|
+
#### `mcp-atlassian` (IT admin Jira + Confluence account)
|
|
75
|
+
| Field | Detail |
|
|
76
|
+
|-------|--------|
|
|
77
|
+
| **Tools** | Same tool set as `mcp-atlassian-personal` |
|
|
78
|
+
| **When to use** | IT admin operations, organization-wide Jira/Confluence actions requiring admin credentials |
|
|
79
|
+
| **When NOT to use** | Personal work — use `mcp-atlassian-personal` to avoid admin footprint on personal tickets |
|
|
80
|
+
| **Approval required** | Same gate as personal; extra caution given admin scope — all writes need approval |
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
### Service Desk
|
|
85
|
+
|
|
86
|
+
#### `freshservice-mcp`
|
|
87
|
+
| Field | Detail |
|
|
88
|
+
|-------|--------|
|
|
89
|
+
| **Tools** | Tickets: `get_tickets`, `get_ticket_by_id`, `create_ticket`, `update_ticket`, `delete_ticket`, `get_ticket_fields`, `filter_tickets`, `list_all_ticket_conversation`, `create_ticket_note`, `send_ticket_reply`, `get_requested_items` | Agents/Requesters: `get_all_agents`, `get_agent`, `create_agent`, `update_agent`, `filter_agents`, `get_all_requesters`, `get_requester_id`, `create_requester`, `update_requester`, `filter_requesters`, `list_all_requester_fields`, `get_all_requester_groups`, `get_requester_groups_by_id`, `create_requester_group`, `update_requester_group`, `list_requester_group_members`, `add_requester_to_group` | Groups/Products: `get_all_agent_groups`, `getAgentGroupById`, `create_group`, `update_group`, `get_all_products`, `get_products_by_id`, `create_product`, `update_product` | Solutions/Canned: `get_all_solution_category`, `get_solution_category`, `create_solution_category`, `update_solution_category`, `get_list_of_solution_folder`, `get_solution_folder`, `create_solution_folder`, `update_solution_folder`, `get_list_of_solution_article`, `get_solution_article`, `create_solution_article`, `update_solution_article`, `publish_solution_article`, `list_all_canned_response_folder`, `list_canned_response_folder`, `get_all_canned_response`, `get_canned_response` | Service: `create_service_request`, `list_service_items` | Workspace: `get_workspace`, `list_all_workspaces` |
|
|
90
|
+
| **When to use** | IT service desk tickets, hardware requests, onboarding/offboarding, software access requests, agent/group management |
|
|
91
|
+
| **When NOT to use** | Engineering project tracking (use Jira); general team comms (use Slack) |
|
|
92
|
+
| **Approval required** | Auto: all `get_*`, `filter_*`, `list_*` (read). Needs approval: `create_ticket`, `update_ticket`, `delete_ticket`, `send_ticket_reply`, `create_ticket_note`, `create_service_request`, `create_agent`, `update_agent` |
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### Documentation & Knowledge
|
|
97
|
+
|
|
98
|
+
#### `context7`
|
|
99
|
+
| Field | Detail |
|
|
100
|
+
|-------|--------|
|
|
101
|
+
| **Tools** | `resolve-library-id`, `get-library-docs` |
|
|
102
|
+
| **When to use** | Library/framework API docs, "how do I use X library", version-specific documentation lookup |
|
|
103
|
+
| **When NOT to use** | Internal company docs (use Confluence/Glean); saved personal reading (use Readwise if configured) |
|
|
104
|
+
| **Approval required** | Auto: all read-only |
|
|
105
|
+
|
|
106
|
+
#### `glean_default`
|
|
107
|
+
| Field | Detail |
|
|
108
|
+
|-------|--------|
|
|
109
|
+
| **Tools** | `chat`, `search`, `read_document` |
|
|
110
|
+
| **When to use** | Searching internal Klaviyo knowledge base, finding internal docs, policies, runbooks, past decisions |
|
|
111
|
+
| **When NOT to use** | External library docs (use context7); real-time web search (use WebSearch tool) |
|
|
112
|
+
| **Approval required** | Auto: all read-only |
|
|
113
|
+
|
|
114
|
+
#### `apple-doc-mcp`
|
|
115
|
+
| Field | Detail |
|
|
116
|
+
|-------|--------|
|
|
117
|
+
| **Tools** | `list_technologies`, `get_documentation`, `search_symbols`, `list_container_technologies`, `get_container_documentation`, `search_container_symbols`, `list_containerization_technologies`, `get_containerization_documentation`, `search_containerization_symbols`, `check_updates` |
|
|
118
|
+
| **When to use** | Apple platform development (Swift, SwiftUI, UIKit, AppKit), containerization docs for Apple frameworks |
|
|
119
|
+
| **When NOT to use** | Non-Apple development contexts; general web docs |
|
|
120
|
+
| **Approval required** | Auto: all read-only |
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
### People & CRM
|
|
125
|
+
|
|
126
|
+
#### `lusha`
|
|
127
|
+
| Field | Detail |
|
|
128
|
+
|-------|--------|
|
|
129
|
+
| **Tools** | `contactSearch`, `contactEnrich`, `personBulkLookup`, `companySearch`, `companyEnrich`, `companyBulkLookup`, `contactFilters`, `companyFilters` |
|
|
130
|
+
| **When to use** | Finding contact info for a person or company, enriching a lead with email/phone, company intelligence lookups |
|
|
131
|
+
| **When NOT to use** | Internal employee lookups (use Slack/Glean); existing contacts already in CRM |
|
|
132
|
+
| **Approval required** | Auto: all search/enrich (read from Lusha). Needs approval if results are being written somewhere |
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
### Calendar
|
|
137
|
+
|
|
138
|
+
#### `google-calendar`
|
|
139
|
+
| Field | Detail |
|
|
140
|
+
|-------|--------|
|
|
141
|
+
| **Tools** | `list-calendars`, `list-events`, `get-event`, `search-events`, `create-event`, `create-events`, `update-event`, `delete-event`, `respond-to-event`, `get-freebusy`, `get-current-time`, `list-colors`, `manage-accounts` |
|
|
142
|
+
| **When to use** | Checking schedule, finding free time, creating/updating meetings, responding to invites, scheduling across participants |
|
|
143
|
+
| **When NOT to use** | Non-calendar scheduling (use Jira for sprint planning) |
|
|
144
|
+
| **Approval required** | Auto: `list-calendars`, `list-events`, `get-event`, `search-events`, `get-freebusy`, `get-current-time`, `list-colors` (read). Needs approval: `create-event`, `update-event`, `delete-event`, `respond-to-event` |
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## 2. Contextual Trigger Map
|
|
149
|
+
|
|
150
|
+
| User says / context contains... | Reach for... | Tool category |
|
|
151
|
+
|----------------------------------|--------------|---------------|
|
|
152
|
+
| "commit", "push", "branch", "PR", "git log", "diff", "staged" | `git` | Version control |
|
|
153
|
+
| "Jira", "ticket", "sprint", "story", "epic", "backlog", "SCRUM" | `mcp-atlassian-personal` | Project mgmt |
|
|
154
|
+
| "IT ticket", "service request", "Freshservice", "hardware request", "onboarding", "access request" | `freshservice-mcp` | Service desk |
|
|
155
|
+
| "Confluence", "wiki", "internal doc", "runbook", "write a page" | `mcp-atlassian-personal` | Documentation |
|
|
156
|
+
| "Slack", "post to channel", "notify the team", "DM", "thread" | `slack` | Communication |
|
|
157
|
+
| "email", "Gmail", "inbox", "draft", "reply to", "send to" | `gmail` | Communication |
|
|
158
|
+
| "calendar", "meeting", "schedule", "free time", "invite", "block time" | `google-calendar` | Calendar |
|
|
159
|
+
| "how do I use [library]", "API docs", "documentation for X framework" | `context7` | Ext. docs |
|
|
160
|
+
| "find in internal docs", "Glean", "search Klaviyo", "company policy" | `glean_default` | Internal knowledge |
|
|
161
|
+
| "screenshot", "test the UI", "click button", "E2E", "browser test" | `playwright` | Testing |
|
|
162
|
+
| "find someone's email", "contact info", "company profile", "person lookup" | `lusha` | CRM/people |
|
|
163
|
+
| "Swift docs", "SwiftUI", "UIKit", "Apple framework", "AppKit" | `apple-doc-mcp` | Apple dev |
|
|
164
|
+
| "think through this", "complex analysis", "multi-step reasoning", "trade-offs" | `sequential-thinking` | Reasoning |
|
|
165
|
+
| "debug browser", "network request", "Chrome DevTools", "performance profile" | `chrome-devtools` | Dev tools |
|
|
166
|
+
| "who is oncall", "search internal", "Klaviyo runbook" | `glean_default` | Internal ops |
|
|
167
|
+
| "IT admin", "org-wide Jira change", "admin Confluence" | `mcp-atlassian` | Admin ops |
|
|
168
|
+
| "highlight", "saved article", "Readwise", "reading list" | *(Readwise — not configured in current settings)* | — |
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## 3. Multi-MCP Workflows
|
|
173
|
+
|
|
174
|
+
### W1: Jira Ticket → Research → Implement → PR → Notify Team
|
|
175
|
+
```
|
|
176
|
+
1. mcp-atlassian-personal.jira_get_issue → read ticket details
|
|
177
|
+
2. context7.get-library-docs → research relevant APIs
|
|
178
|
+
3. git.git_status + git.git_create_branch → prep branch
|
|
179
|
+
4. [implement code changes]
|
|
180
|
+
5. git.git_add + git.git_commit → commit work
|
|
181
|
+
6. slack.slack_post_message → notify team of PR
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### W2: Calendar Check → Draft Message → Email Follow-up
|
|
185
|
+
```
|
|
186
|
+
1. google-calendar.get-freebusy → find mutual availability
|
|
187
|
+
2. google-calendar.search-events → context on existing meetings
|
|
188
|
+
3. slack.slack_post_message OR slack.slack_reply_to_thread → async coordination
|
|
189
|
+
4. gmail.draft_email → formal follow-up (needs approval to send)
|
|
190
|
+
5. google-calendar.create-event → book the slot (needs approval)
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### W3: IT Service Request → Jira Tracking → Slack Update
|
|
194
|
+
```
|
|
195
|
+
1. freshservice-mcp.get_ticket_by_id → read service request
|
|
196
|
+
2. mcp-atlassian-personal.jira_create_issue → create linked engineering task (needs approval)
|
|
197
|
+
3. freshservice-mcp.update_ticket → update FS ticket with Jira link (needs approval)
|
|
198
|
+
4. slack.slack_post_message → notify requester's team (needs approval)
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### W4: Bug Report → Code Investigation → Fix → Test → Close
|
|
202
|
+
```
|
|
203
|
+
1. mcp-atlassian-personal.jira_get_issue → read bug details
|
|
204
|
+
2. git.git_log + git.git_diff → inspect recent changes
|
|
205
|
+
3. glean_default.search → search internal runbooks for context
|
|
206
|
+
4. [implement fix]
|
|
207
|
+
5. playwright.browser_navigate + browser_snapshot → visual smoke test
|
|
208
|
+
6. git.git_add + git.git_commit → commit fix
|
|
209
|
+
7. mcp-atlassian-personal.jira_transition_issue → close/resolve ticket (needs approval)
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### W5: New Hire Onboarding Request → Access Provisioning → Confirm
|
|
213
|
+
```
|
|
214
|
+
1. freshservice-mcp.get_ticket_by_id → read onboarding request
|
|
215
|
+
2. mcp-atlassian-personal.jira_create_issue → create IT tasks (needs approval)
|
|
216
|
+
3. lusha.contactEnrich → enrich new hire contact info if needed
|
|
217
|
+
4. freshservice-mcp.create_requester → add to Freshservice (needs approval)
|
|
218
|
+
5. slack.slack_post_message → notify IT and manager (needs approval)
|
|
219
|
+
6. gmail.draft_email → welcome email (needs approval to send)
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### W6: Architecture Research → Documentation → Team Sync
|
|
223
|
+
```
|
|
224
|
+
1. context7.get-library-docs → library/framework research
|
|
225
|
+
2. glean_default.search → find existing internal decisions
|
|
226
|
+
3. sequential-thinking.sequentialthinking → synthesize trade-offs
|
|
227
|
+
4. mcp-atlassian-personal.confluence_create_page → write decision doc (needs approval)
|
|
228
|
+
5. slack.slack_post_message → share with team (needs approval)
|
|
229
|
+
6. google-calendar.create-event → schedule review meeting (needs approval)
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## 4. Approval Gate Annotations
|
|
235
|
+
|
|
236
|
+
### Auto-execute (safe — read/query/list only)
|
|
237
|
+
| Operation type | Examples |
|
|
238
|
+
|----------------|---------|
|
|
239
|
+
| Read git state | `git_status`, `git_diff`, `git_log`, `git_show`, `git_branch` |
|
|
240
|
+
| Search/list Jira | `jira_search`, `jira_get_issue`, `jira_get_all_projects`, `jira_get_sprint_issues` |
|
|
241
|
+
| Read Confluence | `confluence_get_page`, `confluence_search`, `confluence_get_comments` |
|
|
242
|
+
| Read Freshservice | `get_tickets`, `get_ticket_by_id`, `filter_tickets`, `get_all_agents` |
|
|
243
|
+
| Read calendar | `list-events`, `get-event`, `search-events`, `get-freebusy`, `get-current-time` |
|
|
244
|
+
| Read Slack | `list_channels`, `get_channel_history`, `get_thread_replies`, `get_users` |
|
|
245
|
+
| Read Gmail | `search_emails`, `read_email`, `list_email_labels` |
|
|
246
|
+
| Lookup contacts | `lusha.contactSearch`, `lusha.companySearch`, `lusha.contactEnrich` |
|
|
247
|
+
| Read docs | `context7.get-library-docs`, `glean_default.search`, `apple-doc-mcp.*` |
|
|
248
|
+
| Browser inspect | `playwright.browser_snapshot`, `browser_screenshot`, `browser_console_messages` |
|
|
249
|
+
| Analysis | `sequential-thinking.sequentialthinking` |
|
|
250
|
+
|
|
251
|
+
### Needs approval (write / mutate / send / delete)
|
|
252
|
+
| Operation type | Examples |
|
|
253
|
+
|----------------|---------|
|
|
254
|
+
| Git write | `git_commit`, `git_checkout`, `git_reset`, `git_create_branch` |
|
|
255
|
+
| Jira write | `jira_create_issue`, `jira_update_issue`, `jira_delete_issue`, `jira_transition_issue`, `jira_add_comment`, `jira_add_worklog` |
|
|
256
|
+
| Confluence write | `confluence_create_page`, `confluence_update_page`, `confluence_delete_page`, `confluence_add_comment` |
|
|
257
|
+
| Freshservice write | `create_ticket`, `update_ticket`, `delete_ticket`, `send_ticket_reply`, `create_ticket_note`, `create_service_request`, `create_agent`, `update_agent` |
|
|
258
|
+
| Calendar write | `create-event`, `update-event`, `delete-event`, `respond-to-event` |
|
|
259
|
+
| Slack write | `slack_post_message`, `slack_reply_to_thread`, `slack_add_reaction` |
|
|
260
|
+
| Gmail write | `send_email`, `draft_email`, `delete_email`, `batch_delete_emails`, `create_filter` |
|
|
261
|
+
| Browser actions | Form submissions, file uploads, page mutations via Playwright |
|
|
262
|
+
|
|
263
|
+
> **Hook enforcement**: `settings.json` registers a `PreToolUse` guard script on `mcp__mcp-atlassian-personal`, `mcp__mcp-atlassian`, `mcp__freshservice-mcp`, `mcp__slack`, and `mcp__gmail`. The guard will intercept write operations — treat any tool in those namespaces as needing user confirmation before proceeding.
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## 5. Mind Integration Notes (Orient Phase)
|
|
268
|
+
|
|
269
|
+
### Scan → Match → Gate → Chain
|
|
270
|
+
|
|
271
|
+
```
|
|
272
|
+
INPUT SCAN (keywords, intent, entities)
|
|
273
|
+
│
|
|
274
|
+
├── Domain keyword detected?
|
|
275
|
+
│ └── Yes → look up Contextual Trigger Map (Section 2)
|
|
276
|
+
│
|
|
277
|
+
├── Single domain or multi-domain?
|
|
278
|
+
│ ├── Single → pick direct MCP tool
|
|
279
|
+
│ └── Multi → pick workflow from Section 3 or compose ad-hoc chain
|
|
280
|
+
│
|
|
281
|
+
├── Approval gate check (Section 4)
|
|
282
|
+
│ ├── Read-only? → auto-proceed
|
|
283
|
+
│ └── Write/send/delete? → surface to user for confirmation
|
|
284
|
+
│
|
|
285
|
+
└── Execute → synthesize result → continue OODA loop
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### Orient heuristics
|
|
289
|
+
|
|
290
|
+
1. **Prefer read before write**: Always gather current state (`get_issue`, `git_status`, `list-events`) before proposing mutations.
|
|
291
|
+
2. **Parallel reads are safe**: `jira_get_issue` + `glean_default.search` + `git_log` can run concurrently — no side effects.
|
|
292
|
+
3. **Chain writes sequentially**: Write operations must be user-confirmed and ordered — never batch-execute multiple destructive actions.
|
|
293
|
+
4. **Use personal over admin**: Default to `mcp-atlassian-personal` unless the task explicitly requires IT admin scope.
|
|
294
|
+
5. **Match specificity**: IT/hardware/access → Freshservice. Engineering work → Jira. Internal knowledge → Glean. External library → context7. Personal saved reading → Readwise (not currently configured).
|
|
295
|
+
6. **Stop after answer**: If a single read resolves the question, stop. Do not escalate to `sequential-thinking` for simple factual lookups.
|
|
296
|
+
7. **Guard hook awareness**: Slack, Gmail, Atlassian, and Freshservice write operations are intercepted by the external-action-guard hook — do not attempt to batch them silently.
|