getMe MCP Server
An MCP server that exposes getMe key-value operations as Model Context Protocol (MCP) tools, enabling LLMs to talk to the getMe core database over HTTP via a Unix Domain Socket (UDS).
🔗 Quick Links
- GitHub Repository: AatirNadim/getMe
- PyPI Package: getme-mcp-server
- Core Database Docs: Architecture & Deep Dive
- DockerHub Image: getme
- Blog Part I - Building getMe: Read here!
- Blog Part II - Building getMe: Read here!
Using the MCP Server
The getme-mcp-server package is published on PyPI. For integration with MCP-compatible clients like Claude Desktop, Cursor, or the MCP Inspector, you can seamlessly run it using uvx or pipx.
Claude Desktop Configuration
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"getme": {
"command": "uvx",
"args": ["getme-mcp-server"],
"env": {
"GETME_SOCKET_PATH": "/tmp/getMeStore/sockDir/getMe.sock",
"GETME_KEY_PREFIX": "agent-context:",
"GETME_READ_ONLY": "false"
}
}
}
}
Opencode Configuration
For Opencode, the MCP configuration format differs slightly from Claude. Add the following to your opencode.json (or ~/.config/opencode/opencode.json):
{
"mcp": {
"getme": {
"type": "local",
"command": ["uvx", "getme-mcp-server"],
"env": {
"GETME_SOCKET_PATH": "/tmp/getMeStore/sockDir/getMe.sock",
"GETME_KEY_PREFIX": "agent-context:",
"GETME_READ_ONLY": "false"
}
}
}
}
Key differences from Claude:
- Uses
"mcp"at the top level instead of"mcpServers". - Requires
"type": "local". - The
commandis an array that includes both the executable and its arguments (e.g.,["uvx", "getme-mcp-server"]), whereas Claude separates them into"command"(string) and"args"(array).
Core Engine Lifecycle & Management
The MCP Server acts as a client bridge to the getMe database and does not manage the lifecycle of the core engine daemon.
- Manual Startup: If you manually start the
getMecore engine, you are responsible for terminating it. - Client/Agent Startup: If an MCP-compatible client (or an AI agent) runs an initialization script to start the database server, the daemon runs independently. When you close the MCP client, the
getme-mcp-serverprocess will cleanly terminate, but thegetMecore engine daemon will continue running in the background. It falls on the user to manually terminate the daemon when it is no longer needed.
Features & Safety
- Read-Only Mode: Ensure LLMs don't mutate data via
GETME_READ_ONLY=true. - Destructive Operation Guards: The
cleartool is disabled by default, ensuring agents can't accidentally drop the store. - Payload & Connection Limits: Defends against massive payloads/batches and re-uses HTTP connections for performance.
- Prefix Isolation: Restrict the LLM to a specific namespace in the DB with
GETME_KEY_PREFIX. - Masked Logging: Tool execution metadata is logged, but payloads are masked to prevent leaking secrets.
Configuration (Environment Variables)
Control safety rules and performance via environment variables.
GETME_SOCKET_PATH(default:/tmp/getMeStore/sockDir/getMe.sock): Path to the UNIX socket used by the core getMe daemon.GETME_READ_ONLY(default:false): Iftrue, onlygetandget_jsontools are registered.GETME_ALLOW_CLEAR(default:false): Iftrue, enables the dangerouscleartool.GETME_KEY_PREFIX(default:""): String prefix prepended to all keys. Sandboxes the LLM (e.g.,agent1:).GETME_MAX_VALUE_SIZE_BYTES(default:5242880/ 5MB): Limit on single value payload sizes.GETME_MAX_BATCH_ITEMS(default:100): Maximum keys processed in onebatch_put.
Best Practices
- Sandbox with Prefixes: Always use
GETME_KEY_PREFIXwhen handing the database over to an LLM. For instance, usingGETME_KEY_PREFIX="claude:"ensures the model can't overwrite core application data. - Restrict Privileges: If the agent only needs context (e.g., fetching RAG documents or reading app state), enforce
GETME_READ_ONLY=true. - Never Allow Clear: Keep
GETME_ALLOW_CLEAR=false(the default) in production environments to prevent catastrophic drops caused by hallucinated commands. - Volume Mounts: Make sure the environment running the MCP server has adequate read/write permissions to the
GETME_SOCKET_PATH.
Tools
Once connected, the LLM has access to the following operations:
get(key) -> strget_json(key) -> objectput(key, value) -> strput_json(key, json_value) -> strdelete(key) -> strclear() -> str(RequiresGETME_ALLOW_CLEAR=true)batch_put(pairs: object) -> objectbatch_get(keys: list) -> objectbatch_delete(keys: list) -> object
Development & Installation
Prereqs
uvinstalledgetMecore server running and listening on the Unix socket
Install from Source
cd mcp-server
uv sync
Fixing VS Code "package not installed" warnings
If Pylance shows warnings like Package "httpx" is not installed in the selected environment, VS Code is using a different Python interpreter than the uv virtualenv.
- Open Command Palette →
Python: Select Interpreter - Select:
getMe/mcp-server/.venv/bin/python
This repo also includes a workspace setting that points the interpreter at mcp-server/.venv.
Run Locally
cd mcp-server
# optional override
export GETME_SOCKET_PATH=/tmp/getMeStore/sockDir/getMe.sock
uv run getme-mcp-server
Docker deployment
This MCP server speaks stdio (JSON-RPC), so when running in Docker you must avoid allocating a TTY.
Build the image:
cd mcp-server
docker compose build
Run it over stdio (recommended for MCP clients):
cd mcp-server
docker compose run --rm -T getme-mcp-server
The compose file bind-mounts the host UDS directory:
- host:
/tmp/getMeStore/sockDir - container:
/tmp/getMeStore/sockDir
So the MCP server can reach the core getMe server via GETME_SOCKET_PATH=/tmp/getMeStore/sockDir/getMe.sock.
Metadata
Release files for getme-mcp-server 1.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| getme_mcp_server-1.1.2.tar.gz | 68.9 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| getme_mcp_server-1.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 78.3 kB
Release files / getme_mcp_server-1.1.2.tar.gz
| Download URL | getme_mcp_server-1.1.2.tar.gz |
|---|---|
| Size | 68.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
263726374e5aee611df5dd5544a00f4c1f12fde2e27a3aa1c597ae5ab6abe47c
|
|
BLAKE2b-256 checksum How to use checksums |
74d7dbad51bb50d33d5edd45c2565494aebd6a43f8613c82318bbe8c58cd1e3b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 10, 2026.
Transparency logRelease files / getme_mcp_server-1.1.2-py3-none-any.whl
| Download URL | getme_mcp_server-1.1.2-py3-none-any.whl |
|---|---|
| Size | 9.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f1036e4e5826e8982aa62c83db819f26398e3a756a14065836dd5fa318a6b0ab
|
|
BLAKE2b-256 checksum How to use checksums |
b6b9279ab249bc2e2148909225e5779df4d3e7e410ee60d90004a2966a85631e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 10, 2026.
Transparency logSecurity for getme-mcp-server 1.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for getme_mcp_server-1.1.2.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 10, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.