@syndicai/stack-mcp 0.2.0 → 0.2.1

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 (3) hide show
  1. package/README.md +2 -2
  2. package/package.json +1 -1
  3. package/tools.js +8 -7
package/README.md CHANGED
@@ -42,8 +42,8 @@ Monorepo / unpublished:
42
42
  | Tool | Purpose |
43
43
  | ---------------------- | ----------------------------------------------------------------------- |
44
44
  | `memory_search` | Hybrid retrieve |
45
- | `memory_ingest` | Create/resume ingest (`path` or `text`; PDF/image rejected) |
46
- | `memory_ingest_status` | Poll job |
45
+ | `memory_ingest` | Start ingest async; returns `jobId` (`path` or `text`; PDF/image rejected) |
46
+ | `memory_ingest_status` | Poll job until `completed` / `failed` |
47
47
 
48
48
  ## Dev
49
49
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@syndicai/stack-mcp",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Local stdio MCP server for SyndicAI Stack (Memory and future tools)",
5
5
  "type": "module",
6
6
  "bin": {
package/tools.js CHANGED
@@ -67,7 +67,7 @@ export function registerStackMcpTools(server, client) {
67
67
  server.registerTool('memory_search', {
68
68
  title: 'Search Memory',
69
69
  description: 'Hybrid search over the squad Memory corpus (vector + lexical). Returns ranked chunk hits with content and scores. ' +
70
- 'Query embedding shares the satellite GPU with coding chat: under load embeddings are throttled (lower concurrency) so search may be slower while users are chatting — wait and retry rather than assuming Memory is down.',
70
+ 'Query embeddings run on the stack-datalayer (CPU Granite).',
71
71
  inputSchema: {
72
72
  query: z.string().describe('Natural-language search query'),
73
73
  limit: z
@@ -84,10 +84,10 @@ export function registerStackMcpTools(server, client) {
84
84
  }, async (args) => runMemorySearch(client, args));
85
85
  server.registerTool('memory_ingest', {
86
86
  title: 'Ingest into Memory',
87
- description: 'Start (or resume) a Memory ingest job (chunk → embed → store). Accepts text/markdown/code only. ' +
88
- 'Convert PDFs/images to markdown on the client before ingestbinary PDF/image paths are rejected. ' +
89
- 'Prefer local `path` for files so the MCP process reads bytes and the model never sees them; or pass inline `text`. ' +
90
- 'Embeddings run on the stack-datalayer (CPU Granite). Poll memory_ingest_status until completed/failed. ' +
87
+ description: 'Start a Memory ingest job asynchronously (chunk → embed → store). Returns immediately with jobId and status ' +
88
+ '(usually "running"; validation failures may be "cancelled"). Accepts text/markdown/code only convert PDFs/images ' +
89
+ 'to markdown on the client first. Prefer local `path` so file bytes never enter the model context; or pass inline `text`. ' +
90
+ 'Embeddings run on the stack-datalayer (CPU Granite). Poll memory_ingest_status with the jobId until completed/failed. ' +
91
91
  'Do not open a second ingest for the same sourceKey while a non-terminal job exists.',
92
92
  inputSchema: {
93
93
  sourceKey: z
@@ -110,8 +110,9 @@ export function registerStackMcpTools(server, client) {
110
110
  }, async (args) => runMemoryIngest(client, args));
111
111
  server.registerTool('memory_ingest_status', {
112
112
  title: 'Ingest job status',
113
- description: 'Fetch status and checkpoint for a Memory ingest job. Typical statuses: pending/running, paused (legacy), completed, failed. ' +
114
- 'Do not create a new ingest for the same sourceKey while a non-terminal job exists.',
113
+ description: 'Poll status and checkpoint for a Memory ingest job started via memory_ingest. ' +
114
+ 'Statuses: running (in progress), completed, failed, cancelled. Optional legacy: paused. ' +
115
+ 'Keep polling the same jobId until completed/failed; do not start a second ingest for the same sourceKey while open.',
115
116
  inputSchema: {
116
117
  jobId: z.string().describe('Ingest job id from memory_ingest'),
117
118
  },