使用说明
MCP 示例
此存储库包含以五种格式实现的最小模型上下文协议(MCP)示例:
- 命令(标准输入输出)-
command/ - HTTP (SSE) - 服务器发送事件(Server-Sent Events)
http_sse/ - NPM 包(stdin/stdout)-
npm_package/ - Pip 包(标准输入/标准输出)-
pip_package/ - Docker 镜像(stdio + HTTP 健康检查)
docker_example/
快速入门
- 命令(标准输入输出)
# say hello
echo '{"tool":"hello","input":{"name":"Alice"}}' | node command/cli.js
- HTTP(SSE)
node http_sse/server.js
node http_sse/client.js hello '{"name":"Alice"}'
- NPM 包
echo '{"tool":"echo","input":{"foo":"bar"}}' | node npm_package/cli.js
- Pip 包
echo '{"tool":"hello","input":{"name":"Alice"}}' | python3 -m mcp_example
- Docker 镜像
# build
docker build -t mcp-example-docker ./docker_example
# health server
docker run --rm -p 8080:8080 mcp-example-docker
# stdio use
echo '{"tool":"ping"}' | docker run --rm -i mcp-example-docker
CLI/命令行使用注意事项:
-
所有 stdio 示例都期望从标准输入(stdin)接收一个单独的 JSON 对象,并且会向标准输出(stdout)发送一个 JSON 对象。
-
小心使用shell引号。示例模式:
- POSIX shell 单引号方法:
echo '{"tool":"hello","input":{"name":"Alice"}}' | node command/cli.js - 使用辅助节点客户端可以避免在某些演示中手动添加JSON引号(参见
command/test-client.js并且http_sse/client.js)。
- POSIX shell 单引号方法:
如果你愿意,我也可以添加一些小型的shell包装脚本(bin/),或者让示例接受NDJSON(换行分隔的JSON)以处理多请求。
备注
- 这些示例经过精心简化,旨在展示针对多芯片封装(MCPs)的不同包装和运输选项。
- 基于stdio的示例期望从标准输入(stdin)接收一个单独的JSON请求,并向标准输出(stdout)发送一个单独的JSON响应。
- HTTP SSE 示例展示了如何通过 SSE 连接进行流式响应。
