关于 MCP Everything
MCP Everything 是用于演示和测试 MCP 协议功能的服务器,提供 TypeScript 和 Python 实现,面向 MCP 客户端开发者。它覆盖工具、资源、提示词、采样和日志等交互能力。
主要功能
- 01回显与加法工具
- 02长任务进度通知
- 03LLM 采样示例
- 04文本与二进制资源
- 05提示词及日志示例
适用场景
- 01测试 MCP 客户端的工具调用
- 02验证资源分页与订阅
- 03检查提示词参数处理
- 04演示采样和日志交互
MCP 相关
该服务示范 MCP 的工具、资源、提示词、采样、日志等功能,供 MCP 客户端连接和测试。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP Everything
注意: 此项目从 https://github.com/modelcontextprotocol/servers/tree/main/src/everything 提取,用于创建独立实现。
此 MCP 服务项目展示了模型上下文协议(MCP)的各种功能。它包含 TypeScript 和 Python 服务器实现,作为 MCP 客户端构建器的测试服务。这两种实现力求功能一致,展示提示词、工具、资源、采样、日志记录等功能。
通用功能
工具
-
echo- 回显输入消息的简单工具
- 输入:
message(字符串):要回显的消息
- 返回:包含回显消息的文本内容
-
add- 将两个数相加
- 输入:
a(数字):第一个数b(数字):第二个数
- 返回:加法运算的文本结果
-
longRunningOperation- 演示长时间运行操作的进度通知
- 输入:
duration(数字,默认值:10):持续时间(秒)steps(数字,默认值:5):进度步骤数
- 返回:包含持续时间和步骤数的完成消息
- 执行期间发送进度通知
-
sampleLLM- 演示使用 MCP 采样功能的大模型采样能力
- 输入:
prompt(字符串):要发送给大模型的提示词maxTokens(数字,默认值:100):生成的最大 token 数
- 返回:生成的大模型响应
-
getTinyImage- 返回一张小型测试图像
- 无需输入
- 返回:Base64 编码的 PNG 图像数据
-
printEnv- 打印所有环境变量
- 可用于调试 MCP 服务配置
- 无需输入
- 返回:包含所有环境变量的 JSON 字符串
-
annotatedMessage- 演示如何使用注释为内容提供元数据
- 输入:
messageType(枚举:"error" | "success" | "debug"):消息类型,用于演示不同的注释模式includeImage(布尔值,默认值:false):是否包含示例图像
- 返回:带有不同注释的内容
资源
此服务器提供 100 个测试资源,分为两种格式:
-
偶数编号的资源:
- 纯文本格式
- URI 模式:
test://static/resource/{even_number} - 内容:简单的文本描述
-
奇数编号的资源:
- 二进制 Blob 格式
- URI 模式:
test://static/resource/{odd_number} - 内容:Base64 编码的二进制数据
资源功能:
- 支持分页(每页 10 项)
- 允许订阅资源更新
- 演示资源模板
- 每隔 5 秒自动更新已订阅资源
提示词
-
simple_prompt- 不带参数的基本提示词
- 返回:单轮消息交互
-
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/
安装与设置
- 从仓库根目录进入 Python 目录:
cd python - (推荐)创建并激活虚拟环境:
python -m venv venv source venv/bin/activate # 在 Windows 上:venv\Scripts\activate - 安装依赖:
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
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。