pypi getme-mcp-serverstdioAGPL-3.0updated 2mo ago
Overview Project Structure Core Architecture Getting Started Running the Server Using the CLI HTTP Proxy MCP Server Running Benchmarks & Tests SDKs License
Was kannst du mit getMe MCP Server machen?
📑 Index
- Overview
- Project Structure
- Core Architecture
- Getting Started
- Running Benchmarks & Tests
- SDKs
- License
📖 Overview
getMe is a persistent, embeddable key-value store written in Go. It is inspired by the design of Bitcask and is optimized for high write throughput and low-latency reads.
It uses a log-structured storage approach, ensuring that all data is appended sequentially. It uses Unix Domain Sockets (UDS) for incredibly fast local inter-process communication, alongside several interfaces like an HTTP proxy, a CLI, and a Model Context Protocol (MCP) server for LLMs.
🏗 Project Structure
This project is a monorepo containing the core storage server, multiple client interfaces, and tools.
server/: The core storage daemon and engine. Implements the log-structured hash table for persistent storage. Seeserver/README.mdfor architectural deep-dives.cli/: A command-line interface for interacting with thegetMeserver for testing and debugging.sdks/: Client libraries (goSdk,javaSdk,jsSdk,pythonSdk) to integrategetMeinto your applications.http-proxy-go/: An HTTP server built using thegoSdkthat exposes the core engine's Unix Domain Socket connection over standard HTTP routes.mcp-server/: A Model Context Protocol (MCP) server that exposes thegetMedatabase as tools to Large Language Models (like Claude or Cursor).commons/: Shared code, socket paths, types, and constants used across the monorepo to ensure consistency.utils/: Shared utility packages, including logging stack configurations (Loki + Alloy + Grafana).
Spotlight: The curated inner docs are the quickest way to understand the system end-to-end. Start with
server/README.mdfor architecture fundamentals, then explore thecliandmcp-servermodules for integrations.
🧠 Core Architecture
The storage engine relies on a few core principles:
- Log-Structured Storage: All data is written to an append-only log file. This makes writes extremely fast as it avoids slow, random disk I/O.
- In-Memory Hash Index: A hash table is kept in memory, mapping each key to the exact location of its value on disk. This allows for very fast read operations (typically one disk seek).
- Compaction: A background process that periodically cleans up old, stale data from the log files to reclaim disk space.
- Fast Local Transport: Communication is done predominantly via Unix Domain Sockets, avoiding standard TCP overhead locally.
🚀 Getting Started
Running the Server
The repository ships with helper scripts to bootstrap the environment.
Option A: Local binaries + logging stack
Switch to the server module and run the local init script:
cd server
./init-server-local.sh
This script builds the Go binary into server/dist/, prepares data/log/socket directories, and starts the Loki + Alloy + Grafana logging stack via Docker Compose before launching the server in the foreground.
Warning: Do not prefix this script with
sudo. It will invoke elevated privileges internally where needed. Usingsudoat the top level causes permission errors for local development.
Option B: Full Docker Compose stack
From the same server directory run:
cd server
./init-server-docker.sh
This ensures host directories exist, exports your UID/GID, and invokes docker compose up --build to run everything in containers.
Using the CLI
Interact directly with the local server:
cd cli
go run . put mykey "hello world"
go run . get mykey
go run . delete mykey
HTTP Proxy
If you want standard HTTP REST endpoints instead of Unix Sockets, run the Go HTTP proxy:
cd http-proxy-go
go run main.go -port 8080
This will allow you to run curl http://localhost:8080/get?key=mykey.
MCP Server
getMe can be used by LLM clients (like Claude Desktop) through the Model Context Protocol.
cd mcp-server
uv run getme-mcp-server
(See mcp-server/README.md for configuration and integration instructions).
📊 Running Benchmarks & Tests
To ensure no performance regressions or to stress test the database:
- Navigate to the specific module (e.g.,
server). - Run standard tests:
go test ./... - Run benchmarks:
(Note: For heavier stress/correctness testing, look intogo test -bench . ./...server/tests/).
📦 SDKs
SDKs are available across different languages. Find them in the sdks/ directory:
All SDKs interface directly with the Unix Domain Socket to provide optimal latency.
⚠️ Note on SDK Releases: SDK versioning and publishing is managed automatically via an Ephemeral Release Structure. The CI/CD pipelines autonomously orchestrate the entire release lifecycle—from creating detached commits and tagging them, to generating changelogs and pushing builds to public registries—all from a single bump-type trigger. This keeps the main branch entirely clean of meaningless version-bump commits.
If you are exploring the code or contributing, do not manually bump versions in PRs. You can read more about this advanced architecture in the SDKs README.
📄 License
This project is licensed under the GNU Affero General Public License v3.0 (AGPLv3) - see the LICENSE file for details.
Installation
getMe MCP Server zu deinem Client hinzufügen. Wähl den, den du nutzt.
claude mcp add getme-mcp-server -- uvx getme-mcp-servercodex mcp add getme-mcp-server -- uvx getme-mcp-serveramp mcp add getme-mcp-server -- uvx getme-mcp-server{
"mcpServers": {
"getme-mcp-server": {
"command": "uvx",
"args": [
"getme-mcp-server"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"getme-mcp-server": {
"command": "uvx",
"args": [
"getme-mcp-server"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"getme-mcp-server","command":"uvx","args":["getme-mcp-server"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"getme-mcp-server": {
"command": "uvx",
"args": [
"getme-mcp-server"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"getme-mcp-server": {
"command": "uvx",
"args": [
"getme-mcp-server"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"getme-mcp-server": {
"command": "uvx",
"args": [
"getme-mcp-server"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"getme-mcp-server": {
"type": "local",
"command": "uvx",
"args": [
"getme-mcp-server"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"getme-mcp-server": {
"command": {
"path": "uvx",
"args": [
"getme-mcp-server"
]
}
}
}
}Add to your Zed `settings.json`.
uvx getme-mcp-serverRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
Score
39 / 100
Unvollständig
- Dokumentation25/25
- Pflege22/25
- Vertrauen13/20
- Funktionsumfang0/15
- Installation12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 82 days ago
- Has a release history
- Repository is not archived
- Licensed AGPL-3.0
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Versionsverlauf
| Versionen | Veröffentlicht |
|---|---|
| 1.1.2Aktuell | 10. Juni 2026 |
| 1.1.1 | 9. Juni 2026 |
| 1.1.0 | 9. Juni 2026 |
| 1.0.3 | 6. Juni 2026 |