mcpField
M
MCP Everything

MCP Everything

本地服务
github.com/s2005开发工具075 周前更新

关于 MCP Everything

MCP Everything 是用于演示和测试 MCP 协议功能的服务器,提供 TypeScript 和 Python 实现,面向 MCP 客户端开发者。它覆盖工具、资源、提示词、采样和日志等交互能力。

主要功能

  1. 01回显与加法工具
  2. 02长任务进度通知
  3. 03LLM 采样示例
  4. 04文本与二进制资源
  5. 05提示词及日志示例

适用场景

  1. 01测试 MCP 客户端的工具调用
  2. 02验证资源分页与订阅
  3. 03检查提示词参数处理
  4. 04演示采样和日志交互

MCP 相关

该服务示范 MCP 的工具、资源、提示词、采样、日志等功能,供 MCP 客户端连接和测试。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"everything": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
启动命令docker run -i --rm build

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocibuild

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP Everything

注意: 此项目从 https://github.com/modelcontextprotocol/servers/tree/main/src/everything 提取,用于创建独立实现。

此 MCP 服务项目展示了模型上下文协议(MCP)的各种功能。它包含 TypeScript 和 Python 服务器实现,作为 MCP 客户端构建器的测试服务。这两种实现力求功能一致,展示提示词、工具、资源、采样、日志记录等功能。

通用功能

工具
  1. echo

    • 回显输入消息的简单工具
    • 输入:
      • message(字符串):要回显的消息
    • 返回:包含回显消息的文本内容
  2. add

    • 将两个数相加
    • 输入:
      • a(数字):第一个数
      • b(数字):第二个数
    • 返回:加法运算的文本结果
  3. longRunningOperation

    • 演示长时间运行操作的进度通知
    • 输入:
      • duration(数字,默认值:10):持续时间(秒)
      • steps(数字,默认值:5):进度步骤数
    • 返回:包含持续时间和步骤数的完成消息
    • 执行期间发送进度通知
  4. sampleLLM

    • 演示使用 MCP 采样功能的大模型采样能力
    • 输入:
      • prompt(字符串):要发送给大模型的提示词
      • maxTokens(数字,默认值:100):生成的最大 token 数
    • 返回:生成的大模型响应
  5. getTinyImage

    • 返回一张小型测试图像
    • 无需输入
    • 返回:Base64 编码的 PNG 图像数据
  6. printEnv

    • 打印所有环境变量
    • 可用于调试 MCP 服务配置
    • 无需输入
    • 返回:包含所有环境变量的 JSON 字符串
  7. annotatedMessage

    • 演示如何使用注释为内容提供元数据
    • 输入:
      • messageType(枚举:"error" | "success" | "debug"):消息类型,用于演示不同的注释模式
      • includeImage(布尔值,默认值:false):是否包含示例图像
    • 返回:带有不同注释的内容
资源

此服务器提供 100 个测试资源,分为两种格式:

  • 偶数编号的资源:

    • 纯文本格式
    • URI 模式:test://static/resource/{even_number}
    • 内容:简单的文本描述
  • 奇数编号的资源:

    • 二进制 Blob 格式
    • URI 模式:test://static/resource/{odd_number}
    • 内容:Base64 编码的二进制数据

资源功能:

  • 支持分页(每页 10 项)
  • 允许订阅资源更新
  • 演示资源模板
  • 每隔 5 秒自动更新已订阅资源
提示词
  1. simple_prompt

    • 不带参数的基本提示词
    • 返回:单轮消息交互
  2. complex_prompt

    • 演示参数处理的高级提示词
    • 必需参数:
      • temperature(数字):温度设置
    • 可选参数:
      • style(字符串):输出风格偏好
    • 返回:包含图像的多轮对话
日志记录

服务器每隔 15 秒发送随机级别的日志消息,以演示 MCP 的日志记录功能。

TypeScript 实现

位置: typescript/

安装
本地开发
# Clone the repository (if not already done)
# git clone https://github.com/modelcontextprotocol/mcp-everything.git
# cd mcp-everything

# Navigate to the TypeScript directory from the repository root
cd typescript

# Install dependencies
npm install

# Build the project
npm run build

# Start the server
npm start
全局安装
# Navigate to the TypeScript directory:
# cd path/to/mcp-everything/typescript
# Then install globally from the local package:
npm install -g .

# Run the server 
# (The command name will depend on the 'bin' field in typescript/package.json, 
#  e.g., 'mcp-everything-ts' or 'mcp-everything' if modified)
# Example:
# mcp-everything-ts

注意:全局安装功能和具体命令取决于 typescript/package.json 中的 bin 配置。

Docker
# Build the Docker image from the repository root
# (Assumes Dockerfile is updated to handle APP_DIR build argument or typescript context)
docker build -t mcp-everything-ts -f Dockerfile . --build-arg APP_DIR=typescript

# Run the container
docker run -it mcp-everything-ts
与 MCP 客户端搭配使用(例如 Claude Desktop)

将配置添加到客户端的 MCP 服务配置中。可能需要调整路径。

如果使用 npx 和已发布的软件包(例如 mcp-everything-ts):

{
  "mcpServers": {
    "everything-ts-npx": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-everything-ts" 
        // Replace 'mcp-everything-ts' with the actual package name if different
      ]
    }
  }
}

如果从本地构建运行(确保 cwd 是 typescript 目录):

{
  "mcpServers": {
    "everything-ts-local": {
      "command": "npm",
      "args": [
        "start"
      ],
      // Ensure 'cwd' points to the 'typescript' directory of this project.
      "cwd": "path/to/mcp-everything/typescript" 
    }
  }
}

将 "path/to/mcp-everything/typescript" 替换为正确的路径。


Python 实现

位置: python/

安装与设置
  1. 从仓库根目录进入 Python 目录:
    cd python
    
  2. (推荐)创建并激活虚拟环境:
    python -m venv venv
    source venv/bin/activate  # 在 Windows 上:venv\Scripts\activate
    
  3. 安装依赖:
    pip install -r requirements.txt
    
运行服务

在 python 目录中运行(如果使用了虚拟环境,请先激活):

python mcp_server.py

服务通过 stdio 监听 MCP 消息。

与 MCP 客户端配合使用(例如 Claude Desktop)

配置示例:

{
  "mcpServers": {
    "everything-py": {
      "command": "python", // Or "path/to/python/venv/bin/python"
      "args": ["mcp_server.py"],
      "cwd": "path/to/mcp-everything/python" // Ensure this is the correct path
    }
  }
}

将 "path/to/mcp-everything/python" 替换为正确的路径。

通过 GitHub Actions 测试服务

注意: 实现正在进行中。服务尚未完全可用。

  • 测试 1
  • 测试 2

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。