Custom HTTP integration
If your tool isn't an MCP host, you can still talk to novamem over plain JSON HTTP. Same surface as the MCP tools, just over POST /v1/* with a bearer header.
Authenticate
Mint a tenant token from the dashboard (or via POST /v1/me/tokens) and send it as a bearer:
bash
curl -H "Authorization: Bearer nm_..." \
https://novamem.example.com/healthRemember an entry
bash
curl -X POST https://novamem.example.com/v1/remember \
-H "Authorization: Bearer nm_..." \
-H "Content-Type: application/json" \
-d '{
"content": "Decision: Postgres for the main store. MVCC + extensibility.",
"namespace": "decisions",
"sourceType": "doc"
}'Response:
json
{ "id": "01KQW8EKAJYNTVSGA283SF2ZGQ" }Search hybrid
bash
curl -X POST https://novamem.example.com/v1/search \
-H "Authorization: Bearer nm_..." \
-H "Content-Type: application/json" \
-d '{
"query": "why did we pick Postgres",
"k": 5
}'Override weights to force keyword-only or vector-only:
json
{ "query": "ABC123", "weights": { "keyword": 1, "vector": 0, "graph": 0 } }Walk the graph
bash
curl -X POST https://novamem.example.com/v1/neighbors \
-H "Authorization: Bearer nm_..." \
-H "Content-Type: application/json" \
-d '{ "id": "01KQW8EKAJYNTVSGA283SF2ZGQ", "depth": 2, "k": 10 }'SDK
A typed TypeScript client lives at @azrtydxb/novamem:
ts
import { NovaMemClient } from "@azrtydxb/novamem";
const nm = new NovaMemClient({
baseUrl: "https://novamem.example.com",
token: process.env.NOVAMEM_TOKEN,
});
await nm.remember({ content: "...", namespace: "decisions" });
const r = await nm.search({ query: "why did we pick Postgres" });See API → Data plane for the full route list.