mem0-open-mcp 0.1.0__tar.gz → 0.1.2__tar.gz

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.
Files changed (23) hide show
  1. mem0_open_mcp-0.1.2/.github/workflows/publish.yml +36 -0
  2. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/Dockerfile +3 -3
  3. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/PKG-INFO +7 -3
  4. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/README.md +6 -2
  5. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/docker-compose.yaml +3 -3
  6. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/pyproject.toml +1 -1
  7. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/src/mem0_server/cli.py +25 -25
  8. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/src/mem0_server/config/loader.py +4 -4
  9. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/.env.example +0 -0
  10. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/.gitignore +0 -0
  11. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/examples/ollama-config.yaml +0 -0
  12. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/mem0-open-mcp.example.yaml +0 -0
  13. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/src/mem0_server/__init__.py +0 -0
  14. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/src/mem0_server/api/__init__.py +0 -0
  15. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/src/mem0_server/api/routes.py +0 -0
  16. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/src/mem0_server/config/__init__.py +0 -0
  17. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/src/mem0_server/config/schema.py +0 -0
  18. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/src/mem0_server/mcp/__init__.py +0 -0
  19. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/src/mem0_server/mcp/server.py +0 -0
  20. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/src/mem0_server/server.py +0 -0
  21. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/src/mem0_server/utils/__init__.py +0 -0
  22. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/tests/test_api.py +0 -0
  23. {mem0_open_mcp-0.1.0 → mem0_open_mcp-0.1.2}/tests/test_config.py +0 -0
@@ -0,0 +1,36 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ jobs:
9
+ publish:
10
+ runs-on: ubuntu-latest
11
+ environment: pypi
12
+ permissions:
13
+ id-token: write
14
+ contents: write
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+
18
+ - name: Set up Python
19
+ uses: actions/setup-python@v5
20
+ with:
21
+ python-version: "3.11"
22
+
23
+ - name: Install build tools
24
+ run: pip install build
25
+
26
+ - name: Build package
27
+ run: python -m build
28
+
29
+ - name: Publish to PyPI
30
+ uses: pypa/gh-action-pypi-publish@release/v1
31
+
32
+ - name: Create GitHub Release
33
+ uses: softprops/action-gh-release@v2
34
+ with:
35
+ generate_release_notes: true
36
+ files: dist/*
@@ -15,7 +15,7 @@ COPY src/ ./src/
15
15
  RUN pip install --no-cache-dir -e .
16
16
 
17
17
  # Copy example config
18
- COPY mem0-server.example.yaml /app/mem0-server.yaml
18
+ COPY mem0-open-mcp.example.yaml /app/mem0-open-mcp.yaml
19
19
 
20
20
  # Expose port
21
21
  EXPOSE 8765
@@ -25,5 +25,5 @@ HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
25
25
  CMD curl -f http://localhost:8765/health || exit 1
26
26
 
27
27
  # Run server
28
- ENTRYPOINT ["mem0-server"]
29
- CMD ["serve", "--config", "/app/mem0-server.yaml"]
28
+ ENTRYPOINT ["mem0-open-mcp"]
29
+ CMD ["serve", "--config", "/app/mem0-open-mcp.yaml"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mem0-open-mcp
3
- Version: 0.1.0
3
+ Version: 0.1.2
4
4
  Summary: Open-source MCP server for mem0 - local LLMs, self-hosted, Docker-free
5
5
  Author: Alex
6
6
  License-Expression: Apache-2.0
@@ -59,10 +59,14 @@ Created because the official `mem0-mcp` configuration wasn't working properly fo
59
59
 
60
60
  ### Installation
61
61
 
62
- Install from source:
62
+ ```bash
63
+ pip install mem0-open-mcp
64
+ ```
65
+
66
+ Or install from source:
63
67
 
64
68
  ```bash
65
- git clone https://github.com/yourname/mem0-open-mcp.git
69
+ git clone https://github.com/wonseoko/mem0-open-mcp.git
66
70
  cd mem0-open-mcp
67
71
  pip install -e .
68
72
  ```
@@ -18,10 +18,14 @@ Created because the official `mem0-mcp` configuration wasn't working properly fo
18
18
 
19
19
  ### Installation
20
20
 
21
- Install from source:
21
+ ```bash
22
+ pip install mem0-open-mcp
23
+ ```
24
+
25
+ Or install from source:
22
26
 
23
27
  ```bash
24
- git clone https://github.com/yourname/mem0-open-mcp.git
28
+ git clone https://github.com/wonseoko/mem0-open-mcp.git
25
29
  cd mem0-open-mcp
26
30
  pip install -e .
27
31
  ```
@@ -11,8 +11,8 @@ services:
11
11
  - qdrant_data:/qdrant/storage
12
12
  restart: unless-stopped
13
13
 
14
- # mem0-server
15
- mem0-server:
14
+ # mem0-open-mcp
15
+ mem0-open-mcp:
16
16
  build:
17
17
  context: .
18
18
  dockerfile: Dockerfile
@@ -23,7 +23,7 @@ services:
23
23
  # For Ollama, uncomment the following:
24
24
  # - OLLAMA_HOST=http://host.docker.internal:11434
25
25
  volumes:
26
- - ./mem0-server.yaml:/app/mem0-server.yaml:ro
26
+ - ./mem0-open-mcp.yaml:/app/mem0-open-mcp.yaml:ro
27
27
  depends_on:
28
28
  - qdrant
29
29
  restart: unless-stopped
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mem0-open-mcp"
3
- version = "0.1.0"
3
+ version = "0.1.2"
4
4
  description = "Open-source MCP server for mem0 - local LLMs, self-hosted, Docker-free"
5
5
  readme = "README.md"
6
6
  license = "Apache-2.0"
@@ -1,4 +1,4 @@
1
- """CLI for mem0-server using Typer."""
1
+ """CLI for mem0-open-mcp using Typer."""
2
2
 
3
3
  from __future__ import annotations
4
4
 
@@ -22,7 +22,7 @@ from mem0_server.config import (
22
22
  )
23
23
 
24
24
  app = typer.Typer(
25
- name="mem0-server",
25
+ name="mem0-open-mcp",
26
26
  help="Standalone MCP server for mem0 with web configuration UI.",
27
27
  add_completion=False,
28
28
  )
@@ -33,7 +33,7 @@ console = Console()
33
33
  def version_callback(value: bool) -> None:
34
34
  """Show version and exit."""
35
35
  if value:
36
- console.print(f"[bold green]mem0-server[/bold green] version [cyan]{__version__}[/cyan]")
36
+ console.print(f"[bold green]mem0-open-mcp[/bold green] version [cyan]{__version__}[/cyan]")
37
37
  raise typer.Exit()
38
38
 
39
39
 
@@ -49,7 +49,7 @@ def main(
49
49
  ),
50
50
  ] = None,
51
51
  ) -> None:
52
- """mem0-server: Standalone MCP server for mem0."""
52
+ """mem0-open-mcp: Standalone MCP server for mem0."""
53
53
  pass
54
54
 
55
55
 
@@ -87,9 +87,9 @@ def serve(
87
87
  """Start the MCP server.
88
88
 
89
89
  Examples:
90
- mem0-server serve
91
- mem0-server serve --port 8765 --user-id alice
92
- mem0-server serve --config ./my-config.yaml
90
+ mem0-open-mcp serve
91
+ mem0-open-mcp serve --port 8765 --user-id alice
92
+ mem0-open-mcp serve --config ./my-config.yaml
93
93
  """
94
94
  # Load configuration
95
95
  loader = ConfigLoader(config_file)
@@ -115,7 +115,7 @@ def serve(
115
115
 
116
116
  # Display startup info
117
117
  console.print(Panel.fit(
118
- f"[bold green]mem0-server[/bold green] v{__version__}\n"
118
+ f"[bold green]mem0-open-mcp[/bold green] v{__version__}\n"
119
119
  f"[dim]MCP server for mem0 memory management[/dim]",
120
120
  border_style="green",
121
121
  ))
@@ -135,7 +135,7 @@ def serve(
135
135
  run_server(config, loader)
136
136
  except ImportError as e:
137
137
  console.print(f"[red]Error starting server: {e}[/red]")
138
- console.print("[yellow]Make sure all dependencies are installed: pip install mem0-server[/yellow]")
138
+ console.print("[yellow]Make sure all dependencies are installed: pip install mem0-open-mcp[/yellow]")
139
139
  raise typer.Exit(1) from None
140
140
  except Exception as e:
141
141
  console.print(f"[red]Error: {e}[/red]")
@@ -161,15 +161,15 @@ def configure(
161
161
  ) -> None:
162
162
  """Interactive configuration wizard.
163
163
 
164
- Creates or edits a mem0-server configuration file with guided prompts.
164
+ Creates or edits a mem0-open-mcp configuration file with guided prompts.
165
165
 
166
166
  Examples:
167
- mem0-server configure
168
- mem0-server configure --output ./my-config.yaml
169
- mem0-server configure --config ./existing-config.yaml
167
+ mem0-open-mcp configure
168
+ mem0-open-mcp configure --output ./my-config.yaml
169
+ mem0-open-mcp configure --config ./existing-config.yaml
170
170
  """
171
171
  console.print(Panel.fit(
172
- "[bold green]mem0-server Configuration Wizard[/bold green]\n"
172
+ "[bold green]mem0-open-mcp Configuration Wizard[/bold green]\n"
173
173
  "[dim]Configure your mem0 MCP server settings[/dim]",
174
174
  border_style="green",
175
175
  ))
@@ -339,13 +339,13 @@ def configure(
339
339
  # === Save Configuration ===
340
340
  console.print()
341
341
 
342
- save_path = output or config_file or Path("mem0-server.yaml")
342
+ save_path = output or config_file or Path("mem0-open-mcp.yaml")
343
343
 
344
344
  if Confirm.ask(f"Save configuration to [cyan]{save_path}[/cyan]?", default=True):
345
345
  saved_path = loader.save(config, save_path)
346
346
  console.print(f"\n[green]✓[/green] Configuration saved to [cyan]{saved_path}[/cyan]")
347
347
  console.print("\n[dim]Start the server with:[/dim]")
348
- console.print(f" [bold]mem0-server serve --config {saved_path}[/bold]")
348
+ console.print(f" [bold]mem0-open-mcp serve --config {saved_path}[/bold]")
349
349
  else:
350
350
  console.print("[yellow]Configuration not saved.[/yellow]")
351
351
 
@@ -364,15 +364,15 @@ def status(
364
364
  """Show current configuration and status.
365
365
 
366
366
  Examples:
367
- mem0-server status
368
- mem0-server status --config ./my-config.yaml
367
+ mem0-open-mcp status
368
+ mem0-open-mcp status --config ./my-config.yaml
369
369
  """
370
370
  # Load configuration
371
371
  loader = ConfigLoader(config_file)
372
372
  config = loader.load()
373
373
 
374
374
  console.print(Panel.fit(
375
- "[bold green]mem0-server Status[/bold green]",
375
+ "[bold green]mem0-open-mcp Status[/bold green]",
376
376
  border_style="green",
377
377
  ))
378
378
 
@@ -438,7 +438,7 @@ def status(
438
438
  console.print(vs_table)
439
439
 
440
440
  # Connection test hint
441
- console.print("\n[dim]Run 'mem0-server serve' to start the server[/dim]")
441
+ console.print("\n[dim]Run 'mem0-open-mcp serve' to start the server[/dim]")
442
442
 
443
443
 
444
444
  @app.command()
@@ -448,7 +448,7 @@ def init(
448
448
  typer.Argument(
449
449
  help="Path to create configuration file.",
450
450
  ),
451
- ] = Path("mem0-server.yaml"),
451
+ ] = Path("mem0-open-mcp.yaml"),
452
452
  force: Annotated[
453
453
  bool,
454
454
  typer.Option("--force", "-f", help="Overwrite existing file."),
@@ -457,9 +457,9 @@ def init(
457
457
  """Create a default configuration file.
458
458
 
459
459
  Examples:
460
- mem0-server init
461
- mem0-server init ./config.yaml
462
- mem0-server init --force
460
+ mem0-open-mcp init
461
+ mem0-open-mcp init ./config.yaml
462
+ mem0-open-mcp init --force
463
463
  """
464
464
  if path.exists() and not force:
465
465
  console.print(f"[red]File already exists: {path}[/red]")
@@ -469,7 +469,7 @@ def init(
469
469
  saved_path = ConfigLoader.create_default_config_file(path)
470
470
  console.print(f"[green]✓[/green] Created default configuration: [cyan]{saved_path}[/cyan]")
471
471
  console.print("\n[dim]Edit the file to customize your settings, then run:[/dim]")
472
- console.print(f" [bold]mem0-server serve --config {saved_path}[/bold]")
472
+ console.print(f" [bold]mem0-open-mcp serve --config {saved_path}[/bold]")
473
473
 
474
474
 
475
475
  if __name__ == "__main__":
@@ -31,7 +31,7 @@ class ConfigLoader:
31
31
  Path("mem0-open-mcp.yaml"),
32
32
  Path("mem0-open-mcp.yml"),
33
33
  Path("mem0-open-mcp.json"),
34
- Path("mem0-server.yaml"),
34
+ Path("mem0-open-mcp.yaml"),
35
35
  Path("mem0-server.yml"),
36
36
  Path.home() / ".config" / "mem0-open-mcp" / "config.yaml",
37
37
  Path.home() / ".mem0-open-mcp.yaml",
@@ -119,7 +119,7 @@ class ConfigLoader:
119
119
  Returns:
120
120
  Path where config was saved.
121
121
  """
122
- save_path = Path(path) if path else (self.config_path or Path("mem0-server.yaml"))
122
+ save_path = Path(path) if path else (self.config_path or Path("mem0-open-mcp.yaml"))
123
123
 
124
124
  # Ensure parent directory exists
125
125
  save_path.parent.mkdir(parents=True, exist_ok=True)
@@ -214,12 +214,12 @@ class ConfigLoader:
214
214
  """Create a default configuration file.
215
215
 
216
216
  Args:
217
- path: Path to create config at. Defaults to mem0-server.yaml in current dir.
217
+ path: Path to create config at. Defaults to mem0-open-mcp.yaml in current dir.
218
218
 
219
219
  Returns:
220
220
  Path where config was created.
221
221
  """
222
- save_path = Path(path) if path else Path("mem0-server.yaml")
222
+ save_path = Path(path) if path else Path("mem0-open-mcp.yaml")
223
223
  loader = cls()
224
224
  config = get_default_config()
225
225
  return loader.save(config, save_path)
File without changes