Paparats – Local Semantic Code Search MCP
mcpopen · packageio.github.IBazylchuk/paparats-mcp · v2.9.0
Local-first semantic code search across all your repos. Private context for AI coding assistants.
run it
on your own machines, one way per deploy methodgenerated from the record, not tested yet
A package that serves HTTP itself; the port comes from its URL template.
# once, as root:
# as_mcp DIR COMMAND...: runs COMMAND as the mcp user in DIR, its home, sandboxed as the
# units are: a package's install scripts can write to DIR only, as the server later can
as_mcp() {
local dir="$1"; shift
systemd-run --quiet --wait --pipe --collect --uid=mcp --gid=mcp \
-p WorkingDirectory="$dir" -p Environment=HOME="$dir" -p ReadWritePaths="$dir" \
-p NoNewPrivileges=true -p ProtectSystem=strict -p ProtectHome=true -p PrivateTmp=true \
-- "$@" </dev/null
}
install -d -m 0750 -o mcp -g mcp /var/lib/mcp/paparats
# paparats: its packages, installed whole before its unit starts (no session installs)
# npx takes a half-installed tree for installed: a rerun starts them afresh
systemctl stop mcp-my-agent-paparats.service 2>/dev/null || true
as_mcp /var/lib/mcp/paparats rm -rf /var/lib/mcp/paparats/.npm/_npx
as_mcp /var/lib/mcp/paparats npx --yes --package=@paparats/[email protected] -- true
#!/usr/bin/env bash
# paparats (io.github.IBazylchuk/paparats-mcp), recipe baremetal (generated).
# Generated by Hub for toolset "my-agent"; started by mcp-my-agent-paparats.service.
set -euo pipefail
export HOST=127.0.0.1 PORT=8101
exec npx -y @paparats/[email protected]
[Unit]
Description=MCP server paparats (toolset my-agent), generated by Hub
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=mcp
Group=mcp
EnvironmentFile=/etc/mcp/my-agent.env
Environment=HOME=/var/lib/mcp/paparats
WorkingDirectory=/var/lib/mcp/paparats
ExecStart=/opt/mcp/my-agent/bin/paparats.sh
Restart=on-failure
RestartSec=5
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
PrivateTmp=true
ReadWritePaths=/var/lib/mcp/paparats
[Install]
WantedBy=multi-user.target
connect to it
copy what your client needs{
"mcpServers": {
"paparats": {
"command": "CHANGE_ME",
"args": []
}
}
}
#!/usr/bin/env bash # Registers every server with Claude Code (run once; `claude mcp list` to check). set -euo pipefail set -a; [ -f .env ] && source .env; set +a claude mcp add paparats -- CHANGE_ME
{
"mcpServers": {
"paparats": {
"command": "CHANGE_ME",
"args": []
}
}
}
{
"servers": {
"paparats": {
"type": "stdio",
"command": "CHANGE_ME",
"args": []
}
}
}
name: my-agent target: local servers: - hub: io.github.IBazylchuk/paparats-mcp
- not probed yet: tools unpinned, ingest lists them
- a package that serves HTTP itself: pick a self-hosted target, not 'local'
tools
Probe result: faileddocker: the container exited: st all indexed groups and projects help [command] display help for command npm notice npm notice New major version of npm available! 10.9.9 -> 12.2.0 npm notice Changelog: https://<host>/npm/cli/releases/tag/v12.2.0 npm notice To update run: npm install -g [email protected] npm notice; baremetal: the container exited: st all indexed groups and projects help [command] display help for command npm notice npm notice New major version of npm available! 10.9.9 -> 12.2.0 npm no…
runs · 1
the latest tests of this entry by the hub and its workers, newest first| date | worker | method | status | sandbox | reason |
|---|---|---|---|---|---|
| 2026-10-16 11:53 | local-mac-vm | docker | failed | gvisor | docker: the container exited: st all indexed groups and projects help [command] display help for command npm notice npm notice New major version of npm availabl… |