此目录包含使用@modelcontextprotocol/sdk实现的模型上下文协议(MCP)服务器示例。
它利用StreamableHTTPServerTransport处理通过HTTP的MCP通信,支持包括服务器发送事件(SSE)通知在内的双向通信。
还包括simpleStreamableHttpClient.ts以启动客户端并与服务器进行交互。
StreamableHTTPServerTransport进行基于HTTP的通信。mcp-session-id头管理客户端会话。echo)。docebo-mcp-server目录:
cd docebo-mcp-server
npm install
要将TypeScript代码编译成JavaScript:
npm run build
这将把编译后的文件输出到build目录。
默认情况下,服务器监听3000端口,并在/mcp暴露MCP端点。
/mcpPOST:客户端用于发送请求(包括初始的initialize请求)。GET:客户端用于建立SSE连接以接收服务器到客户端的通知。DELETE:客户端用于终止当前的MCP会话。服务器使用mcp-session-idHTTP头管理客户端会话。
initialize请求时,服务器创建一个新的会话和新的传输,并在响应中返回sessionId。mcp-session-id头,以便服务器将请求路由到正确的传输实例。DELETE /mcp请求终止与提供的mcp-session-id关联的会话。可以在tools目录中添加工具。
npm run dev:hono
使用MCP检查器
npx @modelcontextprotocol/inspector
或者你可以使用CLI
npm run start:simpleClient
你可以使用此客户端显示的命令与服务器交互,如
list-tools
截至撰写本文时,Claude Desktop不支持HttpStreamable协议。将服务器配置添加到你的Claude Desktop配置文件中(通常位于macOS的~/Library/Application Support/Claude/claude_desktop_config.json),并重启Claude Desktop:
{
"mcpServers": {
"docebo": {
"command": "npx",
"args": ["mcp-remote", "http://127.0.0.1:3000/mcp"],
"env": {
"BEARER_TOKEN_BEARERAUTH": "<your_token>"
}
}
}
}
远程MCP服务器仍在由不同的MCP主机(如Claude Desktop)开发和增强。
MCP服务器可以以两种不同的方式部署:
graph LR
subgraph "您的计算机"
C1[MCP主机带客户端]
S1[MCP服务器]
end
subgraph "远程服务器"
API1[远程API]
end
C1 <--> S1
S1 <--> API1
style C1 fill:#2e7d32,color:#ffffff
style S1 fill:#f57c00,color:#ffffff
style API1 fill:#c2185b,color:#ffffff
graph LR
subgraph "您的计算机"
C2[MCP主机带客户端]
end
subgraph "远程服务器"
S2[MCP服务器]
API2[远程API]
end
C2 <-.-> S2
S2 <--> API2
style C2 fill:#2e7d32,color:#ffffff
style S2 fill:#f57c00,color:#ffffff
style API2 fill:#c2185b,color:#ffffff
有两种授权形式:
此应用程序需要一个bearer token,然后从MCP客户端传递给MCP服务器,MCP服务器使用此token调用远程API。如果MCP服务器需要处理多个远程API系统,这种系统并不理想。