donglin.li

主页/Home 履历/CV 帖文/Posts 深色/Dark

🔖 · OpenCode常用配置

Posted on 2026/8/30

    OpenCode刚开箱还比较毛坯,需要稍微配置一下,而且很多MCP不能/不推荐按照其官方仓库的说明直接安装,所以在这里分享一下我自己的配置。

    配置项说明

    OpenCode的配置文件在~/.config/opencode/opencode.json

    LSP

    OpenCode支持LSP,但是得在配置文件里面手动开一下

    "lsp": true,

    有两种配置方法,本质上都用的是exa。启用OpenCode内置的WebSearch需要额外配置环境变量才能爽用,外接MCP的方式则只需要改OpenCode自己的配置文件。推荐后者。

    内置websearch工具

    需要在OpenCode的配置文件中配置permission:

    "permission": {
        "websearch": "allow"
    }

    然后去shell配置文件(例如~/.zshrc)中添加环境变量,否则无法启用(搞这一出是何意味…):

    export OPENCODE_ENABLE_EXA=1

    OpenCode文档-websearch

    外接MCP工具

    外接Exa MCP的方法配置更方便。需要注意的是,只需要用到web_search_exa这一个工具。默认安装会多一个web_fetch_exa,没必要。

    "exa": {
        "type": "remote",
        "url": "https://mcp.exa.ai/mcp?tools=web_search_exa",
        "enabled": true
    }

    浏览器自动化

    浏览器自动化可以通过MCP或者Skill工具实现。Skill的优点就是不用的时候节省上下文,但是之前尝试过browser-use的Skill + CLI工具,总感觉不如直接用MCP方便,而且Skill的更新维护也更麻烦,所以这里更推荐MCP。Chrome和Firefox都有对应的DevTools MCP。顾名思义,DevTools面向的是开发者,如果完整加载工具的话过于臃肿了,好在二者都有简化的Slim模式,对于普通的浏览器自动化需求,使用Slim模式即可。

    Chrome DevTools

    Chrome DevTools 仓库
    我这里是提前``brew install chrome-devtools-mcp`安装了MCP,然后在OpenCode配置文件中添加如下内容:

    "chrome-devtools": {
        "type": "local",
        "command": ["chrome-devtools-mcp", "--slim", "--no-usage-statistics"],
        "enabled": false
    }

    如果没装,也可以把comman部分改成"command": ["npx", "-y", "chrome-devtools-mcp@latest", "--slim", "--no-usage-statistics"](没试过行不行,应该行吧)
    需要注意的是--no-usage-statistics不写的话是默认收集使用数据的

    Firefox DevTools

    Firefox DevTools 仓库
    Firefox官方没给OpenCode的配置方法(bro一天到晚高举开源大旗结果MCP文档只写了Claude和Codex),不过和Chrome DevTools大同小异。

    "firefox-devtools": {
        "type": "local",
        "command": ["npx", "-y", "@mozilla/firefox-devtools-mcp@latest", "--tool-preset", "slim"],
        "enabled": false
    }

    Slim模式对比

    相对而言,Chrome的Slim更简洁,只有3个工具

    • chrome-devtools_evaluate - 执行JavaScript脚本
    • chrome-devtools_navigate - 加载URL
    • chrome-devtools_screenshot - 截图

    而Firefox的更“全能”,有17个工具(请问Slim在哪里。。)

    • firefox-devtools_list_pages - 列出标签页
    • firefox-devtools_new_page - 打开新标签页
    • firefox-devtools_navigate_page - 导航到URL
    • firefox-devtools_select_page - 选择标签页
    • firefox-devtools_close_page - 关闭标签页
    • firefox-devtools_take_snapshot - 捕获DOM快照
    • firefox-devtools_clear_snapshot - 清除快照UID
    • firefox-devtools_click_by_uid - 点击元素
    • firefox-devtools_fill_by_uid - 填充输入框
    • firefox-devtools_fill_form_by_uid - 填充表单
    • firefox-devtools_hover_by_uid - 悬停元素
    • firefox-devtools_drag_by_uid_to_uid - 拖拽元素
    • firefox-devtools_upload_file_by_uid - 上传文件
    • firefox-devtools_get_page_text - 获取页面文本
    • firefox-devtools_screenshot_page - 页面截图
    • firefox-devtools_screenshot_by_uid - 元素截图
    • firefox-devtools_resolve_uid_to_selector - UID转CSS选择器

    完整配置文件

    {
      "$schema": "https://opencode.ai/config.json",
      "lsp": true,
      "mcp": {
        "exa": {
          "type": "remote",
          "url": "https://mcp.exa.ai/mcp?tools=web_search_exa",
          "enabled": true
        },
        "chrome-devtools": {
          "type": "local",
          "command": ["chrome-devtools-mcp", "--slim", "--no-usage-statistics"],
          "enabled": false
        },
        "firefox-devtools": {
          "type": "local",
          "command": ["npx", "-y", "@mozilla/firefox-devtools-mcp@latest", "--tool-preset", "slim"],
          "enabled": false
        }
      }
    }

    推荐给浏览器自动化的MCP默认"enabled": false,要用的时候可以手动打开

    Powered by Hexo
    Theme based on Minima by Adi Sakti Jrs
    Published on GitHub