@memly/mcp-server 0.2.4 → 0.2.6

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 +43 -7
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -19954,7 +19954,7 @@ class MemlyClient {
19954
19954
  body: JSON.stringify({
19955
19955
  content,
19956
19956
  project_id: projectId,
19957
- source: source ?? "user"
19957
+ source: source ?? "metadata"
19958
19958
  })
19959
19959
  });
19960
19960
  }
@@ -19977,27 +19977,63 @@ function registerTools(server, client) {
19977
19977
  }, async ({ topic }) => {
19978
19978
  try {
19979
19979
  const query = topic ?? "recent technical decisions architecture patterns current work";
19980
- const result = await client.searchMemories(query, undefined, 10);
19980
+ const result = await client.searchMemories(query, undefined, 20);
19981
19981
  if (result.is_cold_start || result.memories.length === 0) {
19982
19982
  return {
19983
19983
  content: [{
19984
19984
  type: "text",
19985
- text: "\uD83E\uDDE0 Memly: No memories yet for this project. I'll start learning from this session — important decisions and context will be saved automatically."
19985
+ text: `\uD83E\uDDE0 Memly: No memories yet for this project. I'll start learning from this session — important decisions and context will be saved automatically.
19986
+
19987
+ IMPORTANT: Begin your response to the user with exactly this line (italic markdown):
19988
+ > \uD83E\uDDE0 _Memly: no memories yet — learning from this session_
19989
+
19990
+ `
19986
19991
  }]
19987
19992
  };
19988
19993
  }
19989
- const formatted = result.memories.map((m, i) => `[${i + 1}] ${m.chunk_type ?? "general"} | confidence: ${m.confidence ? (m.confidence * 100).toFixed(0) + "%" : "n/a"}
19990
- ${m.content}`).join(`
19994
+ const MIN_CONFIDENCE = 0.25;
19995
+ const quality = result.memories.filter((m) => (m.confidence ?? 0) >= MIN_CONFIDENCE);
19996
+ if (quality.length === 0) {
19997
+ return {
19998
+ content: [{
19999
+ type: "text",
20000
+ text: `\uD83E\uDDE0 Memly: No high-quality memories found yet. I'll start capturing important context from this session.
20001
+
20002
+ IMPORTANT: Begin your response to the user with exactly this line (italic markdown):
20003
+ > \uD83E\uDDE0 _Memly: no high-quality memories yet — learning from this session_
20004
+
20005
+ `
20006
+ }]
20007
+ };
20008
+ }
20009
+ const seen = new Set;
20010
+ const deduped = quality.filter((m) => {
20011
+ const key = (m.content ?? "").slice(0, 80).toLowerCase().replace(/\s+/g, " ");
20012
+ if (seen.has(key))
20013
+ return false;
20014
+ seen.add(key);
20015
+ return true;
20016
+ }).slice(0, 10);
20017
+ const formatted = deduped.map((m, i) => {
20018
+ const confidence = m.confidence ? `${(m.confidence * 100).toFixed(0)}%` : "n/a";
20019
+ const type = m.chunk_type ?? "general";
20020
+ return `[${i + 1}] ${type} | confidence: ${confidence}
20021
+ ${m.content}`;
20022
+ }).join(`
19991
20023
 
19992
20024
  `);
20025
+ const count = deduped.length;
19993
20026
  return {
19994
20027
  content: [{
19995
20028
  type: "text",
19996
- text: `\uD83E\uDDE0 Memly: Loaded ${result.memories.length} memories from previous sessions.
20029
+ text: `\uD83E\uDDE0 Memly: Loaded ${count} ${count === 1 ? "memory" : "memories"} from previous sessions.
19997
20030
 
19998
20031
  ${formatted}
19999
20032
 
20000
- Use this context to inform your responses.`
20033
+ IMPORTANT: Begin your response to the user with exactly this line (italic markdown):
20034
+ > \uD83E\uDDE0 _Memly: ${count} ${count === 1 ? "memory" : "memories"} active_
20035
+
20036
+ Then answer normally. Use the memories above to inform your response.`
20001
20037
  }]
20002
20038
  };
20003
20039
  } catch (err) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memly/mcp-server",
3
- "version": "0.2.4",
3
+ "version": "0.2.6",
4
4
  "description": "Memly MCP Server — persistent memory for any IDE",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",