better-mem0-mcp 1.1.0b21__py3-none-any.whl → 1.1.0b23__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
better_mem0_mcp/config.py CHANGED
@@ -33,43 +33,36 @@ class Settings(BaseSettings):
33
33
  embedder_models: str = "gemini/gemini-embedding-001"
34
34
 
35
35
  def setup_api_keys(self) -> dict[str, list[str]]:
36
- """
37
- Parse API_KEYS and set environment variables for LiteLLM.
36
+ """Parse API_KEYS (format: ENV_VAR:key,...) and set env vars.
37
+
38
+ Example:
39
+ API_KEYS="GOOGLE_API_KEY:abc,GOOGLE_API_KEY:def,OPENAI_API_KEY:xyz"
38
40
 
39
41
  Returns:
40
- Dict mapping provider to list of API keys.
42
+ Dict mapping env var name to list of API keys.
41
43
  """
42
- env_map = {
43
- "gemini": "GOOGLE_API_KEY",
44
- "openai": "OPENAI_API_KEY",
45
- "anthropic": "ANTHROPIC_API_KEY",
46
- "groq": "GROQ_API_KEY",
47
- "deepseek": "DEEPSEEK_API_KEY",
48
- "mistral": "MISTRAL_API_KEY",
49
- }
50
-
51
- keys_by_provider: dict[str, list[str]] = {}
44
+ keys_by_env: dict[str, list[str]] = {}
52
45
 
53
46
  for pair in self.api_keys.split(","):
54
47
  pair = pair.strip()
55
48
  if ":" not in pair:
56
49
  continue
57
50
 
58
- provider, key = pair.split(":", 1)
59
- provider = provider.strip().lower()
51
+ env_var, key = pair.split(":", 1)
52
+ env_var = env_var.strip()
60
53
  key = key.strip()
61
54
 
62
55
  if not key:
63
56
  continue
64
57
 
65
- keys_by_provider.setdefault(provider, []).append(key)
58
+ keys_by_env.setdefault(env_var, []).append(key)
66
59
 
67
- # Set first key of each provider as env var (LiteLLM reads from env)
68
- for provider, keys in keys_by_provider.items():
69
- if provider in env_map and keys:
70
- os.environ[env_map[provider]] = keys[0]
60
+ # Set first key of each env var (LiteLLM reads from env)
61
+ for env_var, keys in keys_by_env.items():
62
+ if keys:
63
+ os.environ[env_var] = keys[0]
71
64
 
72
- return keys_by_provider
65
+ return keys_by_env
73
66
 
74
67
  def parse_database_url(self) -> dict:
75
68
  """Parse DATABASE_URL into connection parameters."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: better-mem0-mcp
3
- Version: 1.1.0b21
3
+ Version: 1.1.0b23
4
4
  Summary: Zero-setup MCP Server for AI memory - works with Neon/Supabase
5
5
  Project-URL: Homepage, https://github.com/n24q02m/better-mem0-mcp
6
6
  Project-URL: Repository, https://github.com/n24q02m/better-mem0-mcp.git
@@ -17,7 +17,7 @@ Classifier: Operating System :: OS Independent
17
17
  Classifier: Programming Language :: Python :: 3
18
18
  Classifier: Programming Language :: Python :: 3.13
19
19
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
- Requires-Python: >=3.13
20
+ Requires-Python: ==3.13.*
21
21
  Requires-Dist: google-genai>=1.0.0
22
22
  Requires-Dist: litellm>=1.0.0
23
23
  Requires-Dist: loguru>=0.7.0
@@ -64,7 +64,7 @@ Description-Content-Type: text/markdown
64
64
  "args": ["better-mem0-mcp@latest"],
65
65
  "env": {
66
66
  "DATABASE_URL": "postgresql://user:pass@xxx.neon.tech/neondb?sslmode=require",
67
- "API_KEYS": "gemini:AIza..."
67
+ "API_KEYS": "GOOGLE_API_KEY:AIza..."
68
68
  }
69
69
  }
70
70
  }
@@ -81,7 +81,7 @@ Description-Content-Type: text/markdown
81
81
  "args": ["run", "-i", "--rm", "-e", "DATABASE_URL", "-e", "API_KEYS", "n24q02m/better-mem0-mcp:latest"],
82
82
  "env": {
83
83
  "DATABASE_URL": "postgresql://...",
84
- "API_KEYS": "gemini:AIza..."
84
+ "API_KEYS": "GOOGLE_API_KEY:AIza..."
85
85
  }
86
86
  }
87
87
  }
@@ -99,24 +99,23 @@ Ask your AI: "Remember that I prefer dark mode and use FastAPI"
99
99
  | Variable | Required | Description |
100
100
  |----------|----------|-------------|
101
101
  | `DATABASE_URL` | Yes | PostgreSQL with pgvector extension |
102
- | `API_KEYS` | Yes | `provider:key` pairs, comma-separated |
102
+ | `API_KEYS` | Yes | `ENV_VAR:key` pairs, comma-separated |
103
103
  | `LLM_MODELS` | No | Model fallback chain |
104
104
  | `EMBEDDER_MODELS` | No | Embedding model chain |
105
105
 
106
- ### Supported Providers
106
+ ### Supported LiteLLM Providers
107
107
 
108
- `gemini`, `openai`, `anthropic`, `groq`, `deepseek`, `mistral`
109
-
110
- ### Examples
108
+ Use environment variable names from [LiteLLM docs](https://docs.litellm.ai/):
109
+ `GOOGLE_API_KEY`, `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `GROQ_API_KEY`, etc.
111
110
 
112
111
  **Single provider:**
113
112
  ```bash
114
- API_KEYS=gemini:AIza...
113
+ API_KEYS=GOOGLE_API_KEY:AIza...
115
114
  ```
116
115
 
117
116
  **Multi-key with fallback:**
118
117
  ```bash
119
- API_KEYS=gemini:AIza-1,gemini:AIza-2,openai:sk-xxx
118
+ API_KEYS=GOOGLE_API_KEY:AIza-1,GOOGLE_API_KEY:AIza-2,OPENAI_API_KEY:sk-xxx
120
119
  LLM_MODELS=gemini/gemini-3-flash-preview,openai/gpt-4o-mini
121
120
  EMBEDDER_MODELS=gemini/gemini-embedding-001,openai/text-embedding-3-small
122
121
  ```
@@ -1,12 +1,12 @@
1
1
  better_mem0_mcp/__init__.py,sha256=fcqgbz2HvMCPidqqoPvtRky5pGIHP2w9oVim7UQkuBc,106
2
2
  better_mem0_mcp/__main__.py,sha256=IeeRidmZF4oBaamjQM6FUbhXpsSdE4sQF_6y_D2GEE4,116
3
- better_mem0_mcp/config.py,sha256=vgKLIw3jHyeBLTzzBnuHV5x6Nra0Rbav1IJRL8rLCuk,5576
3
+ better_mem0_mcp/config.py,sha256=cqLGzxYno7SgRMn7Y8GOBR0P4CrBuFjsmFpK6eGZhs0,5312
4
4
  better_mem0_mcp/graph.py,sha256=rE9z6XECiAktEqDNgmwqCpFpvKSn3azO9H4sRBhj8UU,6195
5
5
  better_mem0_mcp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  better_mem0_mcp/server.py,sha256=QYLP46pz0U9gkxQKB_g8FMga77ywElMMjSCU-hGZQ-M,5499
7
7
  better_mem0_mcp/docs/memory.md,sha256=198dDuAGccG5Ca7rhEXIU03ZhxNKK44B_Brl2glurGc,1608
8
- better_mem0_mcp-1.1.0b21.dist-info/METADATA,sha256=UPLzfj_0duOqDHdUY9uP0hxLAjhCRp9rV02T8ii633s,4543
9
- better_mem0_mcp-1.1.0b21.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
10
- better_mem0_mcp-1.1.0b21.dist-info/entry_points.txt,sha256=2b7E3D6yo94mQXP2Ms0bhUlWkK9f664f0GrstImOq30,57
11
- better_mem0_mcp-1.1.0b21.dist-info/licenses/LICENSE,sha256=d7xQ6sRyeGus6gnvwgqiQtSY7XdFw0Jd0w5-Co_xHnk,1064
12
- better_mem0_mcp-1.1.0b21.dist-info/RECORD,,
8
+ better_mem0_mcp-1.1.0b23.dist-info/METADATA,sha256=wzxhitb86HRdHqbGPMAQ4d40TgKCRcfqT1vT_SYSspM,4679
9
+ better_mem0_mcp-1.1.0b23.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
10
+ better_mem0_mcp-1.1.0b23.dist-info/entry_points.txt,sha256=2b7E3D6yo94mQXP2Ms0bhUlWkK9f664f0GrstImOq30,57
11
+ better_mem0_mcp-1.1.0b23.dist-info/licenses/LICENSE,sha256=d7xQ6sRyeGus6gnvwgqiQtSY7XdFw0Jd0w5-Co_xHnk,1064
12
+ better_mem0_mcp-1.1.0b23.dist-info/RECORD,,