Token导航 LogoToken导航

MCP Server · 运维云端

Stdio Server Guide

一个通过STDIO实现模型上下文协议(MCP)服务器的端到端指南,专注于JSON-RPC 2.0消息框架和健壮的生命周期管理。

stdio官方级别未说明来源级核验工具 1tsc
服务器开发TypeScriptJavaScript本地部署

快速开始

作者 / 组织
Joseph19820124
提供方
Joseph19820124
运行时
Node.js

工具数量

1

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Stdio Server Guide 属于运维云端类 MCP Server,公开资料标注 1 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前先确认权限范围。

分类

运维云端

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

npx tsc --init --rootDir src --outDir dist --esModuleInterop true

客户端配置示例

{
  "mcpServers": {
    "mcp-stdio-server-guide": {
      "command": "npx",
      "args": [
        "tsc",
        "--init",
        "--rootDir",
        "src",
        "--outDir",
        "dist",
        "--esModuleInterop",
        "true"
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Node.js,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 1 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

构建STDIO MCP服务器

一份简明的端到端指南,用于在STDIO上实现模型上下文协议(MCP)服务器,重点介绍JSON-RPC 2.0消息框架和强大的生命周期管理。包括可运行的Node.js/TypeScript示例。

______________________________________________________________________

你将建造什么

  • 通过STDIN/STDOUT与JSON-RPC 2.0通信的最小MCP服务器
  • 使用适当的消息框架 Content-Length 标头
  • 能力和工具注册
  • 请求/响应和通知处理
  • 优雅的关机和健康检查

先决条件

  • Node.js≥18
  • npm或pnpm

协议概述(快速)

MCP服务器通常使用JSON-RPC 2.0,并使用类似HTTP的标头进行成帧。 典型的消息如下:

Content-Type: application/json

Content-Length: 123\r\n
\r\n
{"jsonrpc":"2.0","id":1,"method":"ping","params":{}}

关键规则:

  • 每条JSON消息前面都有标头(至少 Content-Length)
  • 空白行(\r\n\r\n)将标头与JSON正文分开
  • 车身长度匹配 Content-Length 以字节为单位
  • 双向:双方都可以发送请求和通知

工程脚手架

mkdir mcp-stdio-server && cd $_
npm init -y
npm i -D typescript ts-node @types/node
npx tsc --init --rootDir src --outDir dist --esModuleInterop true
mkdir src

最小服务器(TypeScript)

创建 src/server.ts:

import { TextDecoder } from 'node:util';

interface JsonRpcRequest {
  jsonrpc: '2.0';
  id?: number | string;
  method: string;
  params?: unknown;
}

interface JsonRpcResponse {
  jsonrpc: '2.0';
  id: number | string | null;
  result?: unknown;
  error?: { code: number; message: string; data?: unknown };
}

const decoder = new TextDecoder('utf-8');
let buffer = Buffer.alloc(0);

process.stdin.on('data', (chunk) => {
  buffer = Buffer.concat([buffer, chunk]);
  parseFrames();
});

function parseFrames() {
  while (true) {
    const headerEnd = buffer.indexOf('\r\n\r\n');
    if (headerEnd === -1) return;

    const header = buffer.slice(0, headerEnd).toString('utf8');
    const match = /Content-Length:\s*(\d+)/i.exec(header);
    if (!match) {
      // invalid frame, drop
      buffer = buffer.slice(headerEnd + 4);
      continue;
    }

    const length = Number(match[1]);
    const total = headerEnd + 4 + length;
    if (buffer.length  graceful('SIGINT'));
process.on('SIGTERM', () => graceful('SIGTERM'));

function graceful(reason: string) {
  // optional: send a shutdown notification before exiting
  send({ jsonrpc: '2.0', id: null, method: 'shutdown' } as any);
  setTimeout(() => process.exit(0), 50);
}

将运行脚本添加到 package.json:

{
  "type": "module",
  "scripts": {
    "dev": "ts-node src/server.ts",
    "build": "tsc",
    "start": "node dist/server.js"
  }
}

快速测试

在一个终端中,运行服务器:

npm run dev

在另一个终端中,发送一个框架JSON-RPC请求:

node -e "const m=JSON.stringify({jsonrpc:'2.0',id:1,method:'ping'});process.stdout.write('Content-Length: '+Buffer.byteLength(m)+'\r\n\r\n'+m)" | npm run dev

你应该得到一个框架式的回应 { pong: true }.

生产准备提示

  • 验证标头并拒绝超大有效载荷
  • 添加请求超时和心跳(周期性 ping)
  • 使用十六进制转储记录帧/解析错误
  • 使用结构化日志记录;避免STDIO上的控制台噪音
  • 如果双方都支持,请考虑使用MessagePack进行正文编码
  • 对工具调用实施背压和并发限制

有用的参考资料

  • JSON-RPC 2.0:https://www.jsonrpc.org/specification
  • 语言服务器协议帧(类似标头):https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#headerPart
  • MCP社区示例:在GitHub上搜索“MCP stdio服务器”

工具与能力

工具数量

1

资源数量

0

提示词数量

0

能力标签

JSON-RPC本地部署STDIO通信服务器开发TypeScript

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

看服务状态

查询容器、日志和监控指标,定位异常。

执行部署变更

在权限范围内触发发布、回滚和环境切换。

核对资源用量

汇总用量,找出闲置和超额的部分。

选择建议

值得选的地方

  • 只提供 1 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Node.js,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在运维云端场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Stdio Server Guide

MCP World · 本页

1stdio有1 个2026-05-17
Ui Tars Desktop 8a825770

MCP World

0stdio有1 个2026-05-17
Elie222 MCP

MCP World

0未说明未标注1 个2026-05-17
Arizeai Phoenix MCP

MCP World

0stdio有3 个2026-05-17
Unity MCP 87ee506e

MCP World

42HTTP有2 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Stdio Server Guide 怎么安装?

公开资料给出的安装命令是 npx tsc --init --rootDir src --outDir dist --esModuleInterop true,运行环境为 Node.js。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Stdio Server Guide 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Node.js;保存后完全退出客户端再打开,配置才会生效。

Stdio Server Guide 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Stdio Server Guide 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Stdio Server Guide 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP