A
securityA
licenseA
qualityA production-ready template for creating Model Context Protocol servers with TypeScript, providing tools for efficient testing, development, and deployment.
Last updated -
1
1
12
JavaScript
MIT License
该项目演示了使用 TypeScript 和@modelcontextprotocol/sdk
创建和交互简单的模型上下文协议 (MCP) 服务器和独立的 MCP 客户端。
设置包括:
my-mcp-greeter-server
:提供与问候相关的工具、资源和提示的 MCP 服务器。my-mcp-client-script
:一个简单的命令行客户端脚本,用于启动服务器、连接服务器并以编程方式与其功能进行交互。本例中客户端和服务器之间的通信使用**stdio(标准输入/输出)**传输机制。
该项目建设主要分为以下几个阶段:
开始之前,请确保已安装以下软件:
npx
(通常包含在 npm 中)——适用于使用 MCP Inspector 进行测试。my-mcp-greeter-server
)my-mcp-greeter-server
。npm init -y
。npm install @modelcontextprotocol/sdk zod
。npm install -D typescript @types/node
。npx tsc --init
。tsconfig.json
(设置"module": "Node16"
、 "target": "ES2022"
、 "outDir": "./build"
、 "rootDir": "./src"
等)。package.json
以包含"type": "module"
并添加了build
/ start
脚本。src/index.ts
。src/index.ts
) :McpServer
、 StdioServerTransport
、 z
)。name
和version
的常量。McpServer
,传递名称、版本并声明其功能(工具、资源、提示)。greet
) :使用server.tool()
创建了一个可供客户端调用的函数。其中包含描述,使用 Zod 定义了输入参数 ( name
, politeness
),并实现了处理程序以返回个性化的问候字符串。server-info
) :使用server.resource()
暴露静态数据。提供了一个唯一的 URI ( info://greeter/about
),并实现了处理程序以返回服务器的名称和版本。suggest-greeting
) :使用server.prompt()
创建了一个可重用的交互模板。模板中包含了描述,并实现了处理程序,用于返回一组预定义的用户/助手消息,以指导 LLM 交互。StdioServerTransport
作为通信方法。await server.connect(transport)
以使服务器准备就绪。console.error
语句以便在执行期间可见,这对于使用 stdout 来传输协议消息的 stdio 传输尤其重要。npm run build
在build
目录中将 TypeScript 编译为 JavaScript。my-mcp-client-script
)my-mcp-client-script
。npm init -y
。npm install @modelcontextprotocol/sdk
。npm install -D typescript @types/node
。tsconfig.json
。"type": "module"
和build
/ start
脚本更新了package.json
。src/client-script.ts
。src/client-script.ts
) :Client
, StdioClientTransport
, path
, url
)。index.js
文件的路径(相对或绝对)。StdioClientTransport
,提供command
( node
)和args
(服务器脚本的路径)。此配置至关重要,因为客户端传输会启动服务器进程。Client
实例,赋予它一个身份并声明其使用工具和资源的意图。await client.connect(transport)
,启动服务器进程并通过其 stdio 流建立 MCP 连接。await client.callTool()
调用greet
工具。await client.readResource()
读取server-info
资源。await client.getPrompt()
获取suggest-greeting
提示。console.log
显示从服务器收到的响应。finally
块中使用await client.close()
来彻底关闭连接并终止服务器进程。cd my-mcp-greeter-server && npm run build
cd ../my-mcp-client-script && npm run build
cd my-mcp-client-script
npm run start
(或node build/client-script.js
)console.log
)和服务器( console.error
)的交叉输出,确认工具/资源/提示的通信和执行成功。GreeterServer
) :client-script.ts
) :当客户端脚本测试程序交互时,您可以使用 MCP 检查器单独测试服务器的功能:
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
提供问候工具、资源和提示的模型上下文协议服务器,演示使用 TypeScript 的客户端-服务器交互。
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sanketshinde3001/MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server