Semem on the server

I just went to do something unrelated with Claude chat in the browser and noticed that I'd already added a pointer to Semem MCP running on localhost. Claude can't see it, so I guess the connection must be made server-side. Ok, let me run Semem MCP on a server. It should be doable using npx semem-mcp, but I want the whole shebang on the server anyway, so I'll go the long way round.

It should just take :

cd ~/hyperdata
git clone https://github.com/danja/semem.git
cd semem
npm install
npm run mcp:http
# or node mcp/http-server.js

But the version of node I have on the server is a bit old, so:

sudo npm install n -g
n stable
node --version
# v22.16.0

I'd better set it up through the nginx proxy to get https:

nano /etc/nginx/sites-available/semem.conf
server {
    server_name semem.tensegrity.it;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
    }
    listen 80;
}

Add a DNS entry :

semem 10800 IN CNAME tensegrity.it.
ln -s /etc/nginx/sites-available/semem.conf /etc/nginx/sites-enabled/semem.conf
nginx -t
systemctl restart nginx
certbot

Hmm. Bad gateway. Let me try it on port 4600 and make it 127.0.0.1 rather than localhost just in case:

MCP_PORT=4600 MCP_HOST=127.0.0.1 node mcp/http-server.js

Locally :

curl https://semem.tensegrity.it/health

{"status":"healthy","timestamp":"2025-06-22T10:17:25.243Z","services":{"memoryManager":true,"config":true},"sessions":0}

Yay!

Oh.

I forgot that it's currently relying on Ollama locally.

I'd already got support for different chat providers, but not embeddings providers, that was quasi-hardcoded to Ollama. So I've added a bit to hyperdata-clients and updated the relevant bits of Semem. Which is bound to break things.

PS. Things might be fixed enough.

I've made a script containing just :

#!/bin/bash

MCP_PORT=4600 MCP_HOST=127.0.0.1 node mcp/http-server.js

so then -

 pm2 start start-mcp.sh --name semem-mcp --watch

and it's visible from MCP Inspector locally,

But broken. Hey ho. Next Claude Code cycle.