@pairsystems/goodmem-mcp 0.1.12 → 0.1.13

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 (2) hide show
  1. package/dist/index.js +11 -11
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -21927,7 +21927,7 @@ function autoInferFromRegistry(registryType, args) {
21927
21927
  }
21928
21928
  var server = new McpServer({
21929
21929
  name: "goodmem",
21930
- version: "0.1.12"
21930
+ version: "0.1.13"
21931
21931
  });
21932
21932
  server.tool("goodmem_configure", "Configure GoodMem server connection. Call this before using other GoodMem tools if GOODMEM_BASE_URL and GOODMEM_API_KEY environment variables are not set. Session credentials override environment variables.", {
21933
21933
  base_url: external_exports.string().describe("GoodMem server URL (e.g., https://your-server.example.com)"),
@@ -21994,7 +21994,7 @@ ${allModels.join("\n")}` }] };
21994
21994
  });
21995
21995
  server.tool("goodmem_client_info", "Return the MCP client package version and the goodmem server commit it was built against. No server connection required.", {}, async () => {
21996
21996
  return { content: [{ type: "text", text: JSON.stringify({
21997
- mcpVersion: "0.1.12",
21997
+ mcpVersion: "0.1.13",
21998
21998
  basedOnGoodmemCommit: BASED_ON_GOODMEM_COMMIT
21999
21999
  }, null, 2) }] };
22000
22000
  });
@@ -22104,7 +22104,7 @@ function registerTools() {
22104
22104
  quotaProjectId: external_exports.string().describe("Optional quota project used for billing").optional()
22105
22105
  }).passthrough().describe("Configuration when kind is CREDENTIAL_KIND_GCP_ADC").optional(),
22106
22106
  labels: external_exports.any().describe('Optional annotations to aid operators (e.g., "owner=vertex")').optional()
22107
- }).passthrough().describe("Structured credential payload describing how to authenticate with the provider. Required for SaaS providers such as COHERE, JINA, and VOYAGE; optional for local or proxy providers.").optional(),
22107
+ }).passthrough().describe("Structured credential payload describing how to authenticate with the provider. Required for SaaS providers; optional for local or proxy providers.").optional(),
22108
22108
  labels: external_exports.record(external_exports.string(), external_exports.string()).describe("User-defined labels for categorization").optional(),
22109
22109
  version: external_exports.string().describe("Version information").optional(),
22110
22110
  monitoring_endpoint: external_exports.string().describe("Monitoring endpoint URL").optional(),
@@ -22267,7 +22267,7 @@ function registerTools() {
22267
22267
  quotaProjectId: external_exports.string().describe("Optional quota project used for billing").optional()
22268
22268
  }).passthrough().describe("Configuration when kind is CREDENTIAL_KIND_GCP_ADC").optional(),
22269
22269
  labels: external_exports.any().describe('Optional annotations to aid operators (e.g., "owner=vertex")').optional()
22270
- }).passthrough().describe("Structured credential payload describing how to authenticate with the provider. Omit for deployments that do not require credentials.").optional(),
22270
+ }).passthrough().describe("Structured credential payload describing how to authenticate with the provider. Required for SaaS providers; optional for local or proxy providers.").optional(),
22271
22271
  labels: external_exports.record(external_exports.string(), external_exports.string()).describe("User-defined labels for categorization").optional(),
22272
22272
  version: external_exports.string().describe("Version information").optional(),
22273
22273
  monitoring_endpoint: external_exports.string().describe("Monitoring endpoint URL").optional(),
@@ -22512,7 +22512,7 @@ function registerTools() {
22512
22512
  const result = await callApi("POST", `/v1/memories:batchGet`, body);
22513
22513
  return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
22514
22514
  });
22515
- server.tool("goodmem_memories_create", "Create a new memory", {
22515
+ server.tool("goodmem_memories_create", "Create a memory from text content or base64-encoded content. Content must be provided via exactly one of `original_content` or `original_content_b64`.", {
22516
22516
  memory_id: external_exports.string().describe("Optional client-provided UUID for the memory. If omitted, the server generates one. Returns ALREADY_EXISTS if the ID is already in use.").optional(),
22517
22517
  space_id: external_exports.string().describe("ID of the space where this memory will be stored"),
22518
22518
  original_content: external_exports.string().describe("Original content as plain text (use either this or originalContentB64)").optional(),
@@ -22583,7 +22583,7 @@ function registerTools() {
22583
22583
  const result = await callApi("GET", `/v1/memories/${encodeURIComponent(String(args.id))}`, void 0, query);
22584
22584
  return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
22585
22585
  });
22586
- server.tool("goodmem_memories_list", "List memories in a space", {
22586
+ server.tool("goodmem_memories_list", "Lists memories within a given space. Results are paginated \u2014 the returned `Page` eagerly fetches the first page. Access `.data` for items and `.next_token` to resume. Use `for mem in page` to auto-paginate all pages, `page_size` to control items per API call, and `max_items` to cap total results.", {
22587
22587
  space_id: external_exports.string().describe("The UUID of the space containing the memories"),
22588
22588
  include_content: external_exports.boolean().describe("Whether to include the original content in the response (defaults to false).").optional(),
22589
22589
  include_processing_history: external_exports.boolean().describe("Whether to include background job processing history in the response (defaults to false).").optional(),
@@ -22639,7 +22639,7 @@ function registerTools() {
22639
22639
  const result = await callApi("GET", `/v1/memories/${encodeURIComponent(String(args.id))}/pages`, void 0, query);
22640
22640
  return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
22641
22641
  });
22642
- server.tool("goodmem_memories_retrieve", "Advanced semantic memory retrieval with JSON", {
22642
+ server.tool("goodmem_memories_retrieve", "Performs a streaming semantic search across one or more memory spaces and returns matching chunks ranked by relevance as well as LLM-postprocessed results (like summarization, question-answering, etc.).", {
22643
22643
  message: external_exports.string().describe("Primary query/message for semantic search."),
22644
22644
  context: external_exports.array(external_exports.object({
22645
22645
  text: external_exports.string().describe("Text content for this context item.").optional(),
@@ -22694,7 +22694,7 @@ function registerTools() {
22694
22694
  const result = await callApiNdjson("POST", `/v1/memories:retrieve`, body, void 0, args.timeout_sec);
22695
22695
  return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
22696
22696
  });
22697
- server.tool("goodmem_ocr_document", "Run OCR on a document or image", {
22697
+ server.tool("goodmem_ocr_document", "Run OCR on a document or image. Pass base64-encoded document bytes as `content`. Optionally specify `format` (e.g., PDF, PNG) \u2014 if omitted, the server auto-detects.", {
22698
22698
  content: external_exports.string().describe("Base64-encoded document bytes"),
22699
22699
  format: external_exports.enum(["AUTO", "PDF", "TIFF", "PNG", "JPEG", "BMP"]).describe("Input format hint (AUTO, PDF, TIFF, PNG, JPEG, BMP)").optional(),
22700
22700
  include_raw_json: external_exports.boolean().describe("Include raw OCR JSON payload in the response").optional(),
@@ -22742,7 +22742,7 @@ function registerTools() {
22742
22742
  quotaProjectId: external_exports.string().describe("Optional quota project used for billing").optional()
22743
22743
  }).passthrough().describe("Configuration when kind is CREDENTIAL_KIND_GCP_ADC").optional(),
22744
22744
  labels: external_exports.any().describe('Optional annotations to aid operators (e.g., "owner=vertex")').optional()
22745
- }).passthrough().describe("Structured credential payload describing how to authenticate with the provider. Required for SaaS providers; optional for local deployments.").optional(),
22745
+ }).passthrough().describe("Structured credential payload describing how to authenticate with the provider. Required for SaaS providers; optional for local or proxy providers.").optional(),
22746
22746
  labels: external_exports.record(external_exports.string(), external_exports.string()).describe("User-defined labels for categorization").optional(),
22747
22747
  version: external_exports.string().describe("Version information").optional(),
22748
22748
  monitoring_endpoint: external_exports.string().describe("Monitoring endpoint URL").optional(),
@@ -22924,7 +22924,7 @@ function registerTools() {
22924
22924
  const result = await callApi("GET", `/v1/spaces/${encodeURIComponent(String(args.id))}`, void 0);
22925
22925
  return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
22926
22926
  });
22927
- server.tool("goodmem_spaces_list", "List spaces", {
22927
+ server.tool("goodmem_spaces_list", "List spaces accessible to the caller, with optional filtering by owner, labels, and name. Results are paginated \u2014 the returned `Page` eagerly fetches the first page. Access `.data` for items and `.next_token` to resume. Use `for space in page` to auto-paginate all pages, `page_size` to control items per API call, and `max_items` to cap total results.", {
22928
22928
  owner_id: external_exports.string().describe("Filter spaces by owner ID. With LIST_SPACE_ANY permission and ownerId omitted, returns all visible spaces. Otherwise returns caller-owned spaces only. Specifying ownerId without LIST_SPACE_ANY returns PERMISSION_DENIED.").optional(),
22929
22929
  name_filter: external_exports.string().describe("Filter spaces by name using glob pattern matching").optional(),
22930
22930
  max_results: external_exports.number().int().describe("Maximum number of results to return in a single page (defaults to 50, clamped to [1, 1000])").optional(),
@@ -22980,7 +22980,7 @@ function registerTools() {
22980
22980
  const result = await callApi("POST", `/v1/system/init`, void 0);
22981
22981
  return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
22982
22982
  });
22983
- server.tool("goodmem_users_get", "Get a user by ID", {
22983
+ server.tool("goodmem_users_get", "Retrieves a user by ID or email address. Exactly one of `id` and `email` must be provided. For getting your own profile, use `client.users.me()`.", {
22984
22984
  id: external_exports.string().describe("The UUID of the user to retrieve").optional(),
22985
22985
  email: external_exports.string().describe("The email address of the user to retrieve").optional()
22986
22986
  }, async (args) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pairsystems/goodmem-mcp",
3
- "version": "0.1.12",
3
+ "version": "0.1.13",
4
4
  "description": "GoodMem MCP server \u2014 exposes GoodMem API as MCP tools",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",