一招让 Reasonix 拥有全网搜索和操作数据库的能力

前面四篇讲的是 Reasonix "出厂自带"的能力——读文件、写代码、跑命令。
>
但说实话,如果 AI 只能操作你本地的文件,那它也就是个"高级点的脚本助手"。真正让它变强的,是能接入外部工具——搜索网页、查数据库、调 API。
>
今天讲的 MCP 协议,就是干这件事的。

一、MCP 是什么?用一句话讲清楚

MCP(Model Context Protocol)是一个开放协议,让 AI 能调用外部工具。

就像 USB-C 是一个通用接口,什么设备都能插——MCP 就是 AI 的 USB-C 接口。只要外部工具实现了 MCP 协议,AI 就能直接调用它。

目前 MCP 已经是 AI 工具领域的事实标准

  • Claude Code 支持
  • Cursor 支持
  • VS Code 的 GitHub Copilot 支持
  • Reasonix 支持
而且 Reasonix 可以直接读取 Claude Code 的 .mcp.json 配置文件——你在 Claude 里配好的 MCP 服务器,拿到 Reasonix 上直接就能用。


二、快速上手:给 AI 接上网页搜索能力

先演示一个最实用的场景:让 AI 能搜索网页

方案一:Tavily 搜索(推荐,零配置)

Tavily 是一个专为 AI 设计的搜索 API。注册获得 API Key 后,在配置里加一行:

[[plugins]]
name    = "tavily"
command = "npx"
args    = ["-y", "@tavily/mcp"]
env     = { TAVILY_API_KEY = "${TAVILY_API_KEY}" }

然后设置环境变量:

export TAVILY_API_KEY=tvly-你的key

重启 Reasonix,AI 就能搜索网页了。试试看:

你:帮我搜索一下最近 Rust 语言有什么新特性

AI:让我搜一下……
    → mcp__tavily__search "Rust 最新特性 2025"
    
    搜索结果:
    1. Rust 1.85 发布,增加了……
    2. ……

方案二:Bing 搜索(免费,不需要额外注册)

如果你不想注册 Tavily,也可以用 Bing:

[[plugins]]
name    = "bing"
command = "npx"
args    = ["-y", "@modelcontextprotocol/server-bing-search"]
env      = { BING_API_KEY = "${BING_API_KEY}" }

Bing Search API 在 Azure 上可以免费申请(每月 1000 次调用)。

效果对比:有搜索 vs 没搜索

没搜索时:

你:Go 语言最新的版本是什么?
AI:我没办法实时获取这些信息……(根据我的训练数据,Go 1.22 于 2024 年 2 月发布)

有搜索时:

你:Go 语言最新的版本是什么?
AI:让我查一下……
    → mcp__tavily__search "Go 最新版本 2025"
    
    根据搜索结果,Go 1.24 于 2025 年 2 月发布,主要新特性包括……

这就是 MCP 的价值——AI 不再是"截止到训练数据的那一瞬间"的知识水平,而是实时的。


三、再进一步:操作数据库

刚刚是"读"外部信息,MCP 还能让 AI"写"——比如操作数据库。

接入 SQLite

[[plugins]]
name    = "sqlite"
command = "npx"
args    = ["-y", "@modelcontextprotocol/server-sqlite", "/path/to/your.db"]

然后你就能让 AI 直接查数据库了:

你:帮我查一下这个月用户的注册趋势

AI:让我查一下数据库……
    → mcp__sqlite__query "SELECT date(created_at) as day, count(*) FROM users WHERE created_at >= date('now', '-30 days') GROUP BY day ORDER BY day"
    
    这个月用户注册趋势如下:
    - 日均注册量:235 人
    - 峰值出现在 3 月 15 日:412 人
    - 周末注册量偏低,约平日的 60%

接入 PostgreSQL / MySQL

同样通过 MCP 社区插件:

[[plugins]]
name    = "postgres"
command = "npx"
args    = ["-y", "@anthropic/mcp-postgres", "postgresql://user:pass@localhost:5432/mydb"]


四、核心概念:MCP 三种资源类型

MCP 定义了三种 AI 可以跟外部工具交互的方式:

1. Tools(工具)— AI 主动调用

最常用的类型。AI 自主决定何时调用。

我们上面配置的搜索、查数据库都是 Tools。AI 觉得需要查资料时,自动就调了。

2. Resources(资源)— 你主动引用

在 Chat 里用 @ 引用。像之前讲过的 @src/main.go 是引用本地文件——MCP 插件也可以暴露资源:

在消息里写 @sqlite:schema,AI 就能拿到数据库的表结构。

3. Prompts(提示词)— 预设的工作模板

MCP 插件可以暴露预设的 prompt,变成斜杠命令:

/mcp__sqlite__analyze   # 分析数据库性能
/mcp__tavily__search    # 搜索某个话题


五、配好 .mcp.json 就能迁移

如果你已经是 Claude Code 用户,配了一堆 MCP 服务器,转到 Reasonix 不需要重新配

Claude Code 的配置文件是这样的:

// .mcp.json(项目根目录)
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/project"]
    },
    "stripe": {
      "type": "http",
      "url": "https://mcp.stripe.com",
      "headers": { "Authorization": "Bearer ${STRIPE_KEY}" }
    }
  }
}

Reasonix 直接读取这个文件,跟自己的 [[plugins]] 合并加载。两个来源如果有重名,reasonix.toml 优先。

所以你可以: 1. 在项目根目录放一个 .mcp.json 2. Reasonix 和 Claude Code 共用同一份配置 3. 想用 Reasonix 特有的配置,写在 reasonix.toml[[plugins]]


六、一些实用的 MCP 插件推荐

官方生态

MCP 有一个官方插件市场:https://github.com/modelcontextprotocol/servers

插件用途安装方式
@modelcontextprotocol/server-filesystem安全的文件系统访问(限定目录)npx -y @modelcontextprotocol/server-filesystem /path
@modelcontextprotocol/server-github操作 GitHub(Issue/PR/代码搜索)npx -y @modelcontextprotocol/server-github
@modelcontextprotocol/server-postgres连接 PostgreSQL 数据库npx -y @modelcontextprotocol/server-postgres "连接字符串"
@modelcontextprotocol/server-sqlite连接 SQLite 数据库npx -y @modelcontextprotocol/server-sqlite ./data.db
@modelcontextprotocol/server-brave-searchBrave 搜索npx -y @modelcontextprotocol/server-brave-search
@modelcontextprotocol/server-puppeteer浏览器自动化npx -y @modelcontextprotocol/server-puppeteer

社区推荐

插件用途项目地址
@tavily/mcpAI 优化的网页搜索https://tavily.com
@stripe/mcpStripe 支付操作Stripe 官方
@cloudflare/mcpCloudflare 服务管理Cloudflare 官方

企业自建

如果你的团队有内部 API,也可以自己写 MCP 服务器——一个用任何语言写的、通过 stdin/stdout 通信的程序,实现 tools/listtools/call 两个接口就行了。

Reasonix 自带了一个参考实现:

# 编译后就能拿到参考实现
make build
# 输出 bin/reasonix-plugin-example

# 它实现了 echo、wordcount、代码审查、风格指南四个功能

你可以照抄这个模板,写自己的内部工具。


七、配置文件的对应关系

为了让你更清楚,这里把 Reasonix 的 [[plugins]].mcp.json 的对应关系列出来:

场景reasonix.toml.mcp.json
本地命令[[plugins]] name/command/args/envmcpServers.<name>.command/args/env
远程 HTTP[[plugins]] type="http"/url/headersmcpServers.<name>.type/url/headers
参数展开${VAR} / ${VAR:-default}同上
等价配置示例:

# reasonix.toml 写法
[[plugins]]
name    = "filesystem"
command = "npx"
args    = ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]

// .mcp.json 等效写法
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
    }
  }
}


八、安全注意事项

给 AI 接入外部工具时,有几点需要留意:

1. 只读提示

MCP 协议允许插件声明自己是"只读"的。Reasonix 会识别这个标记——只读工具可以并行调度、权限层自动放行。写入型工具会走正常的权限审批流程。

2. 数据库写操作

如果你给 AI 接了数据库,建议先确认你的数据库用户只有只读权限。等熟悉了再放开写权限。

3. API Key 管理

所有密钥都通过 环境变量 传入,不要写死在配置文件里:

# ✅ 正确:从环境变量读取
env = { TAVILY_API_KEY = "${TAVILY_API_KEY}" }

# ❌ 错误:密钥明文写在配置里
env = { TAVILY_API_KEY = "tvly-xxxxxxx" }

Reasonix 支持 ${VAR}${VAR:-default} 两种展开语法。


写在最后

MCP 是 Reasonix 最强大的扩展能力,没有之一。

没有 MCP,Reasonix 只是一个"本地文件编辑器"。有了 MCP:

  • 它能搜索全网最新信息
  • 它能直接查数据库
  • 它能调用你们公司的内部 API
  • 它能操作 GitHub、Stripe、Cloudflare 等第三方服务
今天这篇讲了怎么接入。下篇我们讲怎么控制——斜杠命令和 @ 引用,让你能精确地指挥 AI 该看哪个文件、该做什么操作。


🔜 下一篇预告:斜杠命令 + @ 引用

/model deepseek-pro/compact/todo@src/main.go——这些都是在 Chat 里直接用的。但你可能不知道,你还可以自己定义斜杠命令。写一个 review.md 文件,就能用 /review 让 AI 按你的模板审查代码。
>
关注我,带你用最少的钱,薅最狠的 AI 羊毛。

📌 互动话题:你准备给 Reasonix 接什么外部工具?搜索?数据库?还是公司内部 API?评论区说说。