memory-journal-mcp 7.0.0 → 7.1.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/README.md +73 -74
- package/dist/{chunk-ARLH46WS.js → chunk-37BQOJDZ.js} +8 -1
- package/dist/{chunk-SBNQ7MXZ.js → chunk-GW5DYUQJ.js} +16 -14
- package/dist/{chunk-2BJHLTYP.js → chunk-JEGRDY6W.js} +736 -42
- package/dist/cli.js +3 -3
- package/dist/github-integration-FOJ4U6I5.js +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3 -3
- package/dist/{tools-FFFGXIKN.js → tools-O44Q52RD.js} +2 -2
- package/package.json +2 -2
- package/skills/github-commander/SKILL.md +1 -1
- package/skills/github-commander/config/project-config.example.md +1 -1
- package/dist/github-integration-PDRLXKGM.js +0 -1
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
[](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.neverinfamous/memory-journal-mcp)
|
|
11
11
|
[](SECURITY.md)
|
|
12
12
|
[](https://github.com/neverinfamous/memory-journal-mcp)
|
|
13
|
-

|
|
14
14
|

|
|
15
15
|

|
|
16
16
|
[](https://github.com/neverinfamous/memory-journal-mcp/actions/workflows/gatekeeper.yml)
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
|
|
29
29
|
### What Sets Us Apart
|
|
30
30
|
|
|
31
|
-
**
|
|
31
|
+
**65 MCP Tools** · **17 Workflow Prompts** · **38 Resources** · **10 Tool Groups** · **Code Mode** · **GitHub Commander** (Issue Triage, PR Review, Milestone Sprints, Security/Quality/Perf Audits) · **GitHub Integration** (Issues, PRs, Actions, Kanban, Milestones, Insights) · **Team Collaboration** (Shared DB, Vector Search, Cross-Project Insights)
|
|
32
32
|
|
|
33
33
|
| Feature | Description |
|
|
34
34
|
| ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
@@ -40,7 +40,8 @@
|
|
|
40
40
|
| **Code Mode** | Execute multi-step operations in a secure sandbox — up to 90% token savings via `mj.*` API |
|
|
41
41
|
| **Configurable Briefing** | 12 env vars / CLI flags control `memory://briefing` content — entries, team, GitHub detail, skills awareness |
|
|
42
42
|
| **Reports & Analytics** | Standups, retrospectives, PR summaries, digests, period analyses, and milestone tracking |
|
|
43
|
-
| **Team Collaboration** |
|
|
43
|
+
| **Team Collaboration** | 22 tools with full parity — CRUD, vector search, relationship graphs, cross-project insights, author attribution |
|
|
44
|
+
| **Data Interoperability** | Bidirectional Markdown roundtripping, unified IO namespace, and schema-safe JSON exports with hard bounds-checked path traversal defenses |
|
|
44
45
|
| **Backup & Restore** | One-command backup/restore with automated scheduling, retention policies, and safety-net auto-backups |
|
|
45
46
|
| **Security & Transport** | OAuth 2.1 (RFC 9728/8414, JWT/JWKS, scopes), Streamable HTTP + SSE, rate limiting, CORS, SQL injection prevention, non-root Docker |
|
|
46
47
|
| **Structured Error Handling** | Every tool returns `{success, error, code, category, suggestion, recoverable}` — agents get classification, remediation hints, and recoverability signals |
|
|
@@ -149,18 +150,18 @@ Control which tools are exposed via `MEMORY_JOURNAL_MCP_TOOL_FILTER` (or CLI: `-
|
|
|
149
150
|
|
|
150
151
|
| Filter | Tools | Use Case |
|
|
151
152
|
| -------------------- | ----- | ------------------------ |
|
|
152
|
-
| `full` |
|
|
153
|
+
| `full` | 65 | All tools (default) |
|
|
153
154
|
| `starter` | ~11 | Core + search + codemode |
|
|
154
155
|
| `essential` | ~7 | Minimal footprint |
|
|
155
156
|
| `readonly` | ~15 | Disable all mutations |
|
|
156
|
-
| `-github` |
|
|
157
|
-
| `-github,-analytics` |
|
|
157
|
+
| `-github` | 49 | Exclude a group |
|
|
158
|
+
| `-github,-analytics` | 47 | Exclude multiple groups |
|
|
158
159
|
|
|
159
160
|
**Filter Syntax:** `shortcut` or `group` or `tool_name` (whitelist mode) · `-group` (disable group) · `-tool` (disable tool) · `+tool` (re-enable after group disable)
|
|
160
161
|
|
|
161
162
|
**Custom Selection:** List individual tool names to create your own whitelist: `--tool-filter "create_entry,search_entries,semantic_search"`
|
|
162
163
|
|
|
163
|
-
**Groups:** `core`, `search`, `analytics`, `relationships`, `
|
|
164
|
+
**Groups:** `core`, `search`, `analytics`, `relationships`, `io`, `admin`, `github`, `backup`, `team`, `codemode`
|
|
164
165
|
|
|
165
166
|
**[Complete tool filtering guide →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Tool-Filtering)**
|
|
166
167
|
|
|
@@ -168,20 +169,20 @@ Control which tools are exposed via `MEMORY_JOURNAL_MCP_TOOL_FILTER` (or CLI: `-
|
|
|
168
169
|
|
|
169
170
|
## 📋 Core Capabilities
|
|
170
171
|
|
|
171
|
-
### 🛠️ **
|
|
172
|
-
|
|
173
|
-
| Group | Tools | Description
|
|
174
|
-
| --------------- | ----- |
|
|
175
|
-
| `codemode` | 1 | Code Mode (sandboxed code execution) 🌟 **Recommended**
|
|
176
|
-
| `core` | 6 | Entry CRUD, tags, test
|
|
177
|
-
| `search` | 4 | Text search, date range, semantic, vector stats
|
|
178
|
-
| `analytics` | 2 | Statistics, cross-project insights
|
|
179
|
-
| `relationships` | 2 | Link entries, visualize graphs
|
|
180
|
-
| `
|
|
181
|
-
| `admin` | 5 | Update, delete, rebuild/add to vector index, merge tags
|
|
182
|
-
| `github` | 16 | Issues, PRs, context, Kanban, **Milestones**, **Insights**, **issue lifecycle**, **Copilot Reviews**
|
|
183
|
-
| `backup` | 4 | Backup, list, restore, cleanup
|
|
184
|
-
| `team` |
|
|
172
|
+
### 🛠️ **65 MCP Tools** (10 Groups)
|
|
173
|
+
|
|
174
|
+
| Group | Tools | Description |
|
|
175
|
+
| --------------- | ----- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
176
|
+
| `codemode` | 1 | Code Mode (sandboxed code execution) 🌟 **Recommended** |
|
|
177
|
+
| `core` | 6 | Entry CRUD, tags, test |
|
|
178
|
+
| `search` | 4 | Text search, date range, semantic, vector stats |
|
|
179
|
+
| `analytics` | 2 | Statistics, cross-project insights |
|
|
180
|
+
| `relationships` | 2 | Link entries, visualize graphs |
|
|
181
|
+
| `io` | 3 | JSON/Markdown export and File-level Markdown Data Integration Interoperability (Import/Export) |
|
|
182
|
+
| `admin` | 5 | Update, delete, rebuild/add to vector index, merge tags |
|
|
183
|
+
| `github` | 16 | Issues, PRs, context, Kanban, **Milestones**, **Insights**, **issue lifecycle**, **Copilot Reviews** |
|
|
184
|
+
| `backup` | 4 | Backup, list, restore, cleanup |
|
|
185
|
+
| `team` | 22 | CRUD, search, stats, relationships, IO (Markdown import/export), backup, vector search, cross-project insights (requires `TEAM_DB_PATH`) |
|
|
185
186
|
|
|
186
187
|
**[Complete tools reference →](https://github.com/neverinfamous/memory-journal-mcp/wiki/Tools)**
|
|
187
188
|
|
|
@@ -268,7 +269,7 @@ Code executes in a **sandboxed VM context** with multiple layers of security. Al
|
|
|
268
269
|
|
|
269
270
|
### ⚡ Code Mode Only (Maximum Token Savings)
|
|
270
271
|
|
|
271
|
-
Run with **only Code Mode enabled** — a single tool that provides access to all
|
|
272
|
+
Run with **only Code Mode enabled** — a single tool that provides access to all 65 tools' worth of capability through the `mj.*` API:
|
|
272
273
|
|
|
273
274
|
```json
|
|
274
275
|
{
|
|
@@ -473,54 +474,52 @@ Each job is error-isolated — a failure in one job won't affect the others. Sch
|
|
|
473
474
|
|
|
474
475
|
The GitHub tools (`get_github_issues`, `get_github_prs`, etc.) auto-detect the repository from your git context when `PROJECT_REGISTRY` is configured or the MCP server is run inside a git repository.
|
|
475
476
|
|
|
476
|
-
| Environment Variable
|
|
477
|
-
|
|
|
478
|
-
| `DB_PATH`
|
|
479
|
-
| `TEAM_DB_PATH`
|
|
480
|
-
| `TEAM_AUTHOR`
|
|
481
|
-
| `GITHUB_TOKEN`
|
|
482
|
-
|
|
483
|
-
| `
|
|
484
|
-
| `
|
|
485
|
-
| `
|
|
486
|
-
| `
|
|
487
|
-
| `
|
|
488
|
-
| `
|
|
489
|
-
| `
|
|
490
|
-
| `
|
|
491
|
-
| `
|
|
492
|
-
| `
|
|
493
|
-
| `
|
|
494
|
-
| `
|
|
495
|
-
| `
|
|
496
|
-
| `
|
|
497
|
-
| `
|
|
498
|
-
| `
|
|
499
|
-
| `
|
|
500
|
-
| `
|
|
501
|
-
| `
|
|
502
|
-
| `
|
|
503
|
-
| `
|
|
504
|
-
| `
|
|
505
|
-
| `
|
|
506
|
-
| `
|
|
507
|
-
| `
|
|
508
|
-
| `
|
|
509
|
-
| `
|
|
510
|
-
| `
|
|
511
|
-
| `
|
|
512
|
-
| `
|
|
513
|
-
| `
|
|
514
|
-
| `
|
|
515
|
-
| `
|
|
516
|
-
| `
|
|
517
|
-
| `
|
|
518
|
-
| `
|
|
519
|
-
| `
|
|
520
|
-
| `
|
|
521
|
-
| `
|
|
522
|
-
| `AUDIT_LOG_MAX_SIZE` | Maximum audit log file size in bytes before rotation (CLI: `--audit-log-max-size`; default: `10485760`) |
|
|
523
|
-
| `MCP_METRICS_ENABLED` | Set to `false` to disable in-memory tool call metrics accumulation (default: `true`) |
|
|
477
|
+
| Environment Variable | Description |
|
|
478
|
+
| --------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
|
|
479
|
+
| `DB_PATH` | Database file location (CLI: `--db`; default: `./memory_journal.db`) |
|
|
480
|
+
| `TEAM_DB_PATH` | Team database file location (CLI: `--team-db`) |
|
|
481
|
+
| `TEAM_AUTHOR` | Override author name for team entries (default: `git config user.name`) |
|
|
482
|
+
| `GITHUB_TOKEN` | GitHub personal access token for API access |
|
|
483
|
+
| `DEFAULT_PROJECT_NUMBER` | Default GitHub Project number for auto-assignment when creating issues |
|
|
484
|
+
| `PROJECT_REGISTRY` | JSON map of repos to `{ path, project_number }` for multi-project auto-detection and routing |
|
|
485
|
+
| `AUTO_REBUILD_INDEX` | Set to `true` to rebuild vector index on server startup |
|
|
486
|
+
| `MCP_HOST` | Server bind host (`0.0.0.0` for containers, default: `localhost`) |
|
|
487
|
+
| `MCP_AUTH_TOKEN` | Bearer token for HTTP transport authentication (CLI: `--auth-token`) |
|
|
488
|
+
| `MCP_CORS_ORIGIN` | Allowed CORS origins for HTTP transport, comma-separated (default: `*`) |
|
|
489
|
+
| `MCP_RATE_LIMIT_MAX` | Max requests per minute per client IP, HTTP only (default: `100`) |
|
|
490
|
+
| `LOG_LEVEL` | Log verbosity: `error`, `warn`, `info`, `debug` (default: `info`; CLI: `--log-level`) |
|
|
491
|
+
| `MCP_ENABLE_HSTS` | Enable HSTS security header on HTTP responses (CLI: `--enable-hsts`; default: `false`) |
|
|
492
|
+
| `OAUTH_ENABLED` | Set to `true` to enable OAuth 2.1 authentication (HTTP only) |
|
|
493
|
+
| `OAUTH_ISSUER` | OAuth issuer URL (e.g., `https://auth.example.com/realms/mcp`) |
|
|
494
|
+
| `OAUTH_AUDIENCE` | Expected JWT audience claim |
|
|
495
|
+
| `OAUTH_JWKS_URI` | JWKS endpoint for token signature verification |
|
|
496
|
+
| `BRIEFING_ENTRY_COUNT` | Journal entries in briefing (CLI: `--briefing-entries`; default: `3`) |
|
|
497
|
+
| `BRIEFING_INCLUDE_TEAM` | Include team DB entries in briefing (`true`/`false`; default: `false`) |
|
|
498
|
+
| `BRIEFING_ISSUE_COUNT` | Issues to list in briefing; `0` = count only (default: `0`) |
|
|
499
|
+
| `BRIEFING_PR_COUNT` | PRs to list in briefing; `0` = count only (default: `0`) |
|
|
500
|
+
| `BRIEFING_PR_STATUS` | Show PR status breakdown (open/merged/closed; default: `false`) |
|
|
501
|
+
| `BRIEFING_WORKFLOW_COUNT` | Workflow runs to list in briefing; `0` = status only (default: `0`) |
|
|
502
|
+
| `BRIEFING_WORKFLOW_STATUS` | Show workflow status breakdown in briefing (default: `false`) |
|
|
503
|
+
| `BRIEFING_COPILOT_REVIEWS` | Aggregate Copilot review state in briefing (default: `false`) |
|
|
504
|
+
| `RULES_FILE_PATH` | Path to user rules file for agent awareness (CLI: `--rules-file`) |
|
|
505
|
+
| `SKILLS_DIR_PATH` | Path to skills directory for agent awareness (CLI: `--skills-dir`) |
|
|
506
|
+
| `MEMORY_JOURNAL_WORKFLOW_SUMMARY` | Free-text workflow summary for `memory://workflows` (CLI: `--workflow-summary`) |
|
|
507
|
+
| `INSTRUCTION_LEVEL` | Briefing depth: `essential`, `standard`, `full` (CLI: `--instruction-level`; default: `standard`) |
|
|
508
|
+
| `PROJECT_LINT_CMD` | Project lint command for GitHub Commander validation gates (default: `npm run lint`) |
|
|
509
|
+
| `PROJECT_TYPECHECK_CMD` | Project typecheck command (default: `npm run typecheck`; empty = skip) |
|
|
510
|
+
| `PROJECT_BUILD_CMD` | Project build command (default: `npm run build`; empty = skip) |
|
|
511
|
+
| `PROJECT_TEST_CMD` | Project test command (default: `npm run test`) |
|
|
512
|
+
| `PROJECT_E2E_CMD` | Project E2E test command (default: empty = skip) |
|
|
513
|
+
| `PROJECT_PACKAGE_MANAGER` | Package manager override: `npm`, `yarn`, `pnpm`, `bun` (default: auto-detect from lockfile) |
|
|
514
|
+
| `PROJECT_HAS_DOCKERFILE` | Enable Docker audit steps (default: auto-detect) |
|
|
515
|
+
| `COMMANDER_HITL_FILE_THRESHOLD` | Human-in-the-loop checkpoint if changes touch > N files (default: `10`) |
|
|
516
|
+
| `COMMANDER_SECURITY_TOOLS` | Override security tool auto-detection (comma-separated; default: auto-detect) |
|
|
517
|
+
| `COMMANDER_BRANCH_PREFIX` | Branch naming prefix for PRs (default: `fix`) |
|
|
518
|
+
| `AUDIT_LOG_PATH` | Path for the JSONL audit log of write/admin tool calls. Rotates at 10 MB (keeps 5 archives). Omit to disable audit logging. |
|
|
519
|
+
| `AUDIT_REDACT` | Set to `true` to omit tool arguments from audit log entries for privacy (default: `false`) |
|
|
520
|
+
| `AUDIT_READS` | Log read-scoped tool calls in addition to write/admin (CLI: `--audit-reads`; default: `false`) |
|
|
521
|
+
| `AUDIT_LOG_MAX_SIZE` | Maximum audit log file size in bytes before rotation (CLI: `--audit-log-max-size`; default: `10485760`) |
|
|
522
|
+
| `MCP_METRICS_ENABLED` | Set to `false` to disable in-memory tool call metrics accumulation (default: `true`) |
|
|
524
523
|
|
|
525
524
|
**Multi-Project Workflows**: For agents to seamlessly support multiple projects, provide **`PROJECT_REGISTRY`**.
|
|
526
525
|
|
|
@@ -556,7 +555,7 @@ For production deployments, enable OAuth 2.1 authentication on the HTTP transpor
|
|
|
556
555
|
|
|
557
556
|
| Scope | Tool Groups |
|
|
558
557
|
| ------- | ------------------------------------------------- |
|
|
559
|
-
| `read` | core, search, analytics, relationships,
|
|
558
|
+
| `read` | core, search, analytics, relationships, io |
|
|
560
559
|
| `write` | github, team (+ all read groups) |
|
|
561
560
|
| `admin` | admin, backup, codemode (+ all write/read groups) |
|
|
562
561
|
|
|
@@ -630,8 +629,8 @@ flowchart TB
|
|
|
630
629
|
AI["🤖 AI Agent<br/>(Cursor, Windsurf, Claude)"]
|
|
631
630
|
|
|
632
631
|
subgraph MCP["Memory Journal MCP Server"]
|
|
633
|
-
Tools["🛠️
|
|
634
|
-
Resources["📡
|
|
632
|
+
Tools["🛠️ 65 Tools"]
|
|
633
|
+
Resources["📡 38 Resources"]
|
|
635
634
|
Prompts["💬 17 Prompts"]
|
|
636
635
|
end
|
|
637
636
|
|
|
@@ -659,7 +658,7 @@ flowchart TB
|
|
|
659
658
|
┌─────────────────────────────────────────────────────────────┐
|
|
660
659
|
│ MCP Server Layer (TypeScript) │
|
|
661
660
|
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────┐ │
|
|
662
|
-
│ │ Tools (
|
|
661
|
+
│ │ Tools (65) │ │ Resources (38) │ │ Prompts (17)│ │
|
|
663
662
|
│ │ with Annotations│ │ with Annotations│ │ │ │
|
|
664
663
|
│ └─────────────────┘ └─────────────────┘ └─────────────┘ │
|
|
665
664
|
├─────────────────────────────────────────────────────────────┤
|
|
@@ -222,6 +222,13 @@ function assertNoPathTraversal(filename) {
|
|
|
222
222
|
throw new PathTraversalError(filename);
|
|
223
223
|
}
|
|
224
224
|
}
|
|
225
|
+
function assertSafeDirectoryPath(dirPath) {
|
|
226
|
+
const normalized = dirPath.replace(/\\/g, "/");
|
|
227
|
+
const segments = normalized.split("/");
|
|
228
|
+
if (segments.some((s) => s === "..")) {
|
|
229
|
+
throw new PathTraversalError(dirPath);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
225
232
|
var TOKEN_PATTERNS = [
|
|
226
233
|
// GitHub personal access tokens (classic and fine-grained)
|
|
227
234
|
/ghp_[A-Za-z0-9_]{36,}/g,
|
|
@@ -1656,4 +1663,4 @@ var GitHubIntegration = class {
|
|
|
1656
1663
|
}
|
|
1657
1664
|
};
|
|
1658
1665
|
|
|
1659
|
-
export { ConfigurationError, ConnectionError, GitHubIntegration, MemoryJournalMcpError, QueryError, ResourceNotFoundError, ValidationError, assertNoPathTraversal, logger, matchSuggestion, resolveAuthor, validateDateFormatPattern };
|
|
1666
|
+
export { ConfigurationError, ConnectionError, GitHubIntegration, MemoryJournalMcpError, QueryError, ResourceNotFoundError, ValidationError, assertNoPathTraversal, assertSafeDirectoryPath, logger, matchSuggestion, resolveAuthor, validateDateFormatPattern };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { withSessionInit, withPriority, ASSISTANT_FOCUSED, TOOL_GROUPS, HIGH_PRIORITY, LOW_PRIORITY, MEDIUM_PRIORITY, setDefaultSandboxMode, initializeAuditLogger, parseToolFilter, getFilterSummary, getToolFilterFromEnv, getTools, getEnabledGroups, callTool, getGlobalAuditLogger, sendProgress, SUPPORTED_SCOPES, getRequiredScope, hasScope, getAuditResourceDef, execQuery, transformEntryRow, resolveGitHubRepo, isResourceError, milestoneCompletionPct, parseScopes, BASE_SCOPES, getAllToolNames, globalMetrics, DEFAULT_BRIEFING_CONFIG } from './chunk-
|
|
2
|
-
import { logger, GitHubIntegration, ConfigurationError, ResourceNotFoundError, ConnectionError, QueryError, assertNoPathTraversal, ValidationError, MemoryJournalMcpError, validateDateFormatPattern } from './chunk-
|
|
1
|
+
import { withSessionInit, withPriority, ASSISTANT_FOCUSED, TOOL_GROUPS, HIGH_PRIORITY, LOW_PRIORITY, MEDIUM_PRIORITY, setDefaultSandboxMode, initializeAuditLogger, parseToolFilter, getFilterSummary, getToolFilterFromEnv, getTools, getEnabledGroups, callTool, getGlobalAuditLogger, sendProgress, SUPPORTED_SCOPES, getRequiredScope, hasScope, getAuditResourceDef, execQuery, transformEntryRow, resolveGitHubRepo, isResourceError, milestoneCompletionPct, parseScopes, BASE_SCOPES, getAllToolNames, globalMetrics, DEFAULT_BRIEFING_CONFIG } from './chunk-JEGRDY6W.js';
|
|
2
|
+
import { logger, GitHubIntegration, ConfigurationError, ResourceNotFoundError, ConnectionError, QueryError, assertNoPathTraversal, ValidationError, MemoryJournalMcpError, validateDateFormatPattern } from './chunk-37BQOJDZ.js';
|
|
3
3
|
import { createRequire } from 'module';
|
|
4
4
|
import { McpServer, ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
5
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
@@ -2445,10 +2445,10 @@ var CODE_MODE_NAMESPACE_ROWS = [
|
|
|
2445
2445
|
example: '`mj.relationships.linkEntries(1, 2, "implements")`'
|
|
2446
2446
|
},
|
|
2447
2447
|
{
|
|
2448
|
-
group: "
|
|
2449
|
-
label: "
|
|
2450
|
-
namespace: "`mj.
|
|
2451
|
-
example: '`mj.
|
|
2448
|
+
group: "io",
|
|
2449
|
+
label: "IO",
|
|
2450
|
+
namespace: "`mj.io.*`",
|
|
2451
|
+
example: '`mj.io.exportEntries("json")`'
|
|
2452
2452
|
},
|
|
2453
2453
|
{
|
|
2454
2454
|
group: "admin",
|
|
@@ -2502,7 +2502,7 @@ This executes JavaScript in a sandboxed environment with all tools available as
|
|
|
2502
2502
|
| Search | \`mj.search.*\` | \`mj.search.searchEntries("performance")\` |
|
|
2503
2503
|
| Analytics | \`mj.analytics.*\` | \`mj.analytics.getStatistics()\` |
|
|
2504
2504
|
| Relationships | \`mj.relationships.*\` | \`mj.relationships.linkEntries(1, 2, "implements")\` |
|
|
2505
|
-
|
|
|
2505
|
+
| IO | \`mj.io.*\` | \`mj.io.exportEntries("json")\` |
|
|
2506
2506
|
| Admin | \`mj.admin.*\` | \`mj.admin.rebuildVectorIndex()\` |
|
|
2507
2507
|
| GitHub | \`mj.github.*\` | \`mj.github.getGithubIssues({ state: "open" })\` |
|
|
2508
2508
|
| Backup | \`mj.backup.*\` | \`mj.backup.backupJournal()\` |
|
|
@@ -2626,7 +2626,7 @@ var GOTCHAS_CONTENT = `# memory-journal-mcp \u2014 Field Notes & Gotchas
|
|
|
2626
2626
|
|
|
2627
2627
|
- **Team cross-database search**: \`search_entries\` and \`search_by_date_range\` automatically merge team DB results when \`TEAM_DB_PATH\` is configured. Results include a \`source\` field ("personal" or "team").
|
|
2628
2628
|
- **Team vector search**: Team has its own isolated vector index. Use \`team_rebuild_vector_index\` if the team index drifts. \`team_semantic_search\` works identically to personal \`semantic_search\`.
|
|
2629
|
-
- **Team tools without \`TEAM_DB_PATH\`**: All
|
|
2629
|
+
- **Team tools without \`TEAM_DB_PATH\`**: All 22 team tools return \`{ success: false, error: "Team collaboration is not configured..." }\` \u2014 no crash, no partial results.
|
|
2630
2630
|
`;
|
|
2631
2631
|
function generateInstructions(enabledTools, prompts, latestEntry, level = "standard", enabledGroups) {
|
|
2632
2632
|
const groups = enabledGroups ?? getEnabledGroups(enabledTools);
|
|
@@ -4553,13 +4553,13 @@ function getTemplateResourceDefinitions() {
|
|
|
4553
4553
|
return { error: "Invalid project number" };
|
|
4554
4554
|
}
|
|
4555
4555
|
if (!context.github) {
|
|
4556
|
-
return 'graph LR\n NoGitHub["GitHub integration not available \u2014 set GITHUB_TOKEN
|
|
4556
|
+
return 'graph LR\n NoGitHub["GitHub integration not available \u2014 set GITHUB_TOKEN or enable GitHub integration"]';
|
|
4557
4557
|
}
|
|
4558
4558
|
const repoInfo = await context.github.getRepoInfo();
|
|
4559
4559
|
const owner = repoInfo.owner;
|
|
4560
4560
|
const repo = repoInfo.repo ?? void 0;
|
|
4561
4561
|
if (!owner) {
|
|
4562
|
-
return 'graph LR\n NoOwner["Repository owner not detected \u2014
|
|
4562
|
+
return 'graph LR\n NoOwner["Repository owner not detected \u2014 configure PROJECT_REGISTRY or run the server from within a valid git repository"]';
|
|
4563
4563
|
}
|
|
4564
4564
|
const board = await context.github.getProjectKanban(owner, projectNumber, repo);
|
|
4565
4565
|
if (!board) {
|
|
@@ -4692,7 +4692,7 @@ var GROUP_DESCRIPTIONS = {
|
|
|
4692
4692
|
search: "Full-text search, semantic search, date range queries, and vector index stats",
|
|
4693
4693
|
analytics: "Entry analytics, importance scoring, and productivity trends",
|
|
4694
4694
|
relationships: "Link and visualize relationships between journal entries",
|
|
4695
|
-
|
|
4695
|
+
io: "Import and export journal data \u2014 JSON export, Markdown round-trip (export/import)",
|
|
4696
4696
|
admin: "Update entries, rebuild indexes, and manage the vector search index",
|
|
4697
4697
|
github: "GitHub integration \u2014 issues, PRs, milestones, workflow runs, Kanban boards",
|
|
4698
4698
|
backup: "Create and restore database backups",
|
|
@@ -4894,7 +4894,7 @@ function getHelpResourceDefinitions() {
|
|
|
4894
4894
|
var toolIndexModule = null;
|
|
4895
4895
|
async function getAllToolDefinitionsAsync(context) {
|
|
4896
4896
|
try {
|
|
4897
|
-
toolIndexModule ??= await import('./tools-
|
|
4897
|
+
toolIndexModule ??= await import('./tools-O44Q52RD.js');
|
|
4898
4898
|
if (toolIndexModule === null) return [];
|
|
4899
4899
|
const tools = toolIndexModule.getTools(context.db, null);
|
|
4900
4900
|
return tools.map((t) => ({
|
|
@@ -4935,8 +4935,10 @@ function inferGroupFromName(name) {
|
|
|
4935
4935
|
// relationships (2)
|
|
4936
4936
|
link_entries: "relationships",
|
|
4937
4937
|
visualize_relationships: "relationships",
|
|
4938
|
-
//
|
|
4939
|
-
export_entries: "
|
|
4938
|
+
// io (3)
|
|
4939
|
+
export_entries: "io",
|
|
4940
|
+
export_markdown: "io",
|
|
4941
|
+
import_markdown: "io",
|
|
4940
4942
|
// admin (5)
|
|
4941
4943
|
update_entry: "admin",
|
|
4942
4944
|
delete_entry: "admin",
|