Skip to content

Add supermemory-local-mcp skill: self-hosted server + stdio MCP bridg… - #1508

Open
themorida-commits wants to merge 1 commit into
supermemoryai:mainfrom
themorida-commits:feat/supermemory-local-mcp-skill
Open

Add supermemory-local-mcp skill: self-hosted server + stdio MCP bridg…#1508
themorida-commits wants to merge 1 commit into
supermemoryai:mainfrom
themorida-commits:feat/supermemory-local-mcp-skill

Conversation

@themorida-commits

Copy link
Copy Markdown

…e + multi-project auto-sync

  • Local-only Supermemory server wiring (no cloud dependency)
  • Zero-dependency Python stdio MCP bridge to the REST-only local server
  • systemd user service for auto-start
  • Per-project container_tags with git post-commit auto-sync
  • Works with Claude Code, OpenCode, Cline, Kilo Code, Zed

…e + multi-project auto-sync

- Local-only Supermemory server wiring (no cloud dependency)
- Zero-dependency Python stdio MCP bridge to the REST-only local server
- systemd user service for auto-start
- Per-project container_tags with git post-commit auto-sync
- Works with Claude Code, OpenCode, Cline, Kilo Code, Zed
Comment on lines +92 to +94
def get_document(document_id, container_tag=None):
tag = container_tag or CONTAINER
return _post("/v3/documents/list", {"containerTags": [tag], "limit": 50})

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The get_document function accepts a document_id parameter but never uses it. Instead, it returns a generic list of documents (identical to list_documents). This will break any MCP client attempting to retrieve a specific document by ID.

def get_document(document_id, container_tag=None):
    tag = container_tag or CONTAINER
    # Need to implement actual document retrieval by ID
    # The local server may not support this - needs investigation
    return _get(f"/v3/documents/{document_id}", {"containerTag": tag})

If the v3 API doesn't support single document retrieval, the tool should be removed or the description updated to reflect actual behavior.

Suggested change
def get_document(document_id, container_tag=None):
tag = container_tag or CONTAINER
return _post("/v3/documents/list", {"containerTags": [tag], "limit": 50})
def get_document(document_id, container_tag=None):
tag = container_tag or CONTAINER
return _get(f"/v3/documents/{document_id}", {"containerTag": tag})

Spotted by Graphite

Fix in Graphite


Is this helpful? React 👍 or 👎 to let us know.

LOG="$HOME/.supermemory/sync.log"
{
echo "$(date -Is) [$project] commit: $msg"
/home/themorida/.local/bin/supermemory-sync remember-commit "$project" "$msg" $files

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The post-commit hook contains a hardcoded absolute path /home/themorida/.local/bin/supermemory-sync which will fail for any user other than themorida. This breaks the multi-user setup instructions.

"$HOME/.local/bin/supermemory-sync" remember-commit "$project" "$msg" $files

or

~/.local/bin/supermemory-sync remember-commit "$project" "$msg" $files
Suggested change
/home/themorida/.local/bin/supermemory-sync remember-commit "$project" "$msg" $files
"$HOME/.local/bin/supermemory-sync" remember-commit "$project" "$msg" $files

Spotted by Graphite

Fix in Graphite


Is this helpful? React 👍 or 👎 to let us know.


[Service]
Type=oneshot
ExecStart=/home/themorida/.local/bin/supermemory-sync sync-rules

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The systemd service file contains a hardcoded path /home/themorida/.local/bin/supermemory-sync which will fail for other users. Since this is a template file meant to be copied, it should use systemd's %h specifier for the home directory.

ExecStart=%h/.local/bin/supermemory-sync sync-rules
Suggested change
ExecStart=/home/themorida/.local/bin/supermemory-sync sync-rules
ExecStart=%h/.local/bin/supermemory-sync sync-rules

Spotted by Graphite

Fix in Graphite


Is this helpful? React 👍 or 👎 to let us know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant