Labsco
MCP SERVER

Universal MCP Server

by Pavel-K-Group

A self-hosted server with a plugin folder — drop a TypeScript file in and the tool registers itself.

Summary
Written to be extended, and the bundled tools show how.

The auto-loading `src/tools/` folder is the actual product: a new tool is one file with a Zod schema and a handler, no registration step, no touching the server. The five bundled tools double as worked examples, and finding a todo by position or partial title rather than by id is a small design choice that makes them usable from a conversation.

What it is

A TypeScript server built around a loader: every file in `src/tools/` is discovered and registered at startup, so adding a tool means writing one file with a name, description, Zod input schema and handler. It ships with a working set already — Telegram, HTTP, a calculator, and CRUD over blocks, todos and agents. Documentation is in Russian.

What you get
  • `sendTelegramMessage` sends a message through your bot; `httpRequest` performs GET, POST, PUT or DELETE with headers and a body
  • `calculator` evaluates a mathematical expression
  • `manageBlocks` is full CRUD over blocks — list, create, update, delete, get — across types including text, todo, media, link, container, calendar and database
  • Todos as four separate tools: `createTodo` with priority, due date, tags and project; `readTodos`, `updateTodo` and `deleteTodo`, each able to find a task by exact id, by its position in the list, or by a partial title search
  • `manageUnits` is the same CRUD shape over AI agents — name, description, model, system prompt, tools and agent type
  • Deleting a todo is a soft delete
Requirements

You host it yourself. `npm install`, then run it with Docker Compose — `docker-compose.local.yml` exposes port 8080 for development, `docker-compose.yml` is the production variant. Configure a `.env` from `.env.example` with `TELEGRAM_BOT_TOKEN` and `TELEGRAM_CHAT_ID` for the Telegram tool, `DATABASE_URL` pointing at PostgreSQL for the blocks, todos and agents tools, and `PORT`. Clients connect over Server-Sent Events at `/sse` — in Claude Desktop that is a `url` entry pointing at `http://localhost:8080/sse`.