{"_id":"@atomicmemory/mcp-server","_rev":"6-e2e82cb9e8d4f600e4ea00bb3b5ac8e5","name":"@atomicmemory/mcp-server","dist-tags":{"latest":"0.1.5"},"versions":{"0.1.0":{"name":"@atomicmemory/mcp-server","version":"0.1.0","license":"Apache-2.0","_id":"@atomicmemory/mcp-server@0.1.0","maintainers":[{"name":"atomicstrata","email":"services@atomicstrata.ai"}],"homepage":"https://github.com/atomicstrata/atomicmemory-integrations#readme","bugs":{"url":"https://github.com/atomicstrata/atomicmemory-integrations/issues"},"bin":{"atomicmemory-mcp":"dist/bin.js"},"dist":{"shasum":"11443237f8f90305a9218d0cd7f976fc25f5b1b8","tarball":"https://registry.npmjs.org/@atomicmemory/mcp-server/-/mcp-server-0.1.0.tgz","fileCount":26,"integrity":"sha512-8E38w2c9uQeHRBgeFLHHzUfjx37U+QG2zNsyTZrbFMsjJj3yw07l/iQLXK24VVfx27ST+ik44uQB6xR0CkJH2w==","signatures":[{"sig":"MEUCIQCon501itcvcbjmC1D2a+ZvF3FOwqqXGtVSK3G+/Xz4RAIgeuSq/XcWxyfcFOdxLfefHZse9KdJmJ0Up7RhQVj51Ds=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64502},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./spawn":{"types":"./dist/spawn.d.ts","import":"./dist/spawn.js"}},"gitHead":"f5545bd93a195c3053f2cad66d403837e1e4d13e","scripts":{"lint":"tsc -p tsconfig.json --noEmit","test":"node --test --import tsx 'src/**/*.test.ts'","build":"tsc -p tsconfig.json","prepack":"pnpm build","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"node -e \"const v=require('./package.json').dependencies['@atomicmemory/sdk'];if(v.startsWith('file:')||v.startsWith('link:')){console.error('refusing to publish: @atomicmemory/sdk is '+v+'. Publish the SDK first, then pin to a registry version here.');process.exit(1)}\""},"_npmUser":{"name":"atomicstrata","email":"services@atomicstrata.ai"},"repository":{"url":"git+https://github.com/atomicstrata/atomicmemory-integrations.git","type":"git","directory":"packages/mcp-server"},"_npmVersion":"11.14.1","description":"MCP server exposing AtomicMemory's ingest / search / package tools to any MCP-compatible agent.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^3.23.0","@atomicmemory/sdk":"^1.0.1","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.6.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.0_1778774987816_0.696733899475678","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@atomicmemory/mcp-server","version":"0.1.1","license":"Apache-2.0","_id":"@atomicmemory/mcp-server@0.1.1","maintainers":[{"name":"atomicstrata","email":"services@atomicstrata.ai"}],"homepage":"https://github.com/atomicstrata/atomicmemory-integrations#readme","bugs":{"url":"https://github.com/atomicstrata/atomicmemory-integrations/issues"},"bin":{"atomicmemory-mcp":"dist/bin.js"},"dist":{"shasum":"86af4a3a2788e76a18f374520e7c9a0bc77b4da1","tarball":"https://registry.npmjs.org/@atomicmemory/mcp-server/-/mcp-server-0.1.1.tgz","fileCount":31,"integrity":"sha512-gOFj9Iazm7KhfJCSrcbxE8wzSBFqXsmzVDOUnC4fnKWAhXo1sO6STC6m81lkNXOUhH93eT5g7EJXrZMxMdJJFQ==","signatures":[{"sig":"MEQCIA7zfREgK7a4YeK34tK2FZJw8DRmKBGDCPlPJE3Wcty+AiBVxtfs3OvQs7/iq5Ac/XoVN22W6ZucJbmF2JzoDGxsEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68495},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./spawn":{"types":"./dist/spawn.d.ts","import":"./dist/spawn.js"},"./embedded-client":{"types":"./dist/embedded-client.d.ts","import":"./dist/embedded-client.js"}},"gitHead":"4bc851bbb26284a10914e746929ee36550061240","scripts":{"lint":"tsc -p tsconfig.json --noEmit","test":"node --test --import tsx 'src/**/*.test.ts'","build":"tsc -p tsconfig.json","prepack":"pnpm build","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"node -e \"const v=require('./package.json').dependencies['@atomicmemory/sdk'];if(v.startsWith('file:')||v.startsWith('link:')){console.error('refusing to publish: @atomicmemory/sdk is '+v+'. Publish the SDK first, then pin to a registry version here.');process.exit(1)}\""},"_npmUser":{"name":"atomicstrata","email":"services@atomicstrata.ai"},"repository":{"url":"git+https://github.com/atomicstrata/atomicmemory-integrations.git","type":"git","directory":"packages/mcp-server"},"_npmVersion":"11.14.1","description":"MCP server exposing AtomicMemory's ingest / search / package tools to any MCP-compatible agent.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^3.23.0","@atomicmemory/sdk":"^1.0.1","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.6.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.1_1778810915958_0.4345035189669815","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@atomicmemory/mcp-server","version":"0.1.2","license":"Apache-2.0","_id":"@atomicmemory/mcp-server@0.1.2","maintainers":[{"name":"atomicstrata","email":"services@atomicstrata.ai"}],"homepage":"https://github.com/atomicstrata/atomicmemory/tree/main/packages/mcp-server#readme","bugs":{"url":"https://github.com/atomicstrata/atomicmemory/issues"},"bin":{"atomicmemory-mcp":"dist/bin.js"},"dist":{"shasum":"024e02fa4199975403399072f516bd717161870a","tarball":"https://registry.npmjs.org/@atomicmemory/mcp-server/-/mcp-server-0.1.2.tgz","fileCount":31,"integrity":"sha512-mmpoNz0kEHzuJzRoicrgsrE8kSgmujKfTb7Vgkq9vP+gSN9qwqDM8SrJLR5ExRkSTG7YTvh2wrLi4tbHSf8avw==","signatures":[{"sig":"MEUCIBBuj2npRyMMFsI0EckEvYJvhSEefsbY+WvJYI3AYjjrAiEAsayHj4UdbzIkP1Q9uUssQ1obuvaUYAlsoJ9KaXsAn0w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68641},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./spawn":{"types":"./dist/spawn.d.ts","import":"./dist/spawn.js"},"./embedded-client":{"types":"./dist/embedded-client.d.ts","import":"./dist/embedded-client.js"}},"gitHead":"201677d74fbb3f3cfd5e0dbb5f6904e889dcbb07","scripts":{"lint":"tsc -p tsconfig.json --noEmit","test":"node --test --import tsx 'src/**/*.test.ts'","build":"tsc -p tsconfig.json","prepack":"pnpm build","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"node -e \"const v=require('./package.json').dependencies['@atomicmemory/sdk'];if(v.startsWith('file:')||v.startsWith('link:')){console.error('refusing to publish: @atomicmemory/sdk is '+v+'. Publish the SDK first, then pin to a registry version here.');process.exit(1)}\""},"_npmUser":{"name":"atomicstrata","email":"services@atomicstrata.ai"},"repository":{"url":"git+https://github.com/atomicstrata/atomicmemory.git","type":"git","directory":"packages/mcp-server"},"_npmVersion":"11.14.1","description":"MCP server exposing AtomicMemory's ingest / search / package tools to any MCP-compatible agent.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^3.23.0","@atomicmemory/sdk":"^1.0.2","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.6.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.2_1779188685648_0.6244075679502166","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@atomicmemory/mcp-server","version":"0.1.3","license":"Apache-2.0","_id":"@atomicmemory/mcp-server@0.1.3","maintainers":[{"name":"atomicstrata","email":"services@atomicstrata.ai"}],"homepage":"https://github.com/atomicstrata/atomicmemory/tree/main/packages/mcp-server#readme","bugs":{"url":"https://github.com/atomicstrata/atomicmemory/issues"},"bin":{"atomicmemory-mcp":"dist/bin.js"},"dist":{"shasum":"d4cce49d5f9a6926bc361a73c080e5d9a12dbd94","tarball":"https://registry.npmjs.org/@atomicmemory/mcp-server/-/mcp-server-0.1.3.tgz","fileCount":31,"integrity":"sha512-505nfkzUA5Y2lWABDoX4iZlQbBzCa4OWq6vFu4aFWk8ia32uO/maiWDliZCnOPl4QEq4UovkUKVzJj2RRSfYZQ==","signatures":[{"sig":"MEUCIDEdfuiNyfhViDQ17ImCzoOCbOo+CLsL8XDYZIiyKRTNAiEAiBIJev//wpFqtHWVD7ocY8hjqw+FZbtD/Pb4WEE7Ohw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69627},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./spawn":{"types":"./dist/spawn.d.ts","import":"./dist/spawn.js"},"./embedded-client":{"types":"./dist/embedded-client.d.ts","import":"./dist/embedded-client.js"}},"gitHead":"65c9fe5b18faaa87b4b5768e7d04309672aeed4f","scripts":{"lint":"tsc -p tsconfig.json --noEmit","test":"node --test --import tsx 'src/**/*.test.ts'","build":"tsc -p tsconfig.json","prepack":"pnpm build","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"node -e \"const v=require('./package.json').dependencies['@atomicmemory/sdk'];if(v.startsWith('file:')||v.startsWith('link:')){console.error('refusing to publish: @atomicmemory/sdk is '+v+'. Publish the SDK first, then pin to a registry version here.');process.exit(1)}\""},"_npmUser":{"name":"atomicstrata","email":"services@atomicstrata.ai"},"repository":{"url":"git+https://github.com/atomicstrata/atomicmemory.git","type":"git","directory":"packages/mcp-server"},"_npmVersion":"11.14.1","description":"MCP server exposing AtomicMemory's ingest / search / package tools to any MCP-compatible agent.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^3.23.0","@atomicmemory/sdk":"^1.0.2","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.6.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.3_1779342312804_0.4265598632319285","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@atomicmemory/mcp-server","version":"0.1.4","license":"Apache-2.0","_id":"@atomicmemory/mcp-server@0.1.4","maintainers":[{"name":"atomicstrata","email":"services@atomicstrata.ai"}],"homepage":"https://github.com/atomicstrata/atomicmemory/tree/main/packages/mcp-server#readme","bugs":{"url":"https://github.com/atomicstrata/atomicmemory/issues"},"bin":{"atomicmemory-mcp":"dist/bin.js"},"dist":{"shasum":"1fcbf0c3bd1331af994930beeeae8b61a2e9ee13","tarball":"https://registry.npmjs.org/@atomicmemory/mcp-server/-/mcp-server-0.1.4.tgz","fileCount":31,"integrity":"sha512-Y07T+lsN8z/QRYL40PqsXyAhp6KqaD8nY+dInbXztFBv97/z6nnFHi0J14P/C1pKteo7hoCP18QsrnIHMPFy3w==","signatures":[{"sig":"MEQCIHb2HhXrxnFVPiaEkRH03t5H9gmTHs1hrHa4LuCK2xaNAiBr+R5RSwSVvxwTV3kmaYCLaThVr073cDnbDEsEt80AYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomicmemory%2fmcp-server@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":86003},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./spawn":{"types":"./dist/spawn.d.ts","import":"./dist/spawn.js"},"./embedded-client":{"types":"./dist/embedded-client.d.ts","import":"./dist/embedded-client.js"}},"gitHead":"94e957099ba8a6b936254719931e5bafda18fbce","scripts":{"lint":"tsc -p tsconfig.json --noEmit","test":"node --test --import tsx 'src/**/*.test.ts'","build":"tsc -p tsconfig.json","prepack":"pnpm build","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"node ../../scripts/guards/guard-npm-publish.mjs && node -e \"const v=require('./package.json').dependencies['@atomicmemory/sdk'];if(v.startsWith('file:')||v.startsWith('link:')){console.error('refusing to publish: @atomicmemory/sdk is '+v+'. Publish the SDK first, then pin to a registry version here.');process.exit(1)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d29269d4-905d-49de-b48b-c916bf6952df"}},"repository":{"url":"git+https://github.com/atomicstrata/atomicmemory.git","type":"git","directory":"packages/mcp-server"},"_npmVersion":"11.17.0","description":"MCP server exposing AtomicMemory's ingest / search / package tools to any MCP-compatible agent.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","@atomicmemory/sdk":"^1.1.1","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.6.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.4_1781600520623_0.5087727523942573","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@atomicmemory/mcp-server","version":"0.1.5","description":"MCP server exposing AtomicMemory's ingest / search / package tools to any MCP-compatible agent.","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./spawn":{"types":"./dist/spawn.d.ts","import":"./dist/spawn.js"},"./embedded-client":{"types":"./dist/embedded-client.d.ts","import":"./dist/embedded-client.js"}},"bin":{"atomicmemory-mcp":"dist/bin.js"},"repository":{"type":"git","url":"git+https://github.com/atomicstrata/atomicmemory.git","directory":"packages/mcp-server"},"license":"Apache-2.0","engines":{"node":">=20"},"scripts":{"build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test":"node --test --import tsx 'src/**/*.test.ts'","lint":"tsc -p tsconfig.json --noEmit","prepack":"pnpm build","prepublishOnly":"node ../../scripts/guards/guard-npm-publish.mjs && node -e \"const v=require('./package.json').dependencies['@atomicmemory/sdk'];if(v.startsWith('file:')||v.startsWith('link:')){console.error('refusing to publish: @atomicmemory/sdk is '+v+'. Publish the SDK first, then pin to a registry version here.');process.exit(1)}\""},"dependencies":{"@atomicmemory/sdk":"^1.1.1","@modelcontextprotocol/sdk":"^1.0.0","zod":"^3.23.0"},"devDependencies":{"@types/node":"^20.0.0","tsx":"^4.19.0","typescript":"^5.6.0"},"bugs":{"url":"https://github.com/atomicstrata/atomicmemory/issues"},"homepage":"https://github.com/atomicstrata/atomicmemory/tree/main/packages/mcp-server#readme","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"gitHead":"683bd92c9c77877962d7425e27b50cb83867fd9e","_id":"@atomicmemory/mcp-server@0.1.5","_nodeVersion":"22.23.1","_npmVersion":"12.0.2","dist":{"integrity":"sha512-zqoLeHeBIZeDVZpSsQOT46d6xmtMGacAiMpBPxCmyrCVy1nKL3RYzONp21VPjwxAyK6p9t2xYHX0ZvSkUEZKJw==","shasum":"3eec58d54fb58b4a075f284d92ab83fdb1775fe4","tarball":"https://registry.npmjs.org/@atomicmemory/mcp-server/-/mcp-server-0.1.5.tgz","fileCount":35,"unpackedSize":93092,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomicmemory%2fmcp-server@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFdrTAb8GloR9D5kLjLytdOcLRhVcM6DEsFV7+OGZ8X3AiEApGyYIjPBNmgsMiwK0lFkaLSH90mpIcViQweOjbtvgIA="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d29269d4-905d-49de-b48b-c916bf6952df"}},"directories":{},"maintainers":[{"name":"atomicstrata","email":"services@atomicstrata.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server_0.1.5_1786091728848_0.8992874367945656"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-14T16:09:47.726Z","modified":"2026-08-07T08:35:29.288Z","0.1.0":"2026-05-14T16:09:47.962Z","0.1.1":"2026-05-15T02:08:36.121Z","0.1.2":"2026-05-19T11:04:45.812Z","0.1.3":"2026-05-21T05:45:12.961Z","0.1.4":"2026-06-16T09:02:00.774Z","0.1.5":"2026-08-07T08:35:28.977Z"},"bugs":{"url":"https://github.com/atomicstrata/atomicmemory/issues"},"license":"Apache-2.0","homepage":"https://github.com/atomicstrata/atomicmemory/tree/main/packages/mcp-server#readme","repository":{"type":"git","url":"git+https://github.com/atomicstrata/atomicmemory.git","directory":"packages/mcp-server"},"description":"MCP server exposing AtomicMemory's ingest / search / package tools to any MCP-compatible agent.","maintainers":[{"name":"atomicstrata","email":"services@atomicstrata.ai"}],"readme":"# @atomicmemory/mcp-server\n\nMCP server that exposes [AtomicMemory core](../../packages/core) as four tools to any MCP-compatible agent:\n\n- `memory_search` — semantic retrieval\n- `memory_ingest` — AUDN-SC-mutating ingest (`text` / `messages`) or deterministic one-record ingest (`verbatim`, provider permitting)\n- `memory_package` — token-budgeted context package\n- `memory_list` — list recent scoped memories\n\n## Authoritative contract\n\nThe REST API and the [`@atomicmemory/sdk`](../../packages/sdk) type surface are\nthe authoritative memory contract — provenance, scope, mutation results,\nretrieval scores, and context-package metadata are defined there. This MCP\nserver is a thin callable-tool adapter over that contract.\n\nTool results are returned as JSON-stringified text for host compatibility, so\nthe text payload is a transport convenience, not a separate audit surface. For\nevidence or audit purposes, read the REST/SDK projection rather than parsing MCP\ntool text. New memory semantics land in Core and the SDK first; this adapter\nexposes them, it does not define them.\n\n## Status: package entrypoint\n\nThis package is intended to publish as `@atomicmemory/mcp-server`. Cursor and\nother MCP-compatible hosts can launch it directly with `npx`:\n\n```bash\nnpx -y @atomicmemory/mcp-server\n```\n\nFor source development, build the package locally with\n`pnpm --filter @atomicmemory/mcp-server build` and run\n`node packages/mcp-server/dist/bin.js`.\n\n## Usage\n\nYou usually don't run this directly — coding-agent integrations such as Claude\nCode, OpenClaw, Codex, and Cursor spawn it for you. If you want to wire it into\na custom MCP host directly:\n\n```bash\nnpx -y @atomicmemory/mcp-server\n```\n\n## Config\n\nThe binary loads config from environment variables:\n\n| Variable | Required | Purpose |\n|---|---|---|\n| `ATOMICMEMORY_API_URL` | no** | Provider base URL. Defaults to the local AtomicMemory core (`http://127.0.0.1:17350`) when `ATOMICMEMORY_PROVIDER=atomicmemory`; required for `mem0`. |\n| `ATOMICMEMORY_API_KEY` | no | Bearer credential forwarded to providers that require HTTP authorization. Defaults to `local-dev-key` only for the local AtomicMemory core URL. |\n| `ATOMICMEMORY_PROVIDER` | no | Provider name — one of `atomicmemory` or `mem0`. Defaults to `atomicmemory`. |\n| `ATOMICMEMORY_SCOPE_USER` | no | Default `user` scope. Defaults to the local machine user when omitted. |\n| `ATOMICMEMORY_SCOPE_AGENT` | no* | Default `agent` scope |\n| `ATOMICMEMORY_SCOPE_NAMESPACE` | no* | Default `namespace` scope |\n| `ATOMICMEMORY_SCOPE_THREAD` | no* | Default `thread` scope |\n\n\\* Scope fields mirror the SDK's `Scope` type (`user | agent | namespace | thread`).\n\n\\** `mem0` remains configurable, but it is no longer assumed to live at the local AtomicMemory core URL. Set `ATOMICMEMORY_API_URL` explicitly when using `provider=mem0`.\n\n## Ingest modes\n\n`memory_ingest` accepts:\n\n- `mode: \"text\"` with `content`: runs the provider's extraction pipeline.\n- `mode: \"messages\"` with `messages`: runs extraction over structured chat messages.\n- `mode: \"verbatim\"` with `content`: asks the provider to store exactly one deterministic record. This is intended for lifecycle records such as compact summaries. Providers that cannot guarantee verbatim semantics may reject it. Supply `contentClass` (`summary` | `redacted` | `raw`) describing what you are storing: a core with the default `RAW_CONTENT_POLICY=reject` refuses unstamped or `raw` verbatim content.\n\nOptional `metadata`, `provenance`, and `kind` are accepted. Deterministic AtomicMemory records store the provided `content` directly; provenance is persisted through `sourceSite` / `sourceUrl`.\n\n**Metadata guidance for agents:** `metadata` is only valid with `mode: \"verbatim\"` (Core rejects it on text/messages extraction). Use `provenance` (`source`, `sourceUrl`, `sourceId`) for tags and lineage. Safe integration keys in `metadata` are `externalId` and `dedupe_key` (the latter also synthesizes `sourceUrl` when omitted). Do **not** put core-internal keys in `metadata` — including `topic`, `headline`, `cmo_id`, `sourceSite`, and the full set in core's `RESERVED_METADATA_KEYS`. The MCP server rejects reserved keys and non-verbatim metadata before calling core.\n\n## Embedding in a plugin runtime\n\nOpenClaw and similar hosts can embed the server in-process via the `./spawn` subpath export:\n\n```ts\nimport { spawnAtomicMemoryMcp } from '@atomicmemory/mcp-server/spawn';\n\nconst { server } = await spawnAtomicMemoryMcp({\n  provider: 'atomicmemory',\n  scope: { user: 'pip' },\n});\n```\n\nCaller owns the transport.\n\n## License\n\nApache-2.0.\n","readmeFilename":"README.md"}