将LM Studio连接到用于文件处理、GitHub操作和浏览器控制的MCP服务器。
逐步详细的mcp.json配置,帮助本地模型使用文件系统、GitHub OAuth工具及Playwright,同时包含模型选择及常见错误修复方案。
来源: Connect LM Studio to MCP Servers: Filesystem, GitHub, and Browser Control (3 Working Configs)
现在,完全在本地机器上运行的模型不仅可以讨论工具,还能实际调用这些工具。过去要将本地模型与 GitHub 等平台连接,需要手动创建个人访问令牌,并确保其被正确放入 JSON 文件的指定字段中。如今这类繁琐步骤已大多消失。LM Studio 可以连接到三个 MCP 服务器,分别用于文件系统操作、GitHub 操作以及浏览器控制,每个服务器都有对应的配置文件。
需要准备的事项
在修改 mcp.json 之前,有几项准备工作是必要的。
LM Studio 0.4.10 或更高版本。 正是该版本为 MCP 服务器加入了 OAuth 支持,同时也能兼容最初支持 MCP 功能的 0.3.17 版本。该软件更新频繁,最近每月都有多个小版本发布,因此直接使用最新版本最为简便。
能够发出工具调用指令的模型。并非所有本地模型都能稳定实现这一功能。对于拥有20GB显存的高端显卡,有三种不错的选择:
- Qwen3-Coder-30B-A3B-Instruct的总参数量为300亿,但由于采用了MoE架构,每个标记的实际活跃参数仅约33亿。在4位量化模式下,其显存需求约为17至20GB,同时具备26.2万字的上下文窗口。
- gpt-oss-20b的显存占用较低,约为14GB,且运行速度明显更快,这在显卡需要与其他程序共享时尤为有用。
- Qwen3.5-9B 是最轻量的模型,作为一款密度较高的9B模型,在4位量化下仅需约6GB内存,因此中端显卡完全能够轻松运行。它拥有与Coder模型相同的262K原生上下文长度,可原生调用工具且BFCL-V4评分表现良好,也是此处截图中加载的模型。如果不确定显卡是否足以运行另外两个更大型号模型,那么它是个不错的起点。
未经指令或对话调优的基线模型大多无法生成结构化的工具调用。如果某款模型的介绍中未提及工具使用或函数调用功能,建议选择经过指令调优的版本。
Node.js 18或更高版本。文件系统服务器与浏览器控制服务器均通过npx启动,使用前请先检查版本号:
node --version
任何以 v18 或更高版本开头的版本均可使用。如果找不到该命令,说明未安装 Node,同时 npx 也不存在。另一个快速检查方法是确认 npx 本身是否存在:
npx --version
它随 Node 一同提供,因此只要首次检查通过,几乎总能合格,但这只是在使用其进行文件系统及浏览器配置之前的简单验证。
这些都无法确认 LM Studio 自带的版本号。应用顶部的标题栏会显示该版本,应为 0.4.10 或更高版本。
上方的截图显示,某个安装版本的标题栏中显示的版本号为 0.4.23,即当时的最新版本。
打开配置文件
在 LM Studio 右侧边栏中打开Integrations选项卡,点击Install,然后再选择Edit mcp.json。这就是每个服务器条目所在编辑器。
配置 1:文件系统
通过这一功能,查看文件夹内容不再需要繁琐的复制粘贴操作,只需一个简单指令即可完成。官方文件系统服务器允许模型读取、写入、搜索和列出目录,但仅限于您授权的路径范围内。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/you/projects"
]
}
}
}
将 /Users/you/projects 替换为模型应探索的文件夹。还可以添加更多路径。路径之外的内容对模型是不可见的,这正是设置此限制的目的。该条目包含两个重要部分:
command和args的作用是运行npx -y @modelcontextprotocol/server-filesystem,随后指定允许访问的目录,由 LM Studio 作为子进程来管理。allowed-directory参数决定了模型可访问的范围。如果项目涉及多个文件夹,可以依次列出这些文件夹。
保存后,LM Studio 会检测到新的条目。加载一个支持工具调用的模型(Qwen 3.5 9B 即可),开始新的对话,然后在侧边栏中启用 mcp/filesystem 功能。
一个不错的初步测试是要求模型在项目文件夹下查找TODO.md文件并总结剩余工作。模型会自行调用list_directory和read_file函数。在每次调用执行之前,LM Studio都会弹出确认对话框,建议仔细阅读这些提示,因为拥有磁盘写入权限的本地模型不应在无人监控的情况下运行。
配置2:GitHub
此配置需要LM Studio 0.4.10或更高版本。GitHub的远程MCP端点不支持动态客户端注册功能,而通常情况下客户端正是通过该功能自行完成OAuth注册的。因此必须先手动创建一个OAuth应用。在这方面LM Studio并无特殊之处,VS Code和GitHub的Copilot CLI也面临同样的限制。设置过程大约需要两分钟:
- 打开 github.com/settings/developers,选择OAuth Apps,然后点击New OAuth App。
- 可以任意填写名称和主页网址,因为这些在这里并不重要。将Redirect URI设置为确切的
http://127.0.0.1:33389/mcp-oauth-callback。 - 点击Register application,在接下来的页面上再选择generate a new client secret。请将客户端 ID 和密钥妥善保存,因为该密钥只会显示一次。
拿到这两个值后,配置内容如下:
{
"mcpServers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"auth": {
"CLIENT_ID": "<your Client ID>",
"CLIENT_SECRET": "<your client secret>"
}
}
}
}
保存文件,启动服务器,然后点击Authenticate,接着选择Trust, and Open in Browser。GitHub的OAuth页面会打开一个浏览器窗口。在页面底部点击Authorize <username>授予访问权限后,该令牌就会像其他基于OAuth的服务器一样被存储起来。
GitHub的同意页面仅提供批准或拒绝选项,没有范围选择功能。更精细的控制需要在LM Studio中实现。打开集成面板,找到属于mcp/github服务器的工具列表。它所提供的每个工具都会单独列出,其中包括create_pull_request、delete_file、push_files和merge_pull_request,此外还有数十种其他工具,每种工具都配有复选框以及“询问”或“允许”的切换选项。
那份清单值得仔细研究。取消选中模型不应触碰的选项,如果目标仅仅是读取和总结内容,那么delete_file和push_files显然是最需要排除的选项。
在该组的最终截图中,get_me被调用了一次,search_repositories则针对实时GitHub被调用了两次,并且对创建时间和更新时间进行了正确的过滤。只读工具以及模型自身的仓库仍保持选中状态,而delete_file和push_files这类具有破坏性的工具则被取消选中。
配置3:浏览器控制
此配置让本地模型能够直接查看实时网页,而非仅依赖训练数据进行推测。Playwright MCP服务器会运行真实的浏览器,并提供结构化的页面内容而非截图,这样即便是小型本地模型也能可靠地导航并提取文本。
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest",
"--headless"
]
}
}
}
在将其粘贴进去之前需要了解两点。服务器默认会打开一个可见的浏览器窗口,即“有界面模式”,而配置中的 --headless 参数可以关闭这一功能。在带有显示设备的机器上,取消该参数后就可以实时查看模型的操作过程,当选择器出现故障时非常有用。此处同样要求使用 Node 18 或更高版本,与配置 1 一致;如果缺少浏览器二进制文件,首次运行时可能会提示通过 npx playwright install 进行下载。
一个简单的测试方法是让模型打开 Hacker News 的首页并总结排名前五的新闻。它会先执行 browser_navigate 命令,然后读取页面的辅助功能树以获取标题和链接信息,整个过程中不会使用视觉模型或截图解析功能。
为研究或OSINT类工作而刻意避免被指纹识别的浏览器自动化属于另一类需求。基于Camofox的服务器,如Camofox-MCP,可满足此类需求。此配置为通用基准。
故障排除
以下是出现概率最高的问题,按常见程度从高到低排列。
模型从不调用工具。常见原因是在本应加载指令优化型或聊天优化型模型的位置加载了基础模型或补全模型。请阅读模型说明,若其中未提及工具使用或函数调用功能,则需更换模型。Qwen 3.5 9B是适合本地使用的强大工具调用模型选择。
修改 mcp.json 后,服务器不会显示在聊天侧边栏中。请先从“程序”选项卡重新加载服务器列表,如果仍无效,则需完全重启 LM Studio。直接在磁盘上编辑文件而非使用应用内编辑器时,更有可能需要重启。
工具调用相关的 JSON 格式错误或参数异常。请降低采样温度,因为工具调用是少数创意模式会对其产生负面影响的任务之一。同时请确保上下文长度至少为 4096 个标记。工具架构会快速消耗上下文,尤其是 GitHub 的大量工具集,过短的上下文长度是导致调用被截断的常见隐性原因。
最终结果
最终得到了三台服务器、无需进行 API 调用,同时还拥有一个能够读取文件系统、操作真实 GitHub 仓库以及驱动实时浏览器的本地模型,所有调用都会在 LM Studio 的确认对话框中经过检查与批准,没有任何操作会在无人监控的情况下运行。
仅凭这一点,它就已经是一个实用的本地智能体,同时也是构建完整自主工作流的基础。合理的下一步是将这三台服务器整合为一个统一的智能体循环,而非通过单独的提示词来控制每台服务器。
参考文档
LM Studio 关于使用 MCP 服务器以及 MCP 与 OAuth 集成的文档规定了其中统一使用的 command、args、url 和 auth 结构。GitHub 的 MCP 服务器代码库及 GitHub 的设置文档涉及 Config 2,官方的 modelcontextprotocol 文件系统服务器对应 Config 1,而 microsoft/playwright-mcp 代码库则记录了 Config 3 的默认标题行为及相关参数。
相关阅读
- 重新测算 MCP 令牌成本:两种工具描述导致了成本的上升 —— 对九个 MCP 服务器进行13天的重复测试后发现,工具描述所对应的令牌数量从36,320增加到了38,738,几乎全部来自某台服务器对其原有描述的重写。