mcp-grampsweb 1.0.2 → 1.2.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 (55) hide show
  1. package/dist/client.d.ts.map +1 -1
  2. package/dist/client.js +4 -0
  3. package/dist/client.js.map +1 -1
  4. package/dist/constants.d.ts +7 -0
  5. package/dist/constants.d.ts.map +1 -1
  6. package/dist/constants.js +8 -0
  7. package/dist/constants.js.map +1 -1
  8. package/dist/index.js +28 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/prompts/index.d.ts +26 -0
  11. package/dist/prompts/index.d.ts.map +1 -0
  12. package/dist/prompts/index.js +310 -0
  13. package/dist/prompts/index.js.map +1 -0
  14. package/dist/schemas/common.d.ts +67 -4
  15. package/dist/schemas/common.d.ts.map +1 -1
  16. package/dist/schemas/common.js +13 -2
  17. package/dist/schemas/common.js.map +1 -1
  18. package/dist/schemas/entities.d.ts +154 -36
  19. package/dist/schemas/entities.d.ts.map +1 -1
  20. package/dist/tools/analysis.d.ts.map +1 -1
  21. package/dist/tools/analysis.js +134 -56
  22. package/dist/tools/analysis.js.map +1 -1
  23. package/dist/tools/convenience.d.ts +59 -0
  24. package/dist/tools/convenience.d.ts.map +1 -0
  25. package/dist/tools/convenience.js +131 -0
  26. package/dist/tools/convenience.js.map +1 -0
  27. package/dist/tools/create.d.ts +35 -0
  28. package/dist/tools/create.d.ts.map +1 -1
  29. package/dist/tools/create.js +216 -44
  30. package/dist/tools/create.js.map +1 -1
  31. package/dist/tools/index.d.ts +253 -1
  32. package/dist/tools/index.d.ts.map +1 -1
  33. package/dist/tools/index.js +7 -1
  34. package/dist/tools/index.js.map +1 -1
  35. package/dist/tools/list.d.ts +88 -0
  36. package/dist/tools/list.d.ts.map +1 -0
  37. package/dist/tools/list.js +222 -0
  38. package/dist/tools/list.js.map +1 -0
  39. package/dist/tools/search.d.ts.map +1 -1
  40. package/dist/tools/search.js +67 -24
  41. package/dist/tools/search.js.map +1 -1
  42. package/dist/tools/update.d.ts +662 -0
  43. package/dist/tools/update.d.ts.map +1 -0
  44. package/dist/tools/update.js +383 -0
  45. package/dist/tools/update.js.map +1 -0
  46. package/dist/types.d.ts +11 -0
  47. package/dist/types.d.ts.map +1 -1
  48. package/dist/utils/formatting.d.ts.map +1 -1
  49. package/dist/utils/formatting.js +23 -2
  50. package/dist/utils/formatting.js.map +1 -1
  51. package/dist/utils/response.d.ts +34 -0
  52. package/dist/utils/response.d.ts.map +1 -0
  53. package/dist/utils/response.js +71 -0
  54. package/dist/utils/response.js.map +1 -0
  55. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,cAAM,YAAY;IAChB,OAAO,CAAC,OAAO,CAAc;IAE7B;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQhC;;OAEG;IACG,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IA6F5E;;OAEG;YACW,mBAAmB;IAwBjC;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI1G;;OAEG;IACG,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAI3D;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAI1D;;OAEG;IACG,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAG9C;AAGD,eAAO,MAAM,YAAY,cAAqB,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,cAAM,YAAY;IAChB,OAAO,CAAC,OAAO,CAAc;IAE7B;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQhC;;OAEG;IACG,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAqG5E;;OAEG;YACW,mBAAmB;IAwBjC;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI1G;;OAEG;IACG,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAI3D;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAI1D;;OAEG;IACG,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAG9C;AAGD,eAAO,MAAM,YAAY,cAAqB,CAAC"}
package/dist/client.js CHANGED
@@ -78,6 +78,10 @@ class GrampsClient {
78
78
  // Handle empty responses
79
79
  const text = await response.text();
80
80
  if (!text) {
81
+ // For POST/PUT requests, empty response is unexpected - API should return created/updated entity
82
+ if (method === "POST" || method === "PUT") {
83
+ throw new GrampsAPIError(`${method} request returned empty response. Expected entity with handle.`, response.status, endpoint);
84
+ }
81
85
  return {};
82
86
  }
83
87
  return JSON.parse(text);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -21,4 +21,11 @@ export type APIEndpoint = (typeof API_ENDPOINTS)[keyof typeof API_ENDPOINTS];
21
21
  export declare const ENTITY_ENDPOINT_MAP: Record<string, string>;
22
22
  export declare const TOKEN_EXPIRY_BUFFER_MS: number;
23
23
  export declare const DEFAULT_TIMEOUT_MS: number;
24
+ export declare const MESSAGES: {
25
+ NO_RESULTS: (type: string, query: string) => string;
26
+ NOT_FOUND: (type: string, id: string) => string;
27
+ CREATED: (type: string, id: string, handle: string) => string;
28
+ EMPTY_TREE: string;
29
+ SEARCH_HINT: string;
30
+ };
24
31
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;CA0BhB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAG7E,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAkBtD,CAAC;AAGF,eAAO,MAAM,sBAAsB,QAAY,CAAC;AAGhD,eAAO,MAAM,kBAAkB,QAAY,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;CA0BhB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAG7E,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAkBtD,CAAC;AAGF,eAAO,MAAM,sBAAsB,QAAY,CAAC;AAGhD,eAAO,MAAM,kBAAkB,QAAY,CAAC;AAG5C,eAAO,MAAM,QAAQ;uBACA,MAAM,SAAS,MAAM;sBAGtB,MAAM,MAAM,MAAM;oBAGpB,MAAM,MAAM,MAAM,UAAU,MAAM;;;CAMnD,CAAC"}
package/dist/constants.js CHANGED
@@ -47,4 +47,12 @@ export const ENTITY_ENDPOINT_MAP = {
47
47
  export const TOKEN_EXPIRY_BUFFER_MS = 30 * 1000;
48
48
  // Default request timeout
49
49
  export const DEFAULT_TIMEOUT_MS = 30 * 1000;
50
+ // Standardized messages for consistent LLM feedback
51
+ export const MESSAGES = {
52
+ NO_RESULTS: (type, query) => `No ${type} found matching "${query}". Try broader search terms or check for typos.`,
53
+ NOT_FOUND: (type, id) => `${type} "${id}" not found. Verify the handle using gramps_find first.`,
54
+ CREATED: (type, id, handle) => `Created ${type} ${id}. Use handle "${handle}" for relationships.`,
55
+ EMPTY_TREE: "The family tree is empty. Use create tools to add records.",
56
+ SEARCH_HINT: "Use gramps_search with GQL for structured queries, or gramps_find for full-text search.",
57
+ };
50
58
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,iBAAiB;IACjB,KAAK,EAAE,SAAS;IAEhB,uDAAuD;IACvD,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,YAAY;IACtB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,WAAW;IACpB,SAAS,EAAE,aAAa;IACxB,YAAY,EAAE,gBAAgB;IAC9B,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAEhB,SAAS;IACT,MAAM,EAAE,UAAU;IAElB,WAAW;IACX,QAAQ,EAAE,YAAY;IAEtB,gCAAgC;IAChC,KAAK,EAAE,SAAS;IAEhB,iBAAiB;IACjB,MAAM,EAAE,UAAU;CACV,CAAC;AAIX,8BAA8B;AAC9B,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACzD,MAAM,EAAE,aAAa,CAAC,MAAM;IAC5B,MAAM,EAAE,aAAa,CAAC,MAAM;IAC5B,QAAQ,EAAE,aAAa,CAAC,QAAQ;IAChC,MAAM,EAAE,aAAa,CAAC,QAAQ;IAC9B,MAAM,EAAE,aAAa,CAAC,MAAM;IAC5B,KAAK,EAAE,aAAa,CAAC,MAAM;IAC3B,MAAM,EAAE,aAAa,CAAC,MAAM;IAC5B,KAAK,EAAE,aAAa,CAAC,MAAM;IAC3B,OAAO,EAAE,aAAa,CAAC,OAAO;IAC9B,MAAM,EAAE,aAAa,CAAC,OAAO;IAC7B,SAAS,EAAE,aAAa,CAAC,SAAS;IAClC,QAAQ,EAAE,aAAa,CAAC,SAAS;IACjC,YAAY,EAAE,aAAa,CAAC,YAAY;IACxC,UAAU,EAAE,aAAa,CAAC,YAAY;IACtC,KAAK,EAAE,aAAa,CAAC,KAAK;IAC1B,KAAK,EAAE,aAAa,CAAC,KAAK;IAC1B,IAAI,EAAE,aAAa,CAAC,KAAK;CAC1B,CAAC;AAEF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhD,0BAA0B;AAC1B,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,iBAAiB;IACjB,KAAK,EAAE,SAAS;IAEhB,uDAAuD;IACvD,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,YAAY;IACtB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,WAAW;IACpB,SAAS,EAAE,aAAa;IACxB,YAAY,EAAE,gBAAgB;IAC9B,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAEhB,SAAS;IACT,MAAM,EAAE,UAAU;IAElB,WAAW;IACX,QAAQ,EAAE,YAAY;IAEtB,gCAAgC;IAChC,KAAK,EAAE,SAAS;IAEhB,iBAAiB;IACjB,MAAM,EAAE,UAAU;CACV,CAAC;AAIX,8BAA8B;AAC9B,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACzD,MAAM,EAAE,aAAa,CAAC,MAAM;IAC5B,MAAM,EAAE,aAAa,CAAC,MAAM;IAC5B,QAAQ,EAAE,aAAa,CAAC,QAAQ;IAChC,MAAM,EAAE,aAAa,CAAC,QAAQ;IAC9B,MAAM,EAAE,aAAa,CAAC,MAAM;IAC5B,KAAK,EAAE,aAAa,CAAC,MAAM;IAC3B,MAAM,EAAE,aAAa,CAAC,MAAM;IAC5B,KAAK,EAAE,aAAa,CAAC,MAAM;IAC3B,OAAO,EAAE,aAAa,CAAC,OAAO;IAC9B,MAAM,EAAE,aAAa,CAAC,OAAO;IAC7B,SAAS,EAAE,aAAa,CAAC,SAAS;IAClC,QAAQ,EAAE,aAAa,CAAC,SAAS;IACjC,YAAY,EAAE,aAAa,CAAC,YAAY;IACxC,UAAU,EAAE,aAAa,CAAC,YAAY;IACtC,KAAK,EAAE,aAAa,CAAC,KAAK;IAC1B,KAAK,EAAE,aAAa,CAAC,KAAK;IAC1B,IAAI,EAAE,aAAa,CAAC,KAAK;CAC1B,CAAC;AAEF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhD,0BAA0B;AAC1B,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAC;AAE5C,oDAAoD;AACpD,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,UAAU,EAAE,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE,CAC1C,MAAM,IAAI,oBAAoB,KAAK,iDAAiD;IAEtF,SAAS,EAAE,CAAC,IAAY,EAAE,EAAU,EAAE,EAAE,CACtC,GAAG,IAAI,KAAK,EAAE,yDAAyD;IAEzE,OAAO,EAAE,CAAC,IAAY,EAAE,EAAU,EAAE,MAAc,EAAE,EAAE,CACpD,WAAW,IAAI,IAAI,EAAE,iBAAiB,MAAM,sBAAsB;IAEpE,UAAU,EAAE,4DAA4D;IAExE,WAAW,EAAE,yFAAyF;CACvG,CAAC"}
package/dist/index.js CHANGED
@@ -7,11 +7,12 @@
7
7
  */
8
8
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
9
9
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
10
- import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
10
+ import { CallToolRequestSchema, ListToolsRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
11
11
  import { loadConfig } from "./config.js";
12
12
  import { authManager } from "./auth.js";
13
13
  import { grampsClient } from "./client.js";
14
14
  import { allTools } from "./tools/index.js";
15
+ import { grampsPrompts } from "./prompts/index.js";
15
16
  import { formatErrorForMCP } from "./utils/errors.js";
16
17
  // Logger that writes to stderr (stdout is for MCP JSON-RPC)
17
18
  const log = {
@@ -54,6 +55,7 @@ async function main() {
54
55
  }, {
55
56
  capabilities: {
56
57
  tools: {},
58
+ prompts: {},
57
59
  },
58
60
  });
59
61
  // Register tool list handler
@@ -65,6 +67,31 @@ async function main() {
65
67
  }));
66
68
  return { tools };
67
69
  });
70
+ // Register prompts list handler
71
+ server.setRequestHandler(ListPromptsRequestSchema, async () => {
72
+ const prompts = Object.values(grampsPrompts).map((prompt) => ({
73
+ name: prompt.name,
74
+ description: prompt.description,
75
+ arguments: prompt.arguments,
76
+ }));
77
+ return { prompts };
78
+ });
79
+ // Register get prompt handler
80
+ server.setRequestHandler(GetPromptRequestSchema, async (request) => {
81
+ const promptName = request.params.name;
82
+ const prompt = grampsPrompts[promptName];
83
+ if (!prompt) {
84
+ throw new Error(`Unknown prompt: ${promptName}`);
85
+ }
86
+ const args = request.params.arguments;
87
+ const messages = prompt.getMessages(args);
88
+ return {
89
+ messages: messages.map((m) => ({
90
+ role: m.role,
91
+ content: { type: "text", text: m.content },
92
+ })),
93
+ };
94
+ });
68
95
  // Register tool call handler
69
96
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
70
97
  const { name, arguments: args } = request.params;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * MCP Prompts for guiding LLM workflows with Gramps genealogy tools
3
+ */
4
+ export interface PromptArgument {
5
+ name: string;
6
+ description: string;
7
+ required?: boolean;
8
+ }
9
+ export interface GrampsPrompt {
10
+ name: string;
11
+ description: string;
12
+ arguments?: PromptArgument[];
13
+ getMessages: (args?: Record<string, string>) => Array<{
14
+ role: "user" | "assistant";
15
+ content: string;
16
+ }>;
17
+ }
18
+ /**
19
+ * Export all prompts
20
+ */
21
+ export declare const grampsPrompts: Record<string, GrampsPrompt>;
22
+ /**
23
+ * Get prompt names for listing
24
+ */
25
+ export declare const promptNames: string[];
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxG;AA2SD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAMtD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,UAA6B,CAAC"}
@@ -0,0 +1,310 @@
1
+ /**
2
+ * MCP Prompts for guiding LLM workflows with Gramps genealogy tools
3
+ */
4
+ /**
5
+ * Research a person's lineage
6
+ */
7
+ const researchPerson = {
8
+ name: "research-person",
9
+ description: "Guide for finding and exploring a person's family lineage",
10
+ arguments: [
11
+ {
12
+ name: "name",
13
+ description: "Name of the person to research (e.g., 'John Smith')",
14
+ required: false,
15
+ },
16
+ ],
17
+ getMessages: (args) => {
18
+ const nameClause = args?.name ? ` for "${args.name}"` : "";
19
+ return [
20
+ {
21
+ role: "user",
22
+ content: `Help me research a person's genealogy${nameClause}.`,
23
+ },
24
+ {
25
+ role: "assistant",
26
+ content: `I'll help you research${nameClause ? ` ${args?.name}'s` : " a person's"} genealogy. Here's the recommended workflow:
27
+
28
+ ## Step 1: Find the Person
29
+ ${args?.name ? `Search for "${args.name}" using:` : "First, search for the person:"}
30
+ - \`gramps_find\` - Full-text search if you only know the name
31
+ - \`gramps_search\` with entity_type="people" - For structured GQL queries like \`primary_name.first_name ~ ${args?.name?.split(" ")[0] || "John"}\`
32
+
33
+ ## Step 2: Get Full Details
34
+ Once you have the person's handle from search results:
35
+ - \`gramps_get\` with entity_type="people" and the handle
36
+
37
+ ## Step 3: Explore Lineage
38
+ With the person's handle:
39
+ - \`gramps_get_ancestors\` - View parents, grandparents (up to 10 generations)
40
+ - \`gramps_get_descendants\` - View children, grandchildren
41
+
42
+ ## Step 4: Examine Related Records
43
+ Check linked entities:
44
+ - Events: Birth, death, marriage dates from event_ref_list
45
+ - Families: Spouse and children from family_list
46
+ - Sources: Documentation from citation_list
47
+
48
+ What would you like to do first?`,
49
+ },
50
+ ];
51
+ },
52
+ };
53
+ /**
54
+ * Add a new family member
55
+ */
56
+ const addFamilyMember = {
57
+ name: "add-family-member",
58
+ description: "Workflow for creating a person and linking them to an existing family",
59
+ arguments: [
60
+ {
61
+ name: "relationship",
62
+ description: "Relationship type: parent, child, or spouse",
63
+ required: false,
64
+ },
65
+ ],
66
+ getMessages: (args) => {
67
+ const rel = args?.relationship?.toLowerCase() || "family member";
68
+ return [
69
+ {
70
+ role: "user",
71
+ content: `Help me add a new ${rel} to my family tree.`,
72
+ },
73
+ {
74
+ role: "assistant",
75
+ content: `I'll help you add a new ${rel}. Here's the workflow:
76
+
77
+ ## Step 1: Create the Person
78
+ Use \`gramps_create_person\` with:
79
+ \`\`\`json
80
+ {
81
+ "primary_name": {
82
+ "first_name": "...",
83
+ "surname": "..."
84
+ },
85
+ "gender": "male" | "female" | "unknown"
86
+ }
87
+ \`\`\`
88
+ Save the returned **handle** - you'll need it for family links.
89
+
90
+ ## Step 2: Find or Create the Family
91
+ ${rel === "child" ? `Find the parents' family using \`gramps_search\` with entity_type="families", or create one with \`gramps_create_family\`.` : ""}
92
+ ${rel === "parent" ? `Find the child's parent family using their parent_family_list, or create a new family with \`gramps_create_family\`.` : ""}
93
+ ${rel === "spouse" ? `Create a new family with \`gramps_create_family\` using both person handles.` : ""}
94
+ ${!["child", "parent", "spouse"].includes(rel) ? `Use \`gramps_search\` to find existing families, or create one with \`gramps_create_family\`.` : ""}
95
+
96
+ ## Step 3: Link to Family
97
+ Use \`gramps_create_family\` with appropriate handles:
98
+ - \`father_handle\`: Father's person handle
99
+ - \`mother_handle\`: Mother's person handle
100
+ - \`child_ref_list\`: Array of \`{ "ref": "child_handle" }\`
101
+
102
+ ## Step 4: Add Life Events (Optional)
103
+ Create events with \`gramps_create_event\`:
104
+ - Birth: \`{ "type": "Birth", "date": { "dateval": [day, month, year] } }\`
105
+ - Death, Marriage, Baptism, etc.
106
+
107
+ Do you have the person's information ready?`,
108
+ },
109
+ ];
110
+ },
111
+ };
112
+ /**
113
+ * Get tree overview
114
+ */
115
+ const treeOverview = {
116
+ name: "tree-overview",
117
+ description: "Get database statistics and recent activity summary",
118
+ getMessages: () => [
119
+ {
120
+ role: "user",
121
+ content: "Give me an overview of my family tree database.",
122
+ },
123
+ {
124
+ role: "assistant",
125
+ content: `I'll get you a comprehensive overview of your family tree. Let me run these analyses:
126
+
127
+ ## Getting Tree Statistics
128
+ I'll use \`gramps_tree_stats\` to get counts of:
129
+ - People, Families, Events
130
+ - Places, Sources, Citations
131
+ - Media, Notes, Repositories
132
+
133
+ ## Checking Recent Activity
134
+ I'll use \`gramps_recent_changes\` to see what's been modified lately.
135
+
136
+ ## Next Steps After Overview
137
+ Based on what we find:
138
+ - **If tree is empty**: We'll start adding people with \`gramps_create_person\`
139
+ - **If tree has data**: We can search with \`gramps_find\` or explore lineages
140
+
141
+ Let me fetch the statistics now.`,
142
+ },
143
+ ],
144
+ };
145
+ /**
146
+ * GQL query syntax help
147
+ */
148
+ const gqlQueryHelp = {
149
+ name: "gql-query-help",
150
+ description: "Reference guide for Gramps Query Language (GQL) syntax",
151
+ getMessages: () => [
152
+ {
153
+ role: "user",
154
+ content: "How do I write GQL queries for Gramps search?",
155
+ },
156
+ {
157
+ role: "assistant",
158
+ content: `# Gramps Query Language (GQL) Reference
159
+
160
+ GQL is used with the \`gramps_search\` tool for structured queries.
161
+
162
+ ## Basic Syntax
163
+ \`\`\`
164
+ property = value # Exact match
165
+ property ~ value # Contains (partial match)
166
+ property > value # Greater than
167
+ property < value # Less than
168
+ \`\`\`
169
+
170
+ ## Logical Operators
171
+ \`\`\`
172
+ query1 and query2 # Both conditions (lowercase!)
173
+ query1 or query2 # Either condition
174
+ \`\`\`
175
+
176
+ ## Common Person Queries
177
+ \`\`\`
178
+ primary_name.surname_list[0].surname ~ Smith # Surname contains Smith
179
+ primary_name.first_name = John # First name is John
180
+ gender = 1 # Males (0=female, 1=male, 2=unknown)
181
+ gender = 0 # Females
182
+ media_list.length > 0 # Has media attached
183
+ \`\`\`
184
+
185
+ ## Common Event Queries
186
+ \`\`\`
187
+ type.string = Birth # Birth events
188
+ type.string = Marriage # Marriage events
189
+ date.dateval[2] > 1900 # Year after 1900 (dateval = [day, month, year])
190
+ \`\`\`
191
+
192
+ ## Common Place Queries
193
+ \`\`\`
194
+ name.value ~ London # Name contains "London"
195
+ place_type.string = City # Cities only
196
+ \`\`\`
197
+
198
+ ## Example Usage
199
+ \`\`\`json
200
+ {
201
+ "query": "gender = 1 and primary_name.first_name ~ John",
202
+ "entity_type": "people",
203
+ "pagesize": 20
204
+ }
205
+ \`\`\`
206
+
207
+ Would you like help constructing a specific query?`,
208
+ },
209
+ ],
210
+ };
211
+ /**
212
+ * Link family relationships
213
+ */
214
+ const linkFamily = {
215
+ name: "link-family",
216
+ description: "Create family relationships between existing people",
217
+ arguments: [
218
+ {
219
+ name: "relationship_type",
220
+ description: "Type: marriage, parent-child, or siblings",
221
+ required: false,
222
+ },
223
+ ],
224
+ getMessages: (args) => {
225
+ const relType = args?.relationship_type?.toLowerCase() || "family";
226
+ return [
227
+ {
228
+ role: "user",
229
+ content: `Help me link ${relType} relationships between people.`,
230
+ },
231
+ {
232
+ role: "assistant",
233
+ content: `I'll help you create ${relType} relationships.
234
+
235
+ ## Prerequisites
236
+ You need the **handles** of the people you want to link. If you don't have them:
237
+ 1. Use \`gramps_find\` to search by name
238
+ 2. Note the handle from each search result
239
+
240
+ ## Creating the Family Link
241
+
242
+ ${relType === "marriage" || relType === "spouse" ? `### Marriage/Spouse Relationship
243
+ Use \`gramps_create_family\`:
244
+ \`\`\`json
245
+ {
246
+ "father_handle": "husband_handle_here",
247
+ "mother_handle": "wife_handle_here",
248
+ "type": "Married"
249
+ }
250
+ \`\`\`
251
+ Then add a Marriage event with \`gramps_create_event\`.` : ""}
252
+
253
+ ${relType === "parent-child" || relType === "child" ? `### Parent-Child Relationship
254
+ Use \`gramps_create_family\`:
255
+ \`\`\`json
256
+ {
257
+ "father_handle": "father_handle_here",
258
+ "mother_handle": "mother_handle_here",
259
+ "child_ref_list": [
260
+ { "ref": "child_handle_here" }
261
+ ]
262
+ }
263
+ \`\`\`` : ""}
264
+
265
+ ${relType === "siblings" ? `### Sibling Relationship
266
+ Siblings share the same parent family. Use \`gramps_create_family\`:
267
+ \`\`\`json
268
+ {
269
+ "father_handle": "shared_father_handle",
270
+ "mother_handle": "shared_mother_handle",
271
+ "child_ref_list": [
272
+ { "ref": "sibling1_handle" },
273
+ { "ref": "sibling2_handle" }
274
+ ]
275
+ }
276
+ \`\`\`` : ""}
277
+
278
+ ${!["marriage", "spouse", "parent-child", "child", "siblings"].includes(relType) ? `### General Family Creation
279
+ Use \`gramps_create_family\` with appropriate handles:
280
+ - \`father_handle\`: Father's person handle
281
+ - \`mother_handle\`: Mother's person handle
282
+ - \`child_ref_list\`: Array of \`{ "ref": "child_handle" }\`
283
+ - \`type\`: Relationship type (Married, Unknown, etc.)` : ""}
284
+
285
+ ## After Creating the Family
286
+ The family handle can be used to:
287
+ - Add more children later
288
+ - Attach marriage events
289
+ - Link to sources/citations
290
+
291
+ Do you have the person handles ready, or should we search for them first?`,
292
+ },
293
+ ];
294
+ },
295
+ };
296
+ /**
297
+ * Export all prompts
298
+ */
299
+ export const grampsPrompts = {
300
+ "research-person": researchPerson,
301
+ "add-family-member": addFamilyMember,
302
+ "tree-overview": treeOverview,
303
+ "gql-query-help": gqlQueryHelp,
304
+ "link-family": linkFamily,
305
+ };
306
+ /**
307
+ * Get prompt names for listing
308
+ */
309
+ export const promptNames = Object.keys(grampsPrompts);
310
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
@@ -32,10 +32,55 @@ export declare const dateSchema: z.ZodOptional<z.ZodObject<{
32
32
  sortval?: number | undefined;
33
33
  newyear?: number | undefined;
34
34
  }>>;
35
+ export declare const surnameSchema: z.ZodObject<{
36
+ _class: z.ZodOptional<z.ZodLiteral<"Surname">>;
37
+ surname: z.ZodString;
38
+ prefix: z.ZodOptional<z.ZodString>;
39
+ primary: z.ZodOptional<z.ZodBoolean>;
40
+ origintype: z.ZodOptional<z.ZodString>;
41
+ connector: z.ZodOptional<z.ZodString>;
42
+ }, "strip", z.ZodTypeAny, {
43
+ surname: string;
44
+ _class?: "Surname" | undefined;
45
+ prefix?: string | undefined;
46
+ primary?: boolean | undefined;
47
+ origintype?: string | undefined;
48
+ connector?: string | undefined;
49
+ }, {
50
+ surname: string;
51
+ _class?: "Surname" | undefined;
52
+ prefix?: string | undefined;
53
+ primary?: boolean | undefined;
54
+ origintype?: string | undefined;
55
+ connector?: string | undefined;
56
+ }>;
35
57
  export declare const personNameSchema: z.ZodObject<{
36
58
  _class: z.ZodOptional<z.ZodLiteral<"Name">>;
37
59
  first_name: z.ZodOptional<z.ZodString>;
60
+ call_name: z.ZodOptional<z.ZodString>;
38
61
  surname: z.ZodOptional<z.ZodString>;
62
+ surname_list: z.ZodOptional<z.ZodArray<z.ZodObject<{
63
+ _class: z.ZodOptional<z.ZodLiteral<"Surname">>;
64
+ surname: z.ZodString;
65
+ prefix: z.ZodOptional<z.ZodString>;
66
+ primary: z.ZodOptional<z.ZodBoolean>;
67
+ origintype: z.ZodOptional<z.ZodString>;
68
+ connector: z.ZodOptional<z.ZodString>;
69
+ }, "strip", z.ZodTypeAny, {
70
+ surname: string;
71
+ _class?: "Surname" | undefined;
72
+ prefix?: string | undefined;
73
+ primary?: boolean | undefined;
74
+ origintype?: string | undefined;
75
+ connector?: string | undefined;
76
+ }, {
77
+ surname: string;
78
+ _class?: "Surname" | undefined;
79
+ prefix?: string | undefined;
80
+ primary?: boolean | undefined;
81
+ origintype?: string | undefined;
82
+ connector?: string | undefined;
83
+ }>, "many">>;
39
84
  suffix: z.ZodOptional<z.ZodString>;
40
85
  title: z.ZodOptional<z.ZodString>;
41
86
  type: z.ZodOptional<z.ZodString>;
@@ -43,19 +88,37 @@ export declare const personNameSchema: z.ZodObject<{
43
88
  }, "strip", z.ZodTypeAny, {
44
89
  _class?: "Name" | undefined;
45
90
  type?: string | undefined;
46
- first_name?: string | undefined;
47
91
  surname?: string | undefined;
92
+ primary?: boolean | undefined;
93
+ first_name?: string | undefined;
94
+ call_name?: string | undefined;
95
+ surname_list?: {
96
+ surname: string;
97
+ _class?: "Surname" | undefined;
98
+ prefix?: string | undefined;
99
+ primary?: boolean | undefined;
100
+ origintype?: string | undefined;
101
+ connector?: string | undefined;
102
+ }[] | undefined;
48
103
  suffix?: string | undefined;
49
104
  title?: string | undefined;
50
- primary?: boolean | undefined;
51
105
  }, {
52
106
  _class?: "Name" | undefined;
53
107
  type?: string | undefined;
54
- first_name?: string | undefined;
55
108
  surname?: string | undefined;
109
+ primary?: boolean | undefined;
110
+ first_name?: string | undefined;
111
+ call_name?: string | undefined;
112
+ surname_list?: {
113
+ surname: string;
114
+ _class?: "Surname" | undefined;
115
+ prefix?: string | undefined;
116
+ primary?: boolean | undefined;
117
+ origintype?: string | undefined;
118
+ connector?: string | undefined;
119
+ }[] | undefined;
56
120
  suffix?: string | undefined;
57
121
  title?: string | undefined;
58
- primary?: boolean | undefined;
59
122
  }>;
60
123
  export declare const eventRefSchema: z.ZodObject<{
61
124
  _class: z.ZodOptional<z.ZodLiteral<"EventRef">>;
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/schemas/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,gBAAgB,iHAU3B,CAAC;AAGH,eAAO,MAAM,gBAAgB,aAA2D,CAAC;AAGzF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;GASV,CAAC;AAGd,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;EAQ3B,CAAC;AAGH,eAAO,MAAM,cAAc;;;;;;;;;;;;EAIzB,CAAC;AAGH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;EAKzB,CAAC;AAGH,eAAO,MAAM,cAAc;;;;;;;;;;;;EAIzB,CAAC;AAGH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIzB,CAAC;AAGH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;EAKxB,CAAC;AAGH,eAAO,MAAM,eAAe;;;;;;;;;;;;EAI1B,CAAC;AAGH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;EAKpB,CAAC;AAGH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUxB,CAAC;AAGH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK1B,CAAC;AAGH,eAAO,MAAM,YAAY,kGASvB,CAAC;AAGH,eAAO,MAAM,gBAAgB;;;;;;;;;EAG3B,CAAC"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/schemas/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,gBAAgB,iHAU3B,CAAC;AAGH,eAAO,MAAM,gBAAgB,aAA2D,CAAC;AAGzF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;GASV,CAAC;AAGd,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;EAOxB,CAAC;AAGH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU3B,CAAC;AAGH,eAAO,MAAM,cAAc;;;;;;;;;;;;EAIzB,CAAC;AAGH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;EAKzB,CAAC;AAGH,eAAO,MAAM,cAAc;;;;;;;;;;;;EAIzB,CAAC;AAGH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIzB,CAAC;AAGH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;EAKxB,CAAC;AAGH,eAAO,MAAM,eAAe;;;;;;;;;;;;EAI1B,CAAC;AAGH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;EAKpB,CAAC;AAGH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUxB,CAAC;AAGH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK1B,CAAC;AAGH,eAAO,MAAM,YAAY,kGASvB,CAAC;AAGH,eAAO,MAAM,gBAAgB;;;;;;;;;EAG3B,CAAC"}
@@ -27,14 +27,25 @@ export const dateSchema = z.object({
27
27
  sortval: z.number().optional(),
28
28
  newyear: z.number().optional(),
29
29
  }).optional();
30
+ // Surname schema for surname_list
31
+ export const surnameSchema = z.object({
32
+ _class: z.literal("Surname").optional(),
33
+ surname: z.string(),
34
+ prefix: z.string().optional(),
35
+ primary: z.boolean().optional(),
36
+ origintype: z.string().optional().describe("Origin type: Inherited, Married, Taken, Given, etc."),
37
+ connector: z.string().optional(),
38
+ });
30
39
  // Person name schema
31
40
  export const personNameSchema = z.object({
32
41
  _class: z.literal("Name").optional(),
33
42
  first_name: z.string().optional(),
34
- surname: z.string().optional(),
43
+ call_name: z.string().optional().describe("Nickname or call name"),
44
+ surname: z.string().optional().describe("Simple surname (use surname_list for multiple)"),
45
+ surname_list: z.array(surnameSchema).optional().describe("List of surnames with origin types"),
35
46
  suffix: z.string().optional(),
36
47
  title: z.string().optional(),
37
- type: z.string().optional(),
48
+ type: z.string().optional().describe("Name type: Birth Name, Married Name, Also Known As, etc."),
38
49
  primary: z.boolean().optional(),
39
50
  });
40
51
  // Event reference schema