在使用MCP服务的过程中,我们经常需要配置MCP的JSON文件。然而,许多用户在配置MCP服务时会频繁遇到问题,例如报错或服务无法正常拉取等情况。不少人对mcp.json文件中每个配置项的具体作用和用法感到困惑。
本文将详细介绍如何在阿里云百炼平台、以及Windows、Linux和MacOS操作系统中正确配置mcp.json文件。通过这篇文章,您将全面掌握MCP服务的配置方法,并详细了解每个参数的具体用途和使用方式。
MCP按传输层类型划分,可以分为两种
- 本地进程通信:标准输入/输出(Stdio),通过标准输入输出流实现客户端与服务器之间的通信,适用于本地集成与命令行工具。
- 远程API:
- 服务器发送事件(SSE)通过HTTP协议实现服务器向客户端的单向通信,适用于需要实时更新的场景。
- 可流式传输的HTTP(Streamable HTTP):Streamable HTTP 是一种基于标准HTTP协议的动态流式传输方案。它通过单一端点(如/message)实现请求响应与流式数据的灵活切换,既兼容传统HTTP交互,又支持按需升级为流式传输,适用于云原生和分布式场景
在阿里云百炼平台当中提供了三种MCP服务配置,分别为npx、uvx、sse 其中npx和uvx都属于标准输入/输出(stdio)
一、NPX【Stdio】
首先,我们需要了解什么是npx,以及为什么通过npx可以实现MCP服务的配置。npx是Node.js的一个命令行工具,用于直接运行npm包中的命令,无需全局安装或显式指定路径。它的核心价值在于简化开发流程,通过临时安装、版本指定和依赖隔离,解决了全局包污染和版本冲突的问题。
通过npx可以实现MCP服务的配置,是因为npx能够临时下载并执行指定包中的可执行文件。在配置MCP服务时,通常需要在JSON配置文件中指定npx作为命令,以及相应的包名和参数。也就是说,如果有开发者将搭建好的MCP Node.js项目发布到npm官方仓库,我们可以直接通过npx的方式启动该MCP服务。
1、百炼平台配置npx的MCP服务
在百炼平台中,我们可以直接配置对应的通过npx启动的MCP服务,例如高德地图的MCP服务。
在高德地图的官网中,提供了相应的配置信息。我们只需复制并粘贴这些配置信息即可完成设置。
高德官网:https://lbs.amap.com/api/mcp-server/gettingstarted#s11
尽管我们直接复制并使用了这些配置信息,但您可能会好奇 JSON 文件中每项配置的具体含义是什么。此外,除了现有的配置信息外,还有哪些扩展内容可以进一步利用呢?
{ "mcpServers": { "amap-maps": { "command": "npx", "args": ["-y","@amap/amap-maps-mcp-server"], "env": { "AMAP_MAPS_API_KEY": "您在高德官网上申请的key" } } } }
MCP的配置文件基本介绍
mcpServers(必需):定义所有MCP服务器的集合。 server_name(自定义):服务标识 amap-maps。 command(必需):启动命令 npx args:启动命令后需要的参数 env(可选):环境变量(如API密钥、路径配置)。
以上配置信息仅为最基本的部分,除此之外,还存在一些扩展配置可供使用。这些扩展配置能够提供更多的功能和灵活性,帮助用户根据需求调整和优化相关设置。以下是一些常见的扩展信息及其作用介绍。
完整的案例
{ "mcpServers": { "amap-maps": { "disabled":false, "timeout":60, "command": "npx", "args": ["-y", "@amap/amap-maps-mcp-server"], "env": { "AMAP_MAPS_API_KEY": "您在高德官网上申请的key" }, "type":"stdio" } } }
2、Windows/MacOS/Linux当中配置npx的MCP服务
在本地启动 npx 的 MCP 服务之前,需要先确保已安装 Node.js。
Nodejs 下载地址:https://nodejs.org。
在 Windows 系统中,如果直接使用默认的 npx 默认JSON 配置来启动 MCP 服务,可能会导致报错。因此,我们需要在 Windows 环境下对 npx 的 MCP 服务配置进行单独修改。
{ "mcpServers": { "amap-maps": { "disabled":false, "timeout":60, "command": "cmd", "args": ["/c","npx","-y", "@amap/amap-maps-mcp-server"], "env": { "AMAP_MAPS_API_KEY": "您在高德官网上申请的key" }, "type":"stdio" } } }
其中,cmd 是 Windows 的命令行工具,而参数 /c 的作用是执行指定的命令(如 npx @amap/amap-maps-mcp-server),并在命令运行完成后自动退出 cmd 进程,不会留驻在后台。这种方式通常用于一次性任务(例如启动服务或运行脚本),以避免命令行窗口持续占用系统资源。
相比之下,在 macOS 和 Linux 系统中则无需担心类似报错问题,直接使用标准的 MCP 服务配置即可正常运行。
二、UVX【Stdio】
什么是 uv:uv 是一款基于 Rust 开发的高性能 Python 包管理器,其目标是取代传统的工具链(例如 pip、venv 和 pip-tools 等),从而提供更高效、更现代化的解决方案。
uvx 与 uv 的关系:uvx 是 uv 的一项功能扩展,专注于运行 Python 工具。它的作用与 npx 类似。也就是说,只要我们将项目打包并发布到 PyPI 上,便可以通过 uvx 命令直接运行对应的项目。
1、百炼平台配置UVX的MCP服务
在百炼平台中,我们可以直接配置与 UVX 相关的 MCP 服务。例如,阿里云的 AnalyticDB for PostgreSQL 官方 MCP 服务便可以在此平台上完成配置。
{ "mcpServers": { "adbpg-mcp-server": { "command": "uvx", "args": [ "adbpg_mcp_server" ], "env": { "ADBPG_HOST": "host", "ADBPG_PORT": "port", "ADBPG_USER": "username", "ADBPG_PASSWORD": "password", "ADBPG_DATABASE": "database" } } } }
上述MCP服务所在位置:https://bailian.console.aliyun.com/tab=mcp#/mcp-market/detail/adb-pg
其中配置信息和npx的基本相同,只有"command": "uvx"从npx换成了uvx
2、Windows/MacOS/Linux当中配置UVX的MCP服务
在本机启动 UVX 的 MCP 服务时,需要确保已安装 Python,以保证服务能够正常运行。
Python下载地址:https://www.python.org
安装好Python之后要安装uv,命令如下
pip install uv
然后就可以在本机启动对应的UVX的MCP服务
三、SSE
SSE:基于 HTTP 长连接的“单向通道”
通信原理:SSE(Server-Sent Events)通过 HTTP 长连接实现远程通信功能。
SSE通信通过/sse端点建立长连接,服务器主动推送事件流至客户端;客户端可通过独立接口(如/query)发送请求
示例场景:多客户端实时监控日志、远程数据库查询等。
核心优势:
- 支持远程访问:突破本地环境限制,适用于分布式部署场景。
- 实时性:服务器可主动推送事件(例如进度通知),确保信息传递的及时性。
1、百炼平台配置SSE的MCP服务
在百炼平台中,我们可以直接配置与 SSE 相关的 MCP 服务,例如高德地图的 MCP 服务,从而实现对应功能的集成与应用。
{ "mcpServers": { "amap-amap-sse": { "url": "https://mcp.amap.com/sse?key=您在高德官网上申请的key" } } }
以上配置信息仅为SSE最基本的部分
mcpServers(必需):定义所有MCP服务器的集合。 server_name(自定义):服务标识 amap-amap-sse。 url(必需): SSE服务的地址
url当中的/sse为sse服务的入口,key是验证权限的密钥
2、其余默认配置包括如下
其他案例
{ "mcpServers": { "amap-amap-test": { "url": "https://mcp.amap.com/sse", "disabled":false, "timeout":60, "type":"sse", "headers": { "Authorization": "Bearer 12121221" } } } }
在其他的平台当中配置方式和上面的方式都是一样的。
四、Streamable HTTP【MCP服务】
Streamable HTTP:灵活兼容的“新一代传输”
1、通信原理
Streamable HTTP 是 SSE 的升级方案,完全基于标准 HTTP 协议,摒弃了专用的 SSE 端点,所有消息通过 /message 端点进行传输。
动态升级:服务器能够根据需求将普通 HTTP 请求升级为 SSE 流,支持流式响应,从而实现更高效的通信。
2.、核心优势
无状态支持:服务器可以完全以无状态方式运行,显著降低运维复杂度。
基础设施兼容:与 CDN、API 网关、负载均衡等基础设施无缝集成,提升部署灵活性。
灵活流式处理:支持按需切换至流式传输模式(例如长文本生成进度推送),满足多样化场景需求。
现在对于配置方式是不是更清楚了呢🥰~~
🌴注意注意:
可直接点击阿里云百炼 MCP服务使用教程合集链接跳转回合集文章页面。
可直接点击下面链接直接进控制台创建:
👉阿里云百炼详情了解可点击此官网链接:阿里云百炼官网介绍
👉阿里云百炼控制台页面可点击此链接直接进入:阿里云百炼控制台
如果在过程中有任何的疑问都可以在评论区中留言探讨或是加入我们的官方支持群(群号:77600022533)进行交流反馈!