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

Mnevis MCP 服务器

⚠️ 这是一个实验性项目。

一个轻量级、零依赖的 Python MCP 服务器,仅暴露一个 do_everything 工具。 任何支持 MCP 的 AI 代理都可以使用它将所有语言模型工作卸载到 本地兼容 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 指令)。
服务器使用标准的 OpenAI 聊天补全 API 将请求转发给本地 LLM,
并将模型的响应返回给代理。

该工具的描述措辞使得任何 LLM 都能自动理解它应该将所有任务委托给该工具,而不是自行推理。


Related MCP server: MCP-123

系统要求

  • Python 3.11+

  • 无需第三方包——仅使用标准库(urllib、json、sys、os)

  • 一个运行中的本地 LLM,暴露了 /v1/chat/completions 端点


配置

所有设置均在启动时从环境变量中读取:

变量

默认值

描述

MNEVIS_URL

http://localhost

本地 LLM 服务器的基本 URL

MNEVIS_PORT

11434

LLM 服务器监听的端口

MNEVIS_MODEL

llama3

请求中传递的模型名称

MNEVIS_API_KEY

(空)

可选的 API 密钥(作为 Bearer 令牌发送)

MNEVIS_TIMEOUT

120

LLM HTTP 调用的请求超时时间(秒)

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

带 API 密钥的 vLLM:

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

字符串

✅

要处理的完整任务、问题或对话

system

字符串

❌

本地 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