Skip to main content
Glama
██╗      ██████╗  ██████╗  ██████╗ ███████╗
██║     ██╔═══██╗██╔════╝ ██╔═══██╗██╔════╝
██║     ██║   ██║██║  ███╗██║   ██║███████╗
██║     ██║   ██║██║   ██║██║   ██║╚════██║
███████╗╚██████╔╝╚██████╔╝╚██████╔╝███████║
╚══════╝ ╚═════╝  ╚═════╝  ╚═════╝ ╚══════╝

        ███████╗██╗     ██╗   ██╗██╗  ██╗
        ██╔════╝██║     ██║   ██║╚██╗██╔╝
        █████╗  ██║     ██║   ██║ ╚███╔╝ 
        ██╔══╝  ██║     ██║   ██║ ██╔██╗ 
        ██║     ███████╗╚██████╔╝██╔╝ ██╗
        ╚═╝     ╚══════╝ ╚═════╝ ╚═╝  ╚═╝

Mnemo

Gemini 컨텍스트 캐싱을 통한 AI 어시스턴트용 확장 메모리.

Mnemo(그리스어: 기억)는 Gemini의 1M 토큰 컨텍스트 윈도우와 컨텍스트 캐싱 기능을 활용하여 Claude와 같은 AI 어시스턴트가 대규모 코드베이스, 문서 사이트, PDF 등에 접근할 수 있도록 합니다.

왜 Mnemo인가요?

임베딩과 검색을 사용하는 복잡한 RAG 파이프라인 대신, Mnemo는 더 간단한 접근 방식을 취합니다:

  • 전체 코드베이스를 Gemini의 컨텍스트 캐시에 로드

  • 자연어로 쿼리

  • Gemini가 컨텍스트를 유지하는 동안 Claude가 오케스트레이션 수행

이를 통해 얻을 수 있는 이점:

  • 완벽한 리콜 - 청킹이나 검색 과정이 없으므로 컨텍스트 손실이 없음

  • 낮은 지연 시간 - 캐시된 컨텍스트가 빠르게 제공됨

  • 비용 절감 - 캐시된 토큰은 일반 입력 토큰보다 75-90% 저렴함

  • 단순성 - 벡터 데이터베이스, 임베딩 또는 복잡한 검색 로직이 필요 없음

Related MCP server: Heimdall MCP Server

Mnemo가 로드할 수 있는 것은 무엇인가요?

소스

로컬 서버

워커

GitHub 저장소 (공개)

✅

✅

GitHub 저장소 (비공개)

✅

✅

모든 URL (문서, 기사)

✅

✅

PDF 문서

✅

✅

JSON API

✅

✅

로컬 파일/디렉토리

✅

❌

다중 페이지 크롤링

✅ 무제한

✅ 최대 40페이지

배포 옵션

Mnemo는 필요에 따라 세 가지 방식으로 배포할 수 있습니다.

옵션 1: 로컬 서버 (개발 및 전체 기능)

개발 및 로컬 파일을 로드해야 할 때 가장 적합합니다.

# Clone and install
git clone https://github.com/logos-flux/mnemo
cd mnemo
bun install

# Set your Gemini API key
export GEMINI_API_KEY=your_key_here

# Start the server
bun run dev

Claude Code MCP 설정:

{
  "mcpServers": {
    "mnemo": {
      "type": "http",
      "url": "http://localhost:8080/mcp"
    }
  }
}

옵션 2: 자체 호스팅 Cloudflare Worker (Claude.ai 권장)

본인의 Cloudflare 계정에 배포하세요. 데이터와 비용을 직접 제어할 수 있습니다.

사전 요구 사항:

# Clone and install
git clone https://github.com/logos-flux/mnemo
cd mnemo/packages/cf-worker

# Configure secrets
bunx wrangler secret put GEMINI_API_KEY
bunx wrangler secret put MNEMO_AUTH_TOKEN  # Optional but recommended

# Create D1 database
bunx wrangler d1 create mnemo-cache

# Deploy
bunx wrangler deploy

Claude.ai MCP 설정:

{
  "mcpServers": {
    "mnemo": {
      "type": "http",
      "url": "https://mnemo.<your-subdomain>.workers.dev/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_AUTH_TOKEN"
      }
    }
  }
}

왜 이 방식을 사용하나요? Claude.ai는 localhost에 연결할 수 없습니다. Worker는 Claude.ai가 접근할 수 있는 외부 엔드포인트를 제공합니다.


옵션 3: 관리형 호스팅 (VIP)

인프라를 직접 관리하고 싶지 않으신가요? 일부 고객을 위해 완전히 관리되는 Mnemo 호스팅을 제공합니다.

포함 사항:

  • 전용 Worker 배포

  • 우선 지원

  • 사용자 지정 도메인

  • 사용량 모니터링

문의: 가격 및 이용 가능 여부는 lf@logosflux.io로 문의하세요.


사용 예시

# Load a GitHub repo
curl -X POST http://localhost:8080/tools/context_load \
  -H "Content-Type: application/json" \
  -d '{"source": "https://github.com/honojs/hono", "alias": "hono"}'

# Load a documentation site (crawls up to token target)
curl -X POST http://localhost:8080/tools/context_load \
  -H "Content-Type: application/json" \
  -d '{"source": "https://hono.dev/docs", "alias": "hono-docs"}'

# Load a PDF
curl -X POST http://localhost:8080/tools/context_load \
  -H "Content-Type: application/json" \
  -d '{"source": "https://arxiv.org/pdf/2303.08774.pdf", "alias": "gpt4-paper"}'

# Load a private repo (with GitHub token)
curl -X POST http://localhost:8080/tools/context_load \
  -H "Content-Type: application/json" \
  -d '{"source": "https://github.com/owner/private-repo", "alias": "private", "githubToken": "ghp_xxx"}'

# Load multiple sources into one cache
curl -X POST http://localhost:8080/tools/context_load \
  -H "Content-Type: application/json" \
  -d '{"sources": ["https://github.com/owner/repo", "https://docs.example.com"], "alias": "combined"}'

# Query the cache
curl -X POST http://localhost:8080/tools/context_query \
  -H "Content-Type: application/json" \
  -d '{"alias": "hono", "query": "How do I add middleware?"}'

# List active caches
curl -X POST http://localhost:8080/tools/context_list \
  -H "Content-Type: application/json" -d '{}'

# Get usage stats with cost tracking
curl -X POST http://localhost:8080/tools/context_stats \
  -H "Content-Type: application/json" -d '{}'

# Evict when done
curl -X POST http://localhost:8080/tools/context_evict \
  -H "Content-Type: application/json" \
  -d '{"alias": "hono"}'

CLI

# Start server
mnemo serve

# Start MCP stdio transport (for Claude Desktop)
mnemo stdio

# Load a project
mnemo load ./my-project my-proj

# Query
mnemo query my-proj "What's the main entry point?"

# List caches
mnemo list

# Remove cache
mnemo evict my-proj

MCP 도구

도구

설명

context_load

GitHub 저장소, URL, PDF 또는 로컬 디렉토리를 Gemini 캐시에 로드

context_query

자연어로 캐시된 컨텍스트 쿼리

context_list

토큰 수 및 만료 시간을 포함한 모든 활성 캐시 나열

context_evict

캐시 제거

context_stats

비용 추적을 포함한 사용 통계 가져오기

context_refresh

최신 콘텐츠로 캐시 새로 고침

context_load 매개변수

매개변수

설명

source

단일 소스: GitHub URL, 모든 URL 또는 로컬 경로

sources

하나의 캐시로 결합할 여러 소스

alias

이 캐시의 친숙한 이름 (1-64자)

ttl

유지 시간(초) (60-86400, 기본값 3600)

githubToken

비공개 저장소를 위한 GitHub 토큰

systemInstruction

쿼리를 위한 사용자 지정 시스템 프롬프트

구성

변수

설명

기본값

GEMINI_API_KEY

Gemini API 키

필수

MNEMO_PORT

서버 포트 (로컬 전용)

8080

MNEMO_DIR

데이터 디렉토리 (로컬 전용)

~/.mnemo

MNEMO_AUTH_TOKEN

보호된 엔드포인트를 위한 인증 토큰

없음

인증

MNEMO_AUTH_TOKEN이 구성되면 /mcp 및 /tools/* 엔드포인트는 인증이 필요합니다:

# Set auth token (Workers)
bunx wrangler secret put MNEMO_AUTH_TOKEN

# Requests must include header:
Authorization: Bearer your-token-here

공용 엔드포인트 (인증 불필요):

  • GET /health - 상태 확인

  • GET / - 서비스 정보

  • GET /tools - 사용 가능한 도구 나열

비용

배포 옵션과 관계없이 Gemini API 사용료는 항상 지불해야 합니다. Mnemo는 표준 입력보다 훨씬 저렴한 Gemini의 컨텍스트 캐싱을 사용합니다:

리소스

비용

캐시 저장소

시간당 1M 토큰당 약 $4.50

캐시된 입력

일반 입력 대비 75-90% 할인

일반 입력

1M 토큰당 약 $0.075 (Flash)

예시: 100K 토큰 코드베이스를 1시간 동안 캐시하고 10번 쿼리 시 ≈ $0.47

Cloudflare 비용 (자체 호스팅):

  • Workers: 무료 티어는 일일 100K 요청 포함

  • D1: 무료 티어는 일일 5M 읽기 포함

  • 적당한 사용량의 경우 비용은 거의 $0

아키텍처

┌─────────────────────────────────────────────────────────────┐
│                         Mnemo                                │
├─────────────────────────────────────────────────────────────┤
│  MCP Tools                                                   │
│  • context_load    - Load into Gemini cache                 │
│  • context_query   - Query cached context                   │
│  • context_list    - Show active caches                     │
│  • context_evict   - Remove cache                           │
│  • context_stats   - Token usage, costs                     │
│  • context_refresh - Reload cache                           │
├─────────────────────────────────────────────────────────────┤
│  Adapters (v0.2)                                             │
│  • GitHub repos (via API)                                   │
│  • URL loading (HTML, PDF, JSON, text)                      │
│  • Token-targeted crawling                                  │
│  • robots.txt compliance                                    │
├─────────────────────────────────────────────────────────────┤
│  Packages                                                    │
│  • @mnemo/core      - Gemini client, loaders, adapters      │
│  • @mnemo/mcp-server - MCP protocol handling                │
│  • @mnemo/cf-worker - Cloudflare Workers deployment         │
│  • @mnemo/local     - Bun-based local server                │
└─────────────────────────────────────────────────────────────┘

라이선스

MIT

크레딧

제작: Logos Flux | Voltage Labs

Related MCP Connectors

Related MCP Servers