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.2.tar.gz (52.2 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.2-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mem0_selfhosted_fastmcp-0.1.2.tar.gz
  • Upload date:
  • Size: 52.2 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.2.tar.gz
Algorithm Hash digest
SHA256 e31e4b4157cd48387d10a67466504c950375b6f585ed1b9b9ef75230e78907b7
MD5 ea47170a04ad5ea88c676a3905ed9d09
BLAKE2b-256 80c4c82b6b9703edb52278fb87b8c869833937a3dea244dc5dc31215fffaef82

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mem0_selfhosted_fastmcp-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 4.4 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9a5cdd344526f1c2a77ec12ed58317aa574e741fccdff80be89a1d1d56eaf1ba
MD5 e9ec2a66fe06b648428933d3ff63c341
BLAKE2b-256 4d8032eb90846c405ef12de38be22d107d96ebb089b324e5755e6a61010cf39d

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