Skip to main content

FastMCP bridge for a self-hosted Mem0 REST API

Project description

mem0-selfhosted-fastmcp

Thin FastMCP bridge for a self-hosted Mem0 REST API.

It fetches the live OpenAPI spec from a Mem0 server, prunes it to the useful memory operations, and exposes those endpoints as MCP tools for OpenCode or other MCP clients.

Implementation note:

  • this uses FastMCP's official OpenAPI integration via FastMCP.from_openapi
  • there is no handwritten MCP protocol layer here; the bridge is generated from the live Mem0 OpenAPI spec at startup and then lightly curated (path pruning plus friendly MCP tool names)

Scope

Exposed tools:

  • add_memory
  • list_memories
  • search_memories
  • get_memory
  • update_memory
  • delete_memory
  • delete_all_memories
  • memory_history
  • list_entities
  • delete_entity

Excluded on purpose:

  • auth/login/refresh flows
  • setup/bootstrap endpoints
  • admin/configure/request-log endpoints

Environment

Required:

  • MEM0_BASE_URL (default: http://mem0-memory:8765)
  • one of:
    • MEM0_API_KEY (sent as X-API-Key)
    • MEM0_BEARER_TOKEN (sent as Authorization: Bearer ...)

Optional:

  • FASTMCP_TRANSPORT (stdio by default)
  • HOST / PORT for HTTP transports

Install

Published package:

Install with uvx (recommended for MCP clients):

uvx mem0-selfhosted-fastmcp --help

Install into a Python environment:

uv pip install mem0-selfhosted-fastmcp

or:

pip install mem0-selfhosted-fastmcp

Usage

Stdio mode for OpenCode-style spawning:

MEM0_BASE_URL=http://mem0-memory:8765 \
MEM0_API_KEY=... \
uvx mem0-selfhosted-fastmcp

Dump the pruned OpenAPI used for generation:

MEM0_BASE_URL=http://mem0-memory:8765 \
MEM0_API_KEY=... \
uvx mem0-selfhosted-fastmcp --dump-openapi

Run as HTTP MCP server:

MEM0_BASE_URL=http://mem0-memory:8765 \
MEM0_API_KEY=... \
uvx mem0-selfhosted-fastmcp --transport streamable-http --port 8081

Maintenance

Because the bridge loads the live OpenAPI spec at startup, many Mem0 API changes are picked up automatically without code generation. The places most likely to need manual updates are:

  • path allowlist changes in server.py
  • operationId -> MCP name mappings when upstream operationIds change
  • auth header strategy if Mem0 auth changes

Helpful targets:

make sync              # install/update dependencies
make dump-openapi      # print the pruned live OpenAPI used by the bridge
make snapshot-openapi  # save the current pruned live OpenAPI to generated/
make check-live        # smoke-test server creation against the live Mem0 API
make run               # stdio mode for OpenCode
make run-http          # streamable-http mode for shared/server use

OpenCode MCP example

[servers.mem0]
transport = "stdio"
command = "uvx"
args = ["mem0-selfhosted-fastmcp"]
env.MEM0_BASE_URL = "http://mem0-memory:8765"
env.MEM0_API_KEY = "${MEM0_API_KEY}"

For a pinned version:

[servers.mem0]
transport = "stdio"
command = "uvx"
args = ["mem0-selfhosted-fastmcp==0.1.1"]
env.MEM0_BASE_URL = "http://mem0-memory:8765"
env.MEM0_API_KEY = "${MEM0_API_KEY}"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mem0_selfhosted_fastmcp-0.1.3.tar.gz (53.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mem0_selfhosted_fastmcp-0.1.3-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file mem0_selfhosted_fastmcp-0.1.3.tar.gz.

File metadata

  • Download URL: mem0_selfhosted_fastmcp-0.1.3.tar.gz
  • Upload date:
  • Size: 53.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mem0_selfhosted_fastmcp-0.1.3.tar.gz
Algorithm Hash digest
SHA256 2badfd6bd4cfff2d64bfa0adb7d83dc014d4b3b5a692b137d625f713bc70bd94
MD5 65d2e75e4033390c459d6d43d8036990
BLAKE2b-256 41e1e79cff80e6bfcce6c39cbcf9d689e7142370ae2d71b8556add2213b8c9a1

See more details on using hashes here.

File details

Details for the file mem0_selfhosted_fastmcp-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: mem0_selfhosted_fastmcp-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mem0_selfhosted_fastmcp-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b2f532f7bc788daf9f1cc4c2fe3d2b3169018b85a5d2dbcf00f601db8f3cf071
MD5 bbaee4e6d601a1d32ee45a88debb6f6b
BLAKE2b-256 435827bf6f2eb4c89151ede5c32a37657131f0abf21a0636beac3b2b61dda22d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page