使用说明
参考MCP服务器
建筑 | 项目结构 | 启动过程 | 服务器功能 | 扩展点 | 运作原理
这是模型上下文协议(MCP)的全面参考实现,旨在为测试和开发行使所有协议功能。虽然不打算用于生产,但它为MCP客户端开发人员提供了一个有价值的测试场,并展示了协议功能。
主要特点:
- 完整的MCP协议覆盖范围:工具、资源、提示、采样和资源订阅
- 最新规格特征:通过工具调用和服务器发现增强采样(2025年11月MCP规范)
- 多个传输:stdio、HTTP+SSE(已弃用)和流式HTTP
- OAuth 2.1身份验证:Microsoft Entra ID与HTTP传输的JWT验证集成
- 多客户端支持:演示每会话状态管理和并发客户端处理
- 生产就绪模式:正确的错误处理、清理、结构化日志记录和安全最佳实践
此分支通过企业身份验证、现代协议功能和全面的文档扩展了官方MCP Everything服务器,以帮助开发人员了解现实世界的MCP服务器实现。
Docker快速入门
最简单的入门方法是使用我们预先构建的Docker镜像:
docker pull ghcr.io/getexcited/reference-mcp-server:latest
使用stdio传输运行(默认):
docker run -i --rm ghcr.io/getexcited/reference-mcp-server:latest
使用SSE传输运行:
docker run -i --rm ghcr.io/getexcited/reference-mcp-server:latest node dist/index.js sse
使用流式HTTP传输运行:
docker run -i --rm ghcr.io/getexcited/reference-mcp-server:latest node dist/index.js streamableHttp
Docker镜像详细信息
- 注册表:
ghcr.io/getexcited/reference-mcp-server - 可用标签:
latest版本标签(例如。,1.0.0),提交SHA - 平台:
linux/amd64,linux/arm64 - 基础:Node.js 22 Alpine Linux
工具、资源、提示和其他功能
注册的MCP原语和演示的其他协议功能的完整列表可以在 服务器功能 文件。
使用Claude Desktop(使用 stdio运输)
选项1:使用Docker(推荐)
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"everything": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/getexcited/reference-mcp-server:latest"
]
}
}
}
选项2:使用NPX
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"everything": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-everything"]
}
}
}
使用VS代码
为了快速安装,请使用下面的一键安装按钮之一。..
对于手动安装,您可以使用以下方法之一配置MCP服务器:
方法1:用户配置(推荐)
将配置添加到用户级MCP配置文件中。打开命令选项板(Ctrl + Shift + P)然后跑 MCP: Open User Configuration。这将打开您的用户 mcp.json 您可以在其中添加服务器配置的文件。
方法2:工作空间配置
或者,您可以将配置添加到名为的文件中 .vscode/mcp.json 在您的工作空间中。这将允许您与他人共享配置。
有关VS Code中MCP配置的更多详细信息,请参阅 官方VS Code MCP文档.
Docker(推荐)
{
"servers": {
"everything": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/getexcited/reference-mcp-server:latest"
]
}
}
}
NPX
{
"servers": {
"everything": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-everything"]
}
}
}
OAuth 2.1身份验证配置
此服务器支持使用Microsoft Entra ID进行OAuth 2.1身份验证,用于HTTP传输(SSE和Streamable HTTP)。OAuth是 默认情况下禁用 并且仅在使用HTTP传输时才需要。
快速设置
- 复制示例环境文件:
cp .env.example .env
- 在中配置您的Entra ID应用程序设置
.env:
# Enable OAuth for HTTP transports
OAUTH_ENABLED=true
# Required when OAuth is enabled
ENTRA_TENANT_ID=your-tenant-id # Your Entra ID tenant ID
ENTRA_CLIENT_ID=your-application-id # Your Entra ID application/client ID
MCP_SERVER_URL=https://your-server.com # Public URL of your MCP server
环境变量
| 变量 | 必填 | 描述 | 默认值 |
|---|---|---|---|
OAUTH_ENABLED |
否 | 启用/禁用OAuth身份验证 | false |
ENTRA_TENANT_ID |
是* | 您的Entra ID租户ID(如果使用 AUTHORIZED_TENANTS) |
- |
ENTRA_CLIENT_ID |
是* | 您的Entra ID申请/客户ID | - |
MCP_SERVER_URL |
是* | MCP服务器的公共URL | http://localhost:3001 |
MCP_RESOURCE_IDENTIFIER |
否 | 用于令牌验证的资源标识符 | 与相同 MCP_SERVER_URL |
AUTHORIZED_TENANTS |
否 | 允许访问逗号分隔的租户ID(使用 common 对于多租户) |
空(单租户模式) |
PORT |
否 | 用于HTTP传输的服务器端口 | 3001 |
NODE_ENV |
否 | 节点环境(development, production) |
development |
ALLOWED_ORIGINS |
没有 | CORS允许的来源(逗号分隔或 *) |
* |
*仅在以下情况下需要 OAUTH_ENABLED=true
设置Microsoft Entra ID
- 在中注册应用程序 微软Entra ID
- 为应用程序配置API权限
- 注意应用程序(客户端)ID和租户ID
- 为您的应用程序配置重定向URI
- 创建客户端机密(如果使用机密客户端流)
有关OAuth设置的详细说明,请参阅 auth/模块文档.
OAuth仅适用于HTTP传输
OAuth是 默认情况下禁用 因为默认的stdio传输不需要身份验证。仅在使用HTTP传输(SSE或流式HTTP)时启用OAuth:
OAUTH_ENABLED=true npm run start:streamableHttp
或添加 OAUTH_ENABLED=true 到你的 .env 当使用HTTP传输进行部署时,文件。
发展-从源头出发
安装依赖项
npm install
构建项目
npm run build
使用stdio传输运行(默认)
npm run start:stdio
使用SSE传输运行(已弃用)
注: 需要OAuth配置(见上文)
npm run start:sse
使用流式HTTP传输运行
注: 需要OAuth配置(见上文)
npm run start:streamableHttp
开发观看模式
npm run watch
上游NPM包
这个分叉基于官方的MCP Everything服务器。要使用原始上游版本,请执行以下操作:
npx @modelcontextprotocol/server-everything
