What it does
Post text and it is embedded and stored in a vector database keyed to your agent_id. Query by natural language and get back the most semantically similar memories. Built on Qdrant. The canonical x402 RAG pipeline: ScrapePay → MarkdownOpt → EmbedPay → MemoryServe. Delete by memory ID or wipe all memories for an agent (GDPR compliance). $0.001 per write or query. No account, no signup — pay per call via x402.
When to use it
- Store research summaries from ScrapePay + MarkdownOpt, recall by topic later
- RAG pipeline: embed with EmbedPay, store in MemoryServe, scrub recalls with MemScrub
- Per-user memory namespaces for personalised agent responses
- GDPR compliance: store then DELETE /memory/agent/{id} to wipe on user request
Request schema
{
"agent_id": "my-agent-001",
"namespace": "research",
"content": "The Eiffel Tower was built in 1889 for the World Fair.",
"tags": [
"facts",
"paris",
"history"
]
} Response schema
{
"success": true,
"memory_id": "7ea9afac-c3d1-4b2e-9f3a-1234abcd5678",
"agent_id": "my-agent-001",
"namespace": "research",
"content_length": 53,
"tags": [
"facts",
"paris",
"history"
],
"created_at": "2026-05-08T16:33:43Z",
"payment_hash": "0x..."
} Code example — TypeScript via MCP
Install the MCP server once; all 22 services become tool calls.
// Configure @melis-ai/x402-tools-mcp in your MCP client
// Then call the tool:
const result = await mcpClient.callTool("memoryserve", {
"agent_id": "my-agent-001",
"namespace": "research",
"content": "The Eiffel Tower was built in 1889 for the World Fair.",
"tags": [
"facts",
"paris",
"history"
]
});
console.log(result);
// ["success","memory_id","agent_id","namespace","content_lengt... → MCP setup guide Code example — Python via direct HTTP
import requests
# x402 payment header must be set by your wallet client
# See x402.org for client libraries
headers = {
"Content-Type": "application/json",
"x-payment": "<signed-x402-payment-header>",
}
resp = requests.post(
"https://memoryserve.melis.ai/memory/write",
json={
"agent_id": "my-agent-001",
"namespace": "research",
"content": "The Eiffel Tower was built in 1889 for the World Fair.",
"tags": [
"facts",
"paris",
"history"
]
},
headers=headers,
)
print(resp.json()) Code example — curl with internal key bypass
For testing with an issued internal key (skips x402 payment flow):
curl -X POST https://memoryserve.melis.ai/memory/write \
-H "Content-Type: application/json" \
-H "x-internal-key: YOUR_KEY" \
-d '{"agent_id":"my-agent-001","namespace":"research","content":"The Eiffel Tower was built in 1889 for the World Fair.","tags":["facts","paris","history"]}' How is this different from alternatives?
MemoryServe vs Pinecone / Qdrant Cloud
Pinecone and Qdrant Cloud are production vector databases with SLAs and advanced features. MemoryServe is x402-native — no account, pay-per-operation, composable with EmbedPay for a zero-signup RAG pipeline.
MemoryServe vs Mem0 / LangChain memory
Mem0 and LangChain memory modules require agent framework integration. MemoryServe is a plain HTTP API — any agent that can make a POST request can use it regardless of framework.
FAQ
Does it work without an account?
Yes. x402 is account-less. Your agent's wallet signs the payment and retries automatically. No registration, no API key, no subscription.
What happens on failure?
Returns HTTP 400 if agent_id or content is missing. Returns HTTP 503 if EmbedPay embedding backend is unavailable. DELETE operations are free and always succeed (GDPR). No settlement on any non-200 response.
What is the rate limit?
600 requests per minute per IP.
Is this open-source?
The service code is closed-source for security reasons. The MCP wrapper that calls it is open-source and MIT-licensed: github.com/mizukaizen/x402-tools-mcp .
Who built this?
Part of the melis.ai agent infrastructure stack. Running on a dedicated Helsinki VPS since early 2026. Contact sean@melis.ai.