memory-journal-mcp 3.0.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.
Files changed (107) hide show
  1. package/.dockerignore +88 -0
  2. package/.github/ISSUE_TEMPLATE/bug_report.md +76 -0
  3. package/.github/ISSUE_TEMPLATE/config.yml +11 -0
  4. package/.github/ISSUE_TEMPLATE/feature_request.md +89 -0
  5. package/.github/ISSUE_TEMPLATE/question.md +63 -0
  6. package/.github/dependabot.yml +110 -0
  7. package/.github/pull_request_template.md +110 -0
  8. package/.github/workflows/DOCKER_DEPLOYMENT_SETUP.md +346 -0
  9. package/.github/workflows/codeql.yml +45 -0
  10. package/.github/workflows/dependabot-auto-merge.yml +42 -0
  11. package/.github/workflows/docker-publish.yml +277 -0
  12. package/.github/workflows/lint-and-test.yml +58 -0
  13. package/.github/workflows/publish-npm.yml +75 -0
  14. package/.github/workflows/secrets-scanning.yml +32 -0
  15. package/.github/workflows/security-update.yml +99 -0
  16. package/.memory-journal-team.db +0 -0
  17. package/.trivyignore +18 -0
  18. package/CHANGELOG.md +19 -0
  19. package/CODE_OF_CONDUCT.md +128 -0
  20. package/CONTRIBUTING.md +209 -0
  21. package/DOCKER_README.md +377 -0
  22. package/Dockerfile +64 -0
  23. package/LICENSE +21 -0
  24. package/README.md +461 -0
  25. package/SECURITY.md +200 -0
  26. package/VERSION +1 -0
  27. package/dist/cli.d.ts +5 -0
  28. package/dist/cli.d.ts.map +1 -0
  29. package/dist/cli.js +42 -0
  30. package/dist/cli.js.map +1 -0
  31. package/dist/constants/ServerInstructions.d.ts +8 -0
  32. package/dist/constants/ServerInstructions.d.ts.map +1 -0
  33. package/dist/constants/ServerInstructions.js +26 -0
  34. package/dist/constants/ServerInstructions.js.map +1 -0
  35. package/dist/database/SqliteAdapter.d.ts +198 -0
  36. package/dist/database/SqliteAdapter.d.ts.map +1 -0
  37. package/dist/database/SqliteAdapter.js +736 -0
  38. package/dist/database/SqliteAdapter.js.map +1 -0
  39. package/dist/filtering/ToolFilter.d.ts +63 -0
  40. package/dist/filtering/ToolFilter.d.ts.map +1 -0
  41. package/dist/filtering/ToolFilter.js +242 -0
  42. package/dist/filtering/ToolFilter.js.map +1 -0
  43. package/dist/github/GitHubIntegration.d.ts +91 -0
  44. package/dist/github/GitHubIntegration.d.ts.map +1 -0
  45. package/dist/github/GitHubIntegration.js +317 -0
  46. package/dist/github/GitHubIntegration.js.map +1 -0
  47. package/dist/handlers/prompts/index.d.ts +28 -0
  48. package/dist/handlers/prompts/index.d.ts.map +1 -0
  49. package/dist/handlers/prompts/index.js +366 -0
  50. package/dist/handlers/prompts/index.js.map +1 -0
  51. package/dist/handlers/resources/index.d.ts +27 -0
  52. package/dist/handlers/resources/index.d.ts.map +1 -0
  53. package/dist/handlers/resources/index.js +453 -0
  54. package/dist/handlers/resources/index.js.map +1 -0
  55. package/dist/handlers/tools/index.d.ts +26 -0
  56. package/dist/handlers/tools/index.d.ts.map +1 -0
  57. package/dist/handlers/tools/index.js +982 -0
  58. package/dist/handlers/tools/index.js.map +1 -0
  59. package/dist/index.d.ts +11 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +13 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/server/McpServer.d.ts +18 -0
  64. package/dist/server/McpServer.d.ts.map +1 -0
  65. package/dist/server/McpServer.js +171 -0
  66. package/dist/server/McpServer.js.map +1 -0
  67. package/dist/types/index.d.ts +300 -0
  68. package/dist/types/index.d.ts.map +1 -0
  69. package/dist/types/index.js +15 -0
  70. package/dist/types/index.js.map +1 -0
  71. package/dist/utils/McpLogger.d.ts +61 -0
  72. package/dist/utils/McpLogger.d.ts.map +1 -0
  73. package/dist/utils/McpLogger.js +113 -0
  74. package/dist/utils/McpLogger.js.map +1 -0
  75. package/dist/utils/logger.d.ts +30 -0
  76. package/dist/utils/logger.d.ts.map +1 -0
  77. package/dist/utils/logger.js +70 -0
  78. package/dist/utils/logger.js.map +1 -0
  79. package/dist/vector/VectorSearchManager.d.ts +63 -0
  80. package/dist/vector/VectorSearchManager.d.ts.map +1 -0
  81. package/dist/vector/VectorSearchManager.js +235 -0
  82. package/dist/vector/VectorSearchManager.js.map +1 -0
  83. package/docker-compose.yml +37 -0
  84. package/eslint.config.js +86 -0
  85. package/mcp-config-example.json +21 -0
  86. package/package.json +71 -0
  87. package/releases/release-notes-v2.2.0.md +165 -0
  88. package/releases/release-notes.md +214 -0
  89. package/releases/v3.0.0.md +236 -0
  90. package/server.json +42 -0
  91. package/src/cli.ts +52 -0
  92. package/src/constants/ServerInstructions.ts +25 -0
  93. package/src/database/SqliteAdapter.ts +952 -0
  94. package/src/filtering/ToolFilter.ts +271 -0
  95. package/src/github/GitHubIntegration.ts +409 -0
  96. package/src/handlers/prompts/index.ts +420 -0
  97. package/src/handlers/resources/index.ts +529 -0
  98. package/src/handlers/tools/index.ts +1081 -0
  99. package/src/index.ts +53 -0
  100. package/src/server/McpServer.ts +230 -0
  101. package/src/types/index.ts +435 -0
  102. package/src/types/sql.js.d.ts +34 -0
  103. package/src/utils/McpLogger.ts +155 -0
  104. package/src/utils/logger.ts +98 -0
  105. package/src/vector/VectorSearchManager.ts +277 -0
  106. package/tools.json +300 -0
  107. package/tsconfig.json +51 -0
@@ -0,0 +1,317 @@
1
+ /**
2
+ * Memory Journal MCP Server - GitHub Integration
3
+ *
4
+ * GitHub API integration using @octokit/rest for API access
5
+ * and simple-git for local repository operations.
6
+ */
7
+ import { Octokit } from '@octokit/rest';
8
+ import * as simpleGitImport from 'simple-git';
9
+ import { logger } from '../utils/logger.js';
10
+ const simpleGit = simpleGitImport.simpleGit;
11
+ /**
12
+ * GitHubIntegration - Handles GitHub API and local git operations
13
+ */
14
+ export class GitHubIntegration {
15
+ octokit = null;
16
+ git;
17
+ token;
18
+ constructor(workingDir = '.') {
19
+ this.token = process.env['GITHUB_TOKEN'];
20
+ // Use GITHUB_REPO_PATH env var if set, otherwise fall back to workingDir
21
+ const envRepoPath = process.env['GITHUB_REPO_PATH'];
22
+ const effectiveDir = envRepoPath || workingDir;
23
+ // Resolve and log the actual working directory
24
+ const resolvedDir = effectiveDir === '.' ? process.cwd() : effectiveDir;
25
+ logger.info('GitHub integration using directory', {
26
+ module: 'GitHub',
27
+ workingDir,
28
+ envRepoPath: envRepoPath ?? 'not set',
29
+ effectiveDir,
30
+ resolvedDir,
31
+ cwd: process.cwd()
32
+ });
33
+ this.git = simpleGit(effectiveDir);
34
+ // Initialize Octokit if token is available
35
+ if (this.token) {
36
+ this.octokit = new Octokit({ auth: this.token });
37
+ logger.info('GitHub integration initialized with token', { module: 'GitHub' });
38
+ }
39
+ else {
40
+ logger.info('GitHub integration initialized without token (limited functionality)', { module: 'GitHub' });
41
+ }
42
+ }
43
+ /**
44
+ * Check if GitHub API is available (token present)
45
+ */
46
+ isApiAvailable() {
47
+ return this.octokit !== null;
48
+ }
49
+ /**
50
+ * Get local repository information
51
+ */
52
+ async getRepoInfo() {
53
+ try {
54
+ // Get current branch
55
+ const branchResult = await this.git.branch();
56
+ const branch = branchResult.current || null;
57
+ // Get remote URL
58
+ const remotes = await this.git.getRemotes(true);
59
+ const origin = remotes.find(r => r.name === 'origin');
60
+ const remoteUrl = origin?.refs?.fetch || null;
61
+ // Parse owner/repo from remote URL
62
+ const { owner, repo } = this.parseRemoteUrl(remoteUrl);
63
+ return { owner, repo, branch, remoteUrl };
64
+ }
65
+ catch (error) {
66
+ logger.debug('Failed to get repo info (may not be a git repo)', {
67
+ module: 'GitHub',
68
+ error: error instanceof Error ? error.message : String(error)
69
+ });
70
+ return { owner: null, repo: null, branch: null, remoteUrl: null };
71
+ }
72
+ }
73
+ /**
74
+ * Parse owner and repo from GitHub remote URL
75
+ */
76
+ parseRemoteUrl(remoteUrl) {
77
+ if (!remoteUrl)
78
+ return { owner: null, repo: null };
79
+ // Handle SSH format: git@github.com:owner/repo.git
80
+ if (remoteUrl.startsWith('git@github.com:')) {
81
+ const pathPart = remoteUrl.replace('git@github.com:', '').replace('.git', '');
82
+ const parts = pathPart.split('/');
83
+ if (parts.length >= 2) {
84
+ return { owner: parts[0] ?? null, repo: parts[1] ?? null };
85
+ }
86
+ }
87
+ // Handle HTTPS format: https://github.com/owner/repo.git
88
+ try {
89
+ const url = new URL(remoteUrl);
90
+ if (url.hostname === 'github.com') {
91
+ const path = url.pathname.replace('.git', '').replace(/^\//, '');
92
+ const parts = path.split('/');
93
+ if (parts.length >= 2) {
94
+ return { owner: parts[0] ?? null, repo: parts[1] ?? null };
95
+ }
96
+ }
97
+ }
98
+ catch {
99
+ // Not a valid URL
100
+ }
101
+ return { owner: null, repo: null };
102
+ }
103
+ /**
104
+ * Get repository issues
105
+ */
106
+ async getIssues(owner, repo, state = 'open', limit = 20) {
107
+ if (!this.octokit) {
108
+ return [];
109
+ }
110
+ try {
111
+ const response = await this.octokit.issues.listForRepo({
112
+ owner,
113
+ repo,
114
+ state,
115
+ per_page: limit,
116
+ sort: 'updated',
117
+ direction: 'desc',
118
+ });
119
+ // Filter out pull requests (GitHub API includes PRs in issues)
120
+ return response.data
121
+ .filter(issue => !issue.pull_request)
122
+ .map(issue => ({
123
+ number: issue.number,
124
+ title: issue.title,
125
+ url: issue.html_url,
126
+ state: issue.state === 'open' ? 'OPEN' : 'CLOSED',
127
+ }));
128
+ }
129
+ catch (error) {
130
+ logger.error('Failed to get issues', {
131
+ module: 'GitHub',
132
+ error: error instanceof Error ? error.message : String(error)
133
+ });
134
+ return [];
135
+ }
136
+ }
137
+ /**
138
+ * Get issue details
139
+ */
140
+ async getIssue(owner, repo, issueNumber) {
141
+ if (!this.octokit) {
142
+ return null;
143
+ }
144
+ try {
145
+ const response = await this.octokit.issues.get({
146
+ owner,
147
+ repo,
148
+ issue_number: issueNumber,
149
+ });
150
+ const issue = response.data;
151
+ // Verify it's not a PR
152
+ if (issue.pull_request) {
153
+ return null;
154
+ }
155
+ return {
156
+ number: issue.number,
157
+ title: issue.title,
158
+ url: issue.html_url,
159
+ state: issue.state === 'open' ? 'OPEN' : 'CLOSED',
160
+ body: issue.body ?? null,
161
+ labels: issue.labels.map(l => (typeof l === 'string' ? l : l.name ?? '')),
162
+ assignees: issue.assignees?.map(a => a.login) ?? [],
163
+ createdAt: issue.created_at,
164
+ updatedAt: issue.updated_at,
165
+ closedAt: issue.closed_at,
166
+ commentsCount: issue.comments,
167
+ };
168
+ }
169
+ catch (error) {
170
+ logger.error('Failed to get issue details', {
171
+ module: 'GitHub',
172
+ entityId: issueNumber,
173
+ error: error instanceof Error ? error.message : String(error)
174
+ });
175
+ return null;
176
+ }
177
+ }
178
+ /**
179
+ * Get repository pull requests
180
+ */
181
+ async getPullRequests(owner, repo, state = 'open', limit = 20) {
182
+ if (!this.octokit) {
183
+ return [];
184
+ }
185
+ try {
186
+ const response = await this.octokit.pulls.list({
187
+ owner,
188
+ repo,
189
+ state,
190
+ per_page: limit,
191
+ sort: 'updated',
192
+ direction: 'desc',
193
+ });
194
+ return response.data.map(pr => ({
195
+ number: pr.number,
196
+ title: pr.title,
197
+ url: pr.html_url,
198
+ state: pr.merged_at ? 'MERGED' : (pr.state === 'open' ? 'OPEN' : 'CLOSED'),
199
+ }));
200
+ }
201
+ catch (error) {
202
+ logger.error('Failed to get pull requests', {
203
+ module: 'GitHub',
204
+ error: error instanceof Error ? error.message : String(error)
205
+ });
206
+ return [];
207
+ }
208
+ }
209
+ /**
210
+ * Get PR details
211
+ */
212
+ async getPullRequest(owner, repo, prNumber) {
213
+ if (!this.octokit) {
214
+ return null;
215
+ }
216
+ try {
217
+ const response = await this.octokit.pulls.get({
218
+ owner,
219
+ repo,
220
+ pull_number: prNumber,
221
+ });
222
+ const pr = response.data;
223
+ return {
224
+ number: pr.number,
225
+ title: pr.title,
226
+ url: pr.html_url,
227
+ state: pr.merged_at ? 'MERGED' : (pr.state === 'open' ? 'OPEN' : 'CLOSED'),
228
+ body: pr.body,
229
+ draft: pr.draft ?? false,
230
+ headBranch: pr.head.ref,
231
+ baseBranch: pr.base.ref,
232
+ author: pr.user?.login ?? 'unknown',
233
+ createdAt: pr.created_at,
234
+ updatedAt: pr.updated_at,
235
+ mergedAt: pr.merged_at,
236
+ closedAt: pr.closed_at,
237
+ additions: pr.additions,
238
+ deletions: pr.deletions,
239
+ changedFiles: pr.changed_files,
240
+ };
241
+ }
242
+ catch (error) {
243
+ logger.error('Failed to get PR details', {
244
+ module: 'GitHub',
245
+ entityId: prNumber,
246
+ error: error instanceof Error ? error.message : String(error)
247
+ });
248
+ return null;
249
+ }
250
+ }
251
+ /**
252
+ * Get workflow runs from GitHub Actions
253
+ */
254
+ async getWorkflowRuns(owner, repo, limit = 10) {
255
+ if (!this.octokit) {
256
+ logger.debug('GitHub API not available - no token', { module: 'GitHub' });
257
+ return [];
258
+ }
259
+ try {
260
+ const response = await this.octokit.rest.actions.listWorkflowRunsForRepo({
261
+ owner,
262
+ repo,
263
+ per_page: limit,
264
+ });
265
+ return response.data.workflow_runs.map(run => ({
266
+ id: run.id,
267
+ name: run.name ?? 'Unknown Workflow',
268
+ status: run.status,
269
+ conclusion: run.conclusion,
270
+ url: run.html_url,
271
+ headBranch: run.head_branch ?? '',
272
+ headSha: run.head_sha,
273
+ createdAt: run.created_at,
274
+ updatedAt: run.updated_at,
275
+ }));
276
+ }
277
+ catch (error) {
278
+ logger.error('Failed to get workflow runs', {
279
+ module: 'GitHub',
280
+ error: error instanceof Error ? error.message : String(error),
281
+ });
282
+ return [];
283
+ }
284
+ }
285
+ /**
286
+ * Get full repository context (issues, PRs, branch info)
287
+ */
288
+ async getRepoContext() {
289
+ const repoInfo = await this.getRepoInfo();
290
+ const context = {
291
+ repoName: repoInfo.repo,
292
+ branch: repoInfo.branch,
293
+ commit: null,
294
+ remoteUrl: repoInfo.remoteUrl,
295
+ projects: [],
296
+ issues: [],
297
+ pullRequests: [],
298
+ workflowRuns: [],
299
+ };
300
+ // Get current commit
301
+ try {
302
+ const log = await this.git.log({ maxCount: 1 });
303
+ context.commit = log.latest?.hash ?? null;
304
+ }
305
+ catch {
306
+ // Ignore error
307
+ }
308
+ // Get issues, PRs, and workflow runs if we have owner/repo
309
+ if (repoInfo.owner && repoInfo.repo) {
310
+ context.issues = await this.getIssues(repoInfo.owner, repoInfo.repo, 'open', 10);
311
+ context.pullRequests = await this.getPullRequests(repoInfo.owner, repoInfo.repo, 'open', 10);
312
+ context.workflowRuns = await this.getWorkflowRuns(repoInfo.owner, repoInfo.repo, 10);
313
+ }
314
+ return context;
315
+ }
316
+ }
317
+ //# sourceMappingURL=GitHubIntegration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitHubIntegration.js","sourceRoot":"","sources":["../../src/github/GitHubIntegration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Memory Journal MCP Server - Prompt Handlers
3
+ *
4
+ * Exports all MCP prompts for workflow guidance.
5
+ */
6
+ import type { SqliteAdapter } from '../../database/SqliteAdapter.js';
7
+ /**
8
+ * Message format for MCP prompts
9
+ */
10
+ interface PromptMessage {
11
+ role: string;
12
+ content: {
13
+ type: string;
14
+ text: string;
15
+ };
16
+ }
17
+ /**
18
+ * Get all prompt definitions for MCP list
19
+ */
20
+ export declare function getPrompts(): object[];
21
+ /**
22
+ * Get a prompt by name
23
+ */
24
+ export declare function getPrompt(name: string, args: Record<string, string>, db: SqliteAdapter): {
25
+ messages: PromptMessage[];
26
+ };
27
+ export {};
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/handlers/prompts/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAErE;;GAEG;AACH,UAAU,aAAa;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC;CACL;AAkCD;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,EAAE,CAOrC;AAED;;GAEG;AACH,wBAAgB,SAAS,CACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,EAAE,EAAE,aAAa,GAClB;IAAE,QAAQ,EAAE,aAAa,EAAE,CAAA;CAAE,CAS/B"}