Skip to main content
Glama
mar-co-za
by mar-co-za

Mnevis MCP Server

⚠️ Это эксперимент.

Легковесный, без внешних зависимостей Python MCP-сервер, предоставляющий единственный инструмент do_everything. Любой ИИ-агент, поддерживающий MCP, может использовать его, чтобы перенести всю работу языковой модели на локальную конечную точку, совместимую с OpenAI.


Как это работает

AI Agent
    │
    │  MCP stdio (JSON-RPC 2.0)
    ▼
mnevis  server.py
    │
    │  HTTP POST /v1/chat/completions
    ▼
Local LLM  (Ollama, LM Studio, llama.cpp, vLLM, …)

Агент вызывает инструмент do_everything с prompt (и опциональной системной инструкцией system).
Сервер пересылает запрос локальной LLM, используя стандартный API чат-завершений OpenAI,
и возвращает ответ модели агенту.

Описание инструмента сформулировано так, чтобы любая LLM автоматически поняла: нужно делегировать
каждую задачу этому инструменту, а не рассуждать самостоятельно.


Related MCP server: MCP-123

Требования

  • Python 3.11+

  • Сторонние пакеты не требуются — используется только стандартная библиотека (urllib, json, sys, os)

  • Запущенная локальная LLM, предоставляющая конечную точку /v1/chat/completions


Конфигурация

Все настройки считываются из переменных окружения при запуске:

Переменная

По умолчанию

Описание

MNEVIS_URL

http://localhost

Базовый URL локального LLM-сервера

MNEVIS_PORT

11434

Порт, на котором слушает LLM-сервер

MNEVIS_MODEL

llama3

Имя модели, передаваемое в запросе

MNEVIS_API_KEY

(пусто)

Опциональный API-ключ (отправляется как токен Bearer)

MNEVIS_TIMEOUT

120

Тайм-аут запроса в секундах для HTTP-вызова к LLM

MNEVIS_LOGLEVEL

INFO

Уровень логирования для диагностики сервера (DEBUG, INFO, WARNING, ERROR)

Примеры

Ollama (порт по умолчанию 11434):

MNEVIS_MODEL=llama3 python server.py

LM Studio (порт по умолчанию 1234):

MNEVIS_URL=http://localhost MNEVIS_PORT=1234 MNEVIS_MODEL=lmstudio-community/Meta-Llama-3-8B-Instruct python server.py

vLLM с API-ключом:

MNEVIS_URL=http://my-gpu-box MNEVIS_PORT=8000 MNEVIS_MODEL=mistral-7b MNEVIS_API_KEY=secret python server.py

Запуск сервера

Сервер общается через stdio (JSON-RPC 2.0), поэтому он запускается как дочерний процесс
MCP-хоста — в большинстве случаев вы не запускаете его вручную.

Для прямого тестирования:

python server.py

Затем вставьте сырое JSON-RPC-сообщение, например:

{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"0.0.1"}}}

Регистрация в MCP-хосте

Добавьте в ваш mcp.json (рабочей области или глобальный):

{
  "mcpServers": {
    "mnevis": {
      "command": "python",
      "args": ["/absolute/path/to/mnevis-mcp/server.py"],
      "env": {
        "MNEVIS_URL":   "http://localhost",
        "MNEVIS_PORT":  "11434",
        "MNEVIS_MODEL": "llama3",
        "MNEVIS_API_KEY": ""
      }
    }
  }
}

Для VScode:

{
  "servers": {
    "mnevis": {
      "command": "python",
      "args": ["/absolute/path/to/mnevis-mcp/server.py"],
      "env": {
        "MNEVIS_URL":   "http://localhost",
        "MNEVIS_PORT":  "11434",
        "MNEVIS_MODEL": "llama3",
        "MNEVIS_API_KEY": ""
      }
    }
  }
}

Замените путь в args на фактический абсолютный путь на вашей машине.
Установите MNEVIS_PORT / MNEVIS_MODEL в соответствии с вашей локальной LLM.


Предоставляемые инструменты

do_everything

Аргумент

Тип

Обязательный

Описание

prompt

string

✅

Полная задача, вопрос или диалог для обработки

system

string

❌

Опциональная системная / персональная инструкция для LLM

Описание инструмента явно предписывает вызывающему агенту отправлять каждую задачу сюда, а не рассуждать самостоятельно.

health_check

Аргумент

Тип

Обязательный

Описание

(нет)

—

—

Возвращает короткую строку состояния, содержащую версию сервера, имя настроенной модели, URL/порт и тайм-аут запроса. Полезно для мониторинга или отладки.

Пример запроса

{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"health_check","arguments":{}}}

Пример ответа

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [{"type": "text", "text": "mnevis version 1.0.0 | model=llama3 | url=http://localhost:11434 | timeout=120s"}],
    "isError": false
  }
}

Структура проекта

mnevis-mcp/
├── server.py        # MCP server (single file, stdlib only)
├── pyproject.toml   # Project metadata
├── README.md        # This file
└── .gitignore

Лицензия

MIT

Available Tools

1 tool
do_everythingA

Use this tool for EVERY task that requires reasoning, text generation, summarisation, translation, coding, question answering, analysis, planning, or any other language model capability. Do NOT attempt to answer or reason yourself — always delegate to this tool. Pass the full task description or conversation as the prompt argument and optionally supply a system instruction. The tool forwards the request to a local LLM and returns the response.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesThe complete task, question, or conversation turn to process. Include all context the model needs.
systemNoOptional system prompt / persona instruction for the local LLM. Leave blank to use no system message.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Only states it forwards to a local LLM and returns response, lacking details on failure modes, latency, or read-only nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise, front-loaded, and wastes no words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers core usage and operation adequately for a simple tool with 2 params and no output schema. Could mention return format but sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and description adds meaningful guidance for 'prompt' (include all context) and 'system' (optional persona), slightly above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool forwards tasks to a local LLM, covering many capabilities. It is specific (forward to LLM) but overly broad ('EVERY task'), which is fine given no siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to always use this tool for reasoning tasks and not to answer directly. Provides clear context with no exclusions, sufficient given no alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev1.0.0
    • First observeddo_everything

TDQS

A4/5.0

Scored across 1 tool

Disambiguation5/5

Only one tool exists, so there is no possibility of confusing it with other tools. The tool's purpose is clearly stated.

Naming Consistency5/5

With a single tool, naming consistency is inherently perfect. The name 'do_everything' clearly describes its intended use.

Tool Count4/5

The server's scope is very narrow—providing a single LLM proxy—so one tool is appropriate. However, it feels slightly thin compared to typical MCP servers that offer multiple specialized tools.

Completeness5/5

The tool claims to handle every possible language model task, from reasoning to coding, making it complete for its stated purpose of being a universal LLM delegate.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers