Documentation

Learn how to integrate Frequency Memory API into your AI agents and applications.

Quickstart

Get up and running in 5 minutes.

1

Get your API key

Sign up at app.ronimotors.co.il to get your free API key.

2

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
  }'
3

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"
      }
    }
  }
}
Alternative: Direct HTTP If you prefer not to use npx, you can call the API directly via HTTP from your code.

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:

ToolDescription
freq_memory_storeStore a memory with key, content, type, and tags
freq_memory_recallRecall a memory by key
freq_memory_searchSearch memories by query or tags
freq_encodeEncode thoughts as frequency patterns
freq_decodeDecode frequency patterns back to text
freq_session_createCreate a reasoning session
freq_session_observeAdd observation to session
freq_session_reflectAdd reflection/analysis to session
freq_session_decideRecord a decision in session
freq_session_completeComplete session and get handle
freq_usageCheck 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

Coming Soon Official SDKs for JavaScript, Python, and Go are in development. For now, use the HTTP API directly.

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
}
CodeMeaning
-32600Invalid request / Rate limit exceeded
-32601Method not found
-32602Invalid params
-32603Internal error

Need Help?

Check your usage and API keys at app.ronimotors.co.il