Documentation
Learn how to integrate Frequency Memory API into your AI agents and applications.
Quickstart
Get up and running in 5 minutes.
Get your API key
Sign up at app.ronimotors.co.il to get your free API key.
Store your first memory
curl -X POST https://frequency-dispatcher.dima7667.workers.dev/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "freq_memory_store",
"params": {
"key": "my-first-memory",
"content": "Hello from Frequency Memory!",
"type": "fact",
"tags": ["test"]
},
"id": 1
}'
Recall your memory
curl -X POST https://frequency-dispatcher.dima7667.workers.dev/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "freq_memory_recall",
"params": { "key": "my-first-memory" },
"id": 2
}'
MCP Setup for Claude
Connect Frequency Memory to Claude Desktop or Claude Code as an MCP server.
Claude Desktop Configuration
Add this to your claude_desktop_config.json:
macOS path:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"frequency-memory": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://frequency-dispatcher.dima7667.workers.dev/mcp"],
"env": {
"API_KEY": "YOUR_API_KEY"
}
}
}
}
Claude Code Configuration
Add to your .claude/settings.json:
{
"mcpServers": {
"frequency-memory": {
"type": "http",
"url": "https://frequency-dispatcher.dima7667.workers.dev/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}
Available MCP Tools
Once connected, Claude has access to these tools:
| Tool | Description |
|---|---|
freq_memory_store | Store a memory with key, content, type, and tags |
freq_memory_recall | Recall a memory by key |
freq_memory_search | Search memories by query or tags |
freq_encode | Encode thoughts as frequency patterns |
freq_decode | Decode frequency patterns back to text |
freq_session_create | Create a reasoning session |
freq_session_observe | Add observation to session |
freq_session_reflect | Add reflection/analysis to session |
freq_session_decide | Record a decision in session |
freq_session_complete | Complete session and get handle |
freq_usage | Check your usage statistics |
API Reference
All requests use JSON-RPC 2.0 format over HTTPS POST.
Base URL
https://frequency-dispatcher.dima7667.workers.dev/
Authentication
Include your API key in the X-API-Key header:
X-API-Key: fm_free_xxxxxxxxxxxxx
freq_memory_store
Store a memory with 30x compression.
{
"jsonrpc": "2.0",
"method": "freq_memory_store",
"params": {
"key": "unique-key", // Required: unique identifier
"content": "Your content", // Required: content to store
"type": "fact", // Optional: fact, pattern, procedure, experience
"importance": "high", // Optional: critical, high, medium, low
"tags": ["tag1", "tag2"] // Optional: searchable tags
},
"id": 1
}
freq_memory_recall
Recall a stored memory by key.
{
"jsonrpc": "2.0",
"method": "freq_memory_recall",
"params": {
"key": "unique-key", // Required: memory key
"decode": true // Optional: decode to text (default: true)
},
"id": 1
}
freq_memory_search
Search memories by query or tags.
{
"jsonrpc": "2.0",
"method": "freq_memory_search",
"params": {
"query": "search term", // Optional: text search
"tags": ["tag1"], // Optional: filter by tags
"type": "fact", // Optional: filter by type
"limit": 10 // Optional: max results (default: 10)
},
"id": 1
}
freq_encode
Encode thoughts as frequency patterns (no tokens needed for internal reasoning).
{
"jsonrpc": "2.0",
"method": "freq_encode",
"params": {
"thoughts": [
{
"phase": "OBSERVE", // OBSERVE, REMEMBER, REFLECT, DECIDE, ACT, LEARN, SHARE
"type": "data", // Type of thought
"content": "Observed X", // Content (optional)
"confidence": "high" // high, medium, low
}
]
},
"id": 1
}
freq_decode
Decode frequency patterns back to human-readable text.
{
"jsonrpc": "2.0",
"method": "freq_decode",
"params": {
"handle": "freq:tenant_xxx:123:abc" // Handle from encode
},
"id": 1
}
Reasoning Sessions
Create structured reasoning sessions for multi-step thinking:
// 1. Create session
{ "method": "freq_session_create", "params": { "sessionName": "code-review" } }
// 2. Add observations
{ "method": "freq_session_observe", "params": {
"sessionId": "...", "type": "bug", "data": { "file": "auth.ts" }
}}
// 3. Add reflections
{ "method": "freq_session_reflect", "params": {
"sessionId": "...", "type": "analysis", "detail": "Missing null check"
}}
// 4. Record decisions
{ "method": "freq_session_decide", "params": {
"sessionId": "...", "action": "fix", "approved": true
}}
// 5. Complete and get handle
{ "method": "freq_session_complete", "params": { "sessionId": "..." } }
Code Examples
JavaScript / Node.js
const API_KEY = 'fm_free_xxxxx';
const API_URL = 'https://frequency-dispatcher.dima7667.workers.dev/';
async function callFrequency(method, params) {
const response = await fetch(API_URL, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': API_KEY
},
body: JSON.stringify({
jsonrpc: '2.0',
method,
params,
id: Date.now()
})
});
return response.json();
}
// Store a memory
await callFrequency('freq_memory_store', {
key: 'user-preference',
content: 'User prefers dark mode',
type: 'fact',
tags: ['user', 'settings']
});
// Recall it later
const memory = await callFrequency('freq_memory_recall', {
key: 'user-preference'
});
console.log(memory.result.content);
Python
import requests
API_KEY = 'fm_free_xxxxx'
API_URL = 'https://frequency-dispatcher.dima7667.workers.dev/'
def call_frequency(method, params):
response = requests.post(
API_URL,
headers={
'Content-Type': 'application/json',
'X-API-Key': API_KEY
},
json={
'jsonrpc': '2.0',
'method': method,
'params': params,
'id': 1
}
)
return response.json()
# Store a memory
call_frequency('freq_memory_store', {
'key': 'project-context',
'content': 'Working on e-commerce app with React',
'type': 'fact'
})
# Search memories
results = call_frequency('freq_memory_search', {
'query': 'react',
'limit': 5
})
SDKs & Libraries
Rate Limits
Rate limits are returned in response headers:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 995
X-RateLimit-Reset: 2026-02-24T23:59:59Z
Error Handling
Errors follow JSON-RPC format:
{
"jsonrpc": "2.0",
"error": {
"code": -32600,
"message": "Rate limit exceeded"
},
"id": 1
}
| Code | Meaning |
|---|---|
-32600 | Invalid request / Rate limit exceeded |
-32601 | Method not found |
-32602 | Invalid params |
-32603 | Internal error |
Need Help?
Check your usage and API keys at app.ronimotors.co.il