mcp-grampsweb 1.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 (67) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +133 -0
  3. package/dist/auth.d.ts +37 -0
  4. package/dist/auth.d.ts.map +1 -0
  5. package/dist/auth.js +119 -0
  6. package/dist/auth.js.map +1 -0
  7. package/dist/client.d.ts +44 -0
  8. package/dist/client.d.ts.map +1 -0
  9. package/dist/client.js +153 -0
  10. package/dist/client.js.map +1 -0
  11. package/dist/config.d.ts +11 -0
  12. package/dist/config.d.ts.map +1 -0
  13. package/dist/config.js +32 -0
  14. package/dist/config.js.map +1 -0
  15. package/dist/constants.d.ts +24 -0
  16. package/dist/constants.d.ts.map +1 -0
  17. package/dist/constants.js +50 -0
  18. package/dist/constants.js.map +1 -0
  19. package/dist/index.d.ts +9 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +132 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/schemas/common.d.ts +308 -0
  24. package/dist/schemas/common.d.ts.map +1 -0
  25. package/dist/schemas/common.js +120 -0
  26. package/dist/schemas/common.js.map +1 -0
  27. package/dist/schemas/entities.d.ts +1165 -0
  28. package/dist/schemas/entities.d.ts.map +1 -0
  29. package/dist/schemas/entities.js +125 -0
  30. package/dist/schemas/entities.js.map +1 -0
  31. package/dist/schemas/index.d.ts +7 -0
  32. package/dist/schemas/index.d.ts.map +1 -0
  33. package/dist/schemas/index.js +7 -0
  34. package/dist/schemas/index.js.map +1 -0
  35. package/dist/schemas/search.d.ts +47 -0
  36. package/dist/schemas/search.d.ts.map +1 -0
  37. package/dist/schemas/search.js +24 -0
  38. package/dist/schemas/search.js.map +1 -0
  39. package/dist/tools/analysis.d.ts +115 -0
  40. package/dist/tools/analysis.d.ts.map +1 -0
  41. package/dist/tools/analysis.js +387 -0
  42. package/dist/tools/analysis.js.map +1 -0
  43. package/dist/tools/create.d.ts +355 -0
  44. package/dist/tools/create.d.ts.map +1 -0
  45. package/dist/tools/create.js +547 -0
  46. package/dist/tools/create.js.map +1 -0
  47. package/dist/tools/index.d.ts +468 -0
  48. package/dist/tools/index.d.ts.map +1 -0
  49. package/dist/tools/index.js +17 -0
  50. package/dist/tools/index.js.map +1 -0
  51. package/dist/tools/search.d.ts +95 -0
  52. package/dist/tools/search.d.ts.map +1 -0
  53. package/dist/tools/search.js +161 -0
  54. package/dist/tools/search.js.map +1 -0
  55. package/dist/types.d.ts +210 -0
  56. package/dist/types.d.ts.map +1 -0
  57. package/dist/types.js +5 -0
  58. package/dist/types.js.map +1 -0
  59. package/dist/utils/errors.d.ts +19 -0
  60. package/dist/utils/errors.d.ts.map +1 -0
  61. package/dist/utils/errors.js +48 -0
  62. package/dist/utils/errors.js.map +1 -0
  63. package/dist/utils/formatting.d.ts +60 -0
  64. package/dist/utils/formatting.d.ts.map +1 -0
  65. package/dist/utils/formatting.js +256 -0
  66. package/dist/utils/formatting.js.map +1 -0
  67. package/package.json +48 -0
@@ -0,0 +1,256 @@
1
+ /**
2
+ * Response formatting utilities
3
+ */
4
+ /**
5
+ * Format a person name for display
6
+ */
7
+ export function formatPersonName(name) {
8
+ if (!name)
9
+ return "Unknown";
10
+ const parts = [];
11
+ if (name.title)
12
+ parts.push(name.title);
13
+ if (name.first_name)
14
+ parts.push(name.first_name);
15
+ if (name.surname)
16
+ parts.push(name.surname);
17
+ if (name.suffix)
18
+ parts.push(name.suffix);
19
+ return parts.length > 0 ? parts.join(" ") : "Unknown";
20
+ }
21
+ /**
22
+ * Format a date object for display
23
+ */
24
+ export function formatDate(date) {
25
+ if (!date)
26
+ return "";
27
+ if (date.text)
28
+ return date.text;
29
+ if (date.dateval && date.dateval.length >= 3) {
30
+ const [day, month, year] = date.dateval;
31
+ const parts = [];
32
+ if (year)
33
+ parts.push(String(year));
34
+ if (month)
35
+ parts.unshift(String(month).padStart(2, "0"));
36
+ if (day)
37
+ parts.unshift(String(day).padStart(2, "0"));
38
+ return parts.join("-");
39
+ }
40
+ return "";
41
+ }
42
+ /**
43
+ * Format a person entity for display
44
+ */
45
+ export function formatPerson(person) {
46
+ const lines = [];
47
+ lines.push(`Person: ${formatPersonName(person.primary_name)}`);
48
+ lines.push(` Handle: ${person.handle}`);
49
+ lines.push(` Gramps ID: ${person.gramps_id}`);
50
+ if (person.gender !== undefined) {
51
+ const genderMap = {
52
+ 0: "Female",
53
+ 1: "Male",
54
+ 2: "Unknown",
55
+ };
56
+ lines.push(` Gender: ${genderMap[person.gender] || "Unknown"}`);
57
+ }
58
+ if (person.alternate_names && person.alternate_names.length > 0) {
59
+ lines.push(` Alternate names: ${person.alternate_names.map(formatPersonName).join(", ")}`);
60
+ }
61
+ return lines.join("\n");
62
+ }
63
+ /**
64
+ * Format a family entity for display
65
+ */
66
+ export function formatFamily(family) {
67
+ const lines = [];
68
+ lines.push(`Family: ${family.gramps_id}`);
69
+ lines.push(` Handle: ${family.handle}`);
70
+ if (family.father_handle) {
71
+ lines.push(` Father handle: ${family.father_handle}`);
72
+ }
73
+ if (family.mother_handle) {
74
+ lines.push(` Mother handle: ${family.mother_handle}`);
75
+ }
76
+ if (family.child_ref_list && family.child_ref_list.length > 0) {
77
+ lines.push(` Children: ${family.child_ref_list.length}`);
78
+ }
79
+ if (family.type) {
80
+ lines.push(` Type: ${family.type}`);
81
+ }
82
+ return lines.join("\n");
83
+ }
84
+ /**
85
+ * Format an event entity for display
86
+ */
87
+ export function formatEvent(event) {
88
+ const lines = [];
89
+ lines.push(`Event: ${event.type || "Unknown type"}`);
90
+ lines.push(` Handle: ${event.handle}`);
91
+ lines.push(` Gramps ID: ${event.gramps_id}`);
92
+ const dateStr = formatDate(event.date);
93
+ if (dateStr) {
94
+ lines.push(` Date: ${dateStr}`);
95
+ }
96
+ if (event.place) {
97
+ lines.push(` Place handle: ${event.place}`);
98
+ }
99
+ if (event.description) {
100
+ lines.push(` Description: ${event.description}`);
101
+ }
102
+ return lines.join("\n");
103
+ }
104
+ /**
105
+ * Format a place entity for display
106
+ */
107
+ export function formatPlace(place) {
108
+ const lines = [];
109
+ const name = place.name?.value || place.title || "Unknown";
110
+ lines.push(`Place: ${name}`);
111
+ lines.push(` Handle: ${place.handle}`);
112
+ lines.push(` Gramps ID: ${place.gramps_id}`);
113
+ if (place.place_type) {
114
+ lines.push(` Type: ${place.place_type}`);
115
+ }
116
+ if (place.lat && place.long) {
117
+ lines.push(` Coordinates: ${place.lat}, ${place.long}`);
118
+ }
119
+ return lines.join("\n");
120
+ }
121
+ /**
122
+ * Format a source entity for display
123
+ */
124
+ export function formatSource(source) {
125
+ const lines = [];
126
+ lines.push(`Source: ${source.title || "Untitled"}`);
127
+ lines.push(` Handle: ${source.handle}`);
128
+ lines.push(` Gramps ID: ${source.gramps_id}`);
129
+ if (source.author) {
130
+ lines.push(` Author: ${source.author}`);
131
+ }
132
+ if (source.pubinfo) {
133
+ lines.push(` Publication: ${source.pubinfo}`);
134
+ }
135
+ return lines.join("\n");
136
+ }
137
+ /**
138
+ * Format a citation entity for display
139
+ */
140
+ export function formatCitation(citation) {
141
+ const lines = [];
142
+ lines.push(`Citation: ${citation.gramps_id}`);
143
+ lines.push(` Handle: ${citation.handle}`);
144
+ if (citation.source_handle) {
145
+ lines.push(` Source handle: ${citation.source_handle}`);
146
+ }
147
+ if (citation.page) {
148
+ lines.push(` Page: ${citation.page}`);
149
+ }
150
+ if (citation.confidence !== undefined) {
151
+ const confidenceMap = {
152
+ 0: "Very Low",
153
+ 1: "Low",
154
+ 2: "Normal",
155
+ 3: "High",
156
+ 4: "Very High",
157
+ };
158
+ lines.push(` Confidence: ${confidenceMap[citation.confidence] || "Unknown"}`);
159
+ }
160
+ return lines.join("\n");
161
+ }
162
+ /**
163
+ * Format a note entity for display
164
+ */
165
+ export function formatNote(note) {
166
+ const lines = [];
167
+ lines.push(`Note: ${note.gramps_id}`);
168
+ lines.push(` Handle: ${note.handle}`);
169
+ if (note.type) {
170
+ lines.push(` Type: ${note.type}`);
171
+ }
172
+ if (note.text) {
173
+ const preview = note.text.length > 100 ? note.text.substring(0, 100) + "..." : note.text;
174
+ lines.push(` Text: ${preview}`);
175
+ }
176
+ return lines.join("\n");
177
+ }
178
+ /**
179
+ * Format a media entity for display
180
+ */
181
+ export function formatMedia(media) {
182
+ const lines = [];
183
+ lines.push(`Media: ${media.desc || media.path || "Untitled"}`);
184
+ lines.push(` Handle: ${media.handle}`);
185
+ lines.push(` Gramps ID: ${media.gramps_id}`);
186
+ if (media.mime) {
187
+ lines.push(` Type: ${media.mime}`);
188
+ }
189
+ if (media.path) {
190
+ lines.push(` Path: ${media.path}`);
191
+ }
192
+ return lines.join("\n");
193
+ }
194
+ /**
195
+ * Format a repository entity for display
196
+ */
197
+ export function formatRepository(repo) {
198
+ const lines = [];
199
+ lines.push(`Repository: ${repo.name || "Unnamed"}`);
200
+ lines.push(` Handle: ${repo.handle}`);
201
+ lines.push(` Gramps ID: ${repo.gramps_id}`);
202
+ if (repo.type) {
203
+ lines.push(` Type: ${repo.type}`);
204
+ }
205
+ return lines.join("\n");
206
+ }
207
+ /**
208
+ * Format any entity based on its type
209
+ */
210
+ export function formatEntity(entity, type) {
211
+ switch (type.toLowerCase()) {
212
+ case "person":
213
+ case "people":
214
+ return formatPerson(entity);
215
+ case "family":
216
+ case "families":
217
+ return formatFamily(entity);
218
+ case "event":
219
+ case "events":
220
+ return formatEvent(entity);
221
+ case "place":
222
+ case "places":
223
+ return formatPlace(entity);
224
+ case "source":
225
+ case "sources":
226
+ return formatSource(entity);
227
+ case "citation":
228
+ case "citations":
229
+ return formatCitation(entity);
230
+ case "note":
231
+ case "notes":
232
+ return formatNote(entity);
233
+ case "media":
234
+ return formatMedia(entity);
235
+ case "repository":
236
+ case "repositories":
237
+ return formatRepository(entity);
238
+ default:
239
+ return JSON.stringify(entity, null, 2);
240
+ }
241
+ }
242
+ /**
243
+ * Format search results for display
244
+ */
245
+ export function formatSearchResults(results) {
246
+ if (results.length === 0) {
247
+ return "No results found.";
248
+ }
249
+ const lines = [`Found ${results.length} result(s):`, ""];
250
+ for (const result of results) {
251
+ lines.push(formatEntity(result.object, result.object_type));
252
+ lines.push("");
253
+ }
254
+ return lines.join("\n");
255
+ }
256
+ //# sourceMappingURL=formatting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatting.js","sourceRoot":"","sources":["../../src/utils/formatting.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "mcp-grampsweb",
3
+ "version": "1.0.0",
4
+ "description": "MCP server for Gramps Web genealogy API",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "bin": {
8
+ "mcp-grampsweb": "./dist/index.js"
9
+ },
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "engines": {
14
+ "node": ">=18"
15
+ },
16
+ "scripts": {
17
+ "build": "tsc",
18
+ "dev": "tsc --watch",
19
+ "start": "node dist/index.js",
20
+ "test": "vitest run",
21
+ "test:watch": "vitest",
22
+ "prepublishOnly": "npm run build"
23
+ },
24
+ "keywords": [
25
+ "mcp",
26
+ "gramps",
27
+ "grampsweb",
28
+ "genealogy",
29
+ "family-tree",
30
+ "anthropic",
31
+ "claude"
32
+ ],
33
+ "author": "",
34
+ "license": "MIT",
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "https://github.com/nikkoxgonzales/mcp-grampsweb.git"
38
+ },
39
+ "dependencies": {
40
+ "@modelcontextprotocol/sdk": "^1.6.1",
41
+ "zod": "^3.23.8"
42
+ },
43
+ "devDependencies": {
44
+ "@types/node": "^22.10.0",
45
+ "typescript": "^5.7.2",
46
+ "vitest": "^2.0.0"
47
+ }
48
+ }