https://github.com/modelcontextprotocol/servers
https://github.com/punkpeye/awesome-mcp-servers
https://github.com/coderroleggg/telegram-bot-mcp
https://github.com/jonigl/mcp-client-for-ollama
https://mcp.zapier.com/mcp/
MCP серверы
Re: MCP серверы
## **llama.cpp и MCP: официальная интеграция**
Хорошая новость — **llama.cpp уже имеет встроенную поддержку MCP серверов**! Это было добавлено в PR #26062. Вот как это работает:
---
## **Способ 1: Встроенная поддержка llama.cpp (рекомендуется)**
### Запуск llama-server с MCP-сервером
**1. Создайте конфиг `mcp.json`:**
```json
{
"mcpServers": {
"example": {
"command": "/path/to/mcp-server",
"args": ["arg1", "arg2"]
}
}
}
```
**2. Запустите llama-server с этим конфигом:**
```bash
llama-server -m model.gguf --mcp-servers-config mcp.json --port 8080
```
**3. Или передайте JSON прямо в параметр:**
```bash
llama-server -m model.gguf --mcp-servers-json '{"mcpServers": {"test": {"command": "echo"}}}' --port 8080
```
### Параметры конфигурации MCP-сервера:
| Ключ | Описание |
|------|---------|
| `command` | Путь к исполняемому файлу (обязателен) |
| `args` | Массив аргументов |
| `env` | Объект переменных окружения |
| `cwd` | Рабочая директория процесса |
| `timeout_ms` | Timeout для tool-call (по умолчанию 30000 мс) |
### Как работает:
- MCP-сервер запускается как **дочерний процесс** (stdio транспорт)
- Запускается один раз при старте для получения списка инструментов
- После этого перезапускается при вызове инструментов
- Инструменты доступны как `<server_name>_<tool_name>` в Web UI
- Работает в CLI и в API
---
## **Способ 2: Готовые MCP-обёртки для llama.cpp**
Если нужен более простой способ, используйте эти проекты:
### **A. llama-cpp-mcp** (TypeScript/Node.js)
**[https://github.com/chadsten/llama-cpp-mcp](https://github.com/chadsten/llama-cpp-mcp)**
```bash
npm install llama-cpp-mcp
npx llama-cpp-mcp
```
Поддерживает инструменты:
- `llama_health` — статус сервера
- `llama_complete` — полная генерация текста
- `llama_tokenize` — токенизация
- `llama_start`/`llama_stop` — управление процессом
### **B. local-llm-mcp** (JavaScript)
**[https://github.com/Codetoil/local-llm-mcp](https://github.com/Codetoil/local-llm-mcp)**
Работает с llama-server, Ollama, vLLM, LM Studio:
```bash
git clone https://github.com/Codetoil/local-llm-mcp
cd local-llm-mcp
npm install
node index.js
```
### **C. llamacpp-mcp** (Python)
**[https://github.com/lukasmki/llamacpp-mcp](https://github.com/lukasmki/llamacpp-mcp)**
```bash
git clone https://github.com/lukasmki/llamacpp-mcp
cd llamacpp-mcp
uv sync
uv run llamacpp-mcp -i /path/to/model.gguf
```
---
## **Пример: полная настройка**
### Шаг 1 — Напишите простой MCP-сервер на C++ (опционально):
Создайте исполняемый файл, который читает JSON-RPC из stdin и пишет в stdout:
```cpp
#include <iostream>
#include <string>
#include <nlohmann/json.hpp>
using json = nlohmann::json;
int main() {
std::string line;
while (std::getline(std::cin, line)) {
try {
auto request = json::parse(line);
// Обработка MCP запросов
if (request["method"] == "tools/list") {
json response = {
{"jsonrpc", "2.0"},
{"id", request["id"]},
{"result", {
{"tools", json::array()}
}}
};
std::cout << response.dump() << std::endl;
}
} catch(...) {}
}
return 0;
}
```
Компилируется:
```bash
g++ -std=c++17 mcp-server.cpp -o mcp-server
```
### Шаг 2 — Конфигурируйте llama.cpp:
```bash
./llama-server \
-m Qwen3.6-32B-Instruct-GGUF \
--mcp-servers-config mcp.json \
--jinja \
--port 8080
```
Где `mcp.json`:
```json
{
"mcpServers": {
"my_server": {
"command": "/path/to/mcp-server",
"timeout_ms": 60000
}
}
}
```
### Шаг 3 — Используйте инструменты:
Откройте Web UI (`http://localhost:8080`), и инструменты `my_server_*` будут доступны в чате.
---
## **Альтернатива: Web UI MCP CORS прокси**
Если ваш MCP-сервер удалённый, используйте флаг:
```bash
llama-server -m model.gguf --webui-mcp-proxy --port 8080
```
Это позволит Web UI подключаться к удалённым MCP-серверам через WebSocket или HTTP.
---
## **Ключевые моменты:**
**MCP работает с любым GGUF форматом** (Qwen, Llama, Mistral, DeepSeek и т.д.)
**Инструменты видны в Web UI и доступны через API**
**Поддерживается JSON парсинг** (nlohmann/json встроен в llama.cpp)
**Процесс работает локально** — полная приватность
**C++ поддержка MCP** — нужно писать собственный сервер на C++ или использовать готовые обёртки
Какой подход вам интереснее — встроенная поддержка или готовая обёртка?
Хорошая новость — **llama.cpp уже имеет встроенную поддержку MCP серверов**! Это было добавлено в PR #26062. Вот как это работает:
---
## **Способ 1: Встроенная поддержка llama.cpp (рекомендуется)**
### Запуск llama-server с MCP-сервером
**1. Создайте конфиг `mcp.json`:**
```json
{
"mcpServers": {
"example": {
"command": "/path/to/mcp-server",
"args": ["arg1", "arg2"]
}
}
}
```
**2. Запустите llama-server с этим конфигом:**
```bash
llama-server -m model.gguf --mcp-servers-config mcp.json --port 8080
```
**3. Или передайте JSON прямо в параметр:**
```bash
llama-server -m model.gguf --mcp-servers-json '{"mcpServers": {"test": {"command": "echo"}}}' --port 8080
```
### Параметры конфигурации MCP-сервера:
| Ключ | Описание |
|------|---------|
| `command` | Путь к исполняемому файлу (обязателен) |
| `args` | Массив аргументов |
| `env` | Объект переменных окружения |
| `cwd` | Рабочая директория процесса |
| `timeout_ms` | Timeout для tool-call (по умолчанию 30000 мс) |
### Как работает:
- MCP-сервер запускается как **дочерний процесс** (stdio транспорт)
- Запускается один раз при старте для получения списка инструментов
- После этого перезапускается при вызове инструментов
- Инструменты доступны как `<server_name>_<tool_name>` в Web UI
- Работает в CLI и в API
---
## **Способ 2: Готовые MCP-обёртки для llama.cpp**
Если нужен более простой способ, используйте эти проекты:
### **A. llama-cpp-mcp** (TypeScript/Node.js)
**[https://github.com/chadsten/llama-cpp-mcp](https://github.com/chadsten/llama-cpp-mcp)**
```bash
npm install llama-cpp-mcp
npx llama-cpp-mcp
```
Поддерживает инструменты:
- `llama_health` — статус сервера
- `llama_complete` — полная генерация текста
- `llama_tokenize` — токенизация
- `llama_start`/`llama_stop` — управление процессом
### **B. local-llm-mcp** (JavaScript)
**[https://github.com/Codetoil/local-llm-mcp](https://github.com/Codetoil/local-llm-mcp)**
Работает с llama-server, Ollama, vLLM, LM Studio:
```bash
git clone https://github.com/Codetoil/local-llm-mcp
cd local-llm-mcp
npm install
node index.js
```
### **C. llamacpp-mcp** (Python)
**[https://github.com/lukasmki/llamacpp-mcp](https://github.com/lukasmki/llamacpp-mcp)**
```bash
git clone https://github.com/lukasmki/llamacpp-mcp
cd llamacpp-mcp
uv sync
uv run llamacpp-mcp -i /path/to/model.gguf
```
---
## **Пример: полная настройка**
### Шаг 1 — Напишите простой MCP-сервер на C++ (опционально):
Создайте исполняемый файл, который читает JSON-RPC из stdin и пишет в stdout:
```cpp
#include <iostream>
#include <string>
#include <nlohmann/json.hpp>
using json = nlohmann::json;
int main() {
std::string line;
while (std::getline(std::cin, line)) {
try {
auto request = json::parse(line);
// Обработка MCP запросов
if (request["method"] == "tools/list") {
json response = {
{"jsonrpc", "2.0"},
{"id", request["id"]},
{"result", {
{"tools", json::array()}
}}
};
std::cout << response.dump() << std::endl;
}
} catch(...) {}
}
return 0;
}
```
Компилируется:
```bash
g++ -std=c++17 mcp-server.cpp -o mcp-server
```
### Шаг 2 — Конфигурируйте llama.cpp:
```bash
./llama-server \
-m Qwen3.6-32B-Instruct-GGUF \
--mcp-servers-config mcp.json \
--jinja \
--port 8080
```
Где `mcp.json`:
```json
{
"mcpServers": {
"my_server": {
"command": "/path/to/mcp-server",
"timeout_ms": 60000
}
}
}
```
### Шаг 3 — Используйте инструменты:
Откройте Web UI (`http://localhost:8080`), и инструменты `my_server_*` будут доступны в чате.
---
## **Альтернатива: Web UI MCP CORS прокси**
Если ваш MCP-сервер удалённый, используйте флаг:
```bash
llama-server -m model.gguf --webui-mcp-proxy --port 8080
```
Это позволит Web UI подключаться к удалённым MCP-серверам через WebSocket или HTTP.
---
## **Ключевые моменты:**
Какой подход вам интереснее — встроенная поддержка или готовая обёртка?