一招让 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 支持
.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-search | Brave 搜索 | npx -y @modelcontextprotocol/server-brave-search |
@modelcontextprotocol/server-puppeteer | 浏览器自动化 | npx -y @modelcontextprotocol/server-puppeteer |
社区推荐
| 插件 | 用途 | 项目地址 |
|---|---|---|
@tavily/mcp | AI 优化的网页搜索 | https://tavily.com |
@stripe/mcp | Stripe 支付操作 | Stripe 官方 |
@cloudflare/mcp | Cloudflare 服务管理 | Cloudflare 官方 |
企业自建
如果你的团队有内部 API,也可以自己写 MCP 服务器——一个用任何语言写的、通过 stdin/stdout 通信的程序,实现 tools/list 和 tools/call 两个接口就行了。
Reasonix 自带了一个参考实现:
# 编译后就能拿到参考实现
make build
# 输出 bin/reasonix-plugin-example
# 它实现了 echo、wordcount、代码审查、风格指南四个功能你可以照抄这个模板,写自己的内部工具。
七、配置文件的对应关系
为了让你更清楚,这里把 Reasonix 的 [[plugins]] 和 .mcp.json 的对应关系列出来:
| 场景 | reasonix.toml | .mcp.json |
|---|---|---|
| 本地命令 | [[plugins]] name/command/args/env | mcpServers.<name>.command/args/env |
| 远程 HTTP | [[plugins]] type="http"/url/headers | mcpServers.<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 等第三方服务
🔜 下一篇预告:斜杠命令 + @ 引用
>/model deepseek-pro、/compact、/todo、@src/main.go——这些都是在 Chat 里直接用的。但你可能不知道,你还可以自己定义斜杠命令。写一个review.md文件,就能用/review让 AI 按你的模板审查代码。
关注我,带你用最少的钱,薅最狠的 AI 羊毛。
📌 互动话题:你准备给 Reasonix 接什么外部工具?搜索?数据库?还是公司内部 API?评论区说说。