【AI】mcp项目实战开发记录 - 踩坑mcp.json配置文件

针对场景:Qoder连接local mcp server的mcp.json文件配置,即stdio方式启动。

{
  "mcpServers": {
    "your-mcp-identifier": {
      "command": "uv",
      "args": [
	  "--directory", 
	  "D:/usr/username/your-project-name/src/mcp_server",
	  "run",
	  "server.py"
	  ]
    }
  }
}

注意⚠️:

  1. command是你使用来启动项目的工具,我用的uv
  2. --directory,是指定项目的目录,我这里是绝对路径,看args的第二个元素,可以看出这里是进入到了server.py的父级目录了
  3. run和server.py代表我实际上要运行的是server文件,可以看成是启动文件,与main一个作用。

为了更好的理解,我把项目的结构截图出来(重点的目录用黄色高亮显示):
image

为什么说这会是我的踩坑项目呢:

  1. 网上很多的配置文件command都是用的npx或者远程mcp服务的连接。而我看的qoder官方文档里,并没有提到uv命令启动的本地mcp服务的连接配置。
    image

  2. 我参考别人用了uv命令启动的配置文件写法,我发现是类似这样的:

    "mcpServers": {
    	"your-mcp-identifier": {
    	  "command": "uv",
    	  "args": [
    	  "run",
    	  "server.py"
    	  ]
    	}
      }
    

    由于在项目终端运行时,我进入到server.py文件目录下时,运行uv run server.py是可以成功启动服务的。所以我理所应当的任务,这个写法是用来启动服务的,于是我把绝对路径写在了配置文件里,类似这样:

    "mcpServers": {
    	"your-mcp-identifier": {
    	  "command": "uv",
    	  "args": [
    	  "run",
    	  "absolute_path/server.py"
    	  ]
    	}
      }
    

    但这样写,qoder也是显示连接不成功。在翻了很多配置文件的写法后,我发现有一种启动命令用npx的写法是在启动前加入了--directory,于是我死马当活马医,command是uv不变,在args里面的前两位元素加入了--directory和父级的绝对目录。这样配置以后,qoder才显示连接成功。

posted @ 2025-10-27 00:23  leah-xx  阅读(2)  评论(0)    收藏  举报