MCP (Model Context Protocol) 是一种让 AI 模型与外部工具和数据源进行交互的协议。MCP Server 通过标准的 JSON-RPC 2.0 协议进行通信,支持 stdio(标准输入输出)传输方式。本文将介绍如何通过向控制台发送 JSON 字符串的方式,快速验证一个基于 stdio 的 MCP Server 是否能正常工作。
本文以 postgres-mcp 为例进行演示。这是一个用于连接 PostgreSQL 数据库的 MCP Server。
首先确保你已经安装了 uv
(Python 包管理器):
# 安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# 安装 postgres-mcp
uv pip install postgres-mcp
确保你有一个可访问的 PostgreSQL 数据库,并设置环境变量:
export DATABASE_URI="postgresql://username:password@localhost:5432/dbname"
在终端中启动 postgres-mcp server:
uv run postgres-mcp --access-mode=unrestricted
服务器启动后,它将等待来自标准输入的 JSON-RPC 请求。
MCP 协议要求首先发送一个初始化请求。在同一个终端中,输入以下 JSON(按 Enter 发送):
{"jsonrpc": "2.0", "method": "initialize", "params": {"protocolVersion": "0.1.0", "capabilities": {}, "clientInfo": {"name": "test-client", "version": "1.0.0"}}, "id": 1}
预期响应:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"protocolVersion": "0.1.0",
"capabilities": {
"tools": {},
"resources": {}
},
"serverInfo": {
"name": "postgres-mcp",
"version": "0.1.0"
}
}
}
如果收到类似的响应,说明服务器已成功初始化。
发送以下请求查看服务器提供的所有工具:
{"jsonrpc": "2.0", "method": "tools/list", "params": {}, "id": 2}
预期响应示例:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"tools": [
{
"name": "query",
"description": "Execute a PostgreSQL query",
"inputSchema": {
"type": "object",
"properties": {
"sql": {
"type": "string",
"description": "SQL query to execute"
}
},
"required": ["sql"]
}
},
{
"name": "list_tables",
"description": "List all tables in the database",
"inputSchema": {
"type": "object",
"properties": {}
}
}
]
}
}
除了命令行验证,你还可以使用 MCP Inspector 提供的 Web 界面:
# 安装 MCP Inspector
npx @modelcontextprotocol/inspector
# 在 Web 界面中配置你的 MCP Server
这将打开一个 Web 界面,你可以在其中:
通过以上步骤,你可以快速验证任何基于 stdio 的 MCP Server 是否能正常工作。关键步骤包括:
clientInfo
的初始化请求tools/list
查看可用工具tools/call
调用具体工具这种验证方法不仅适用于 postgres-mcp,也适用于任何遵循 MCP 协议的服务器实现。通过直接发送 JSON 请求,你可以快速了解服务器的功能和状态,为后续的集成开发打下基础。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。