
iFlow Search
io.github.zhengyanglsun由 GitHub 账号 zhengyanglsun 发布v0.1.0更新于 Oct 24, 2026
MCP server for iFlow Search web search, image search, and URL fetch tools.
概览
一个本地 stdio MCP 服务器,让助手通过 iFlow 进行网页搜索、图片搜索和单条 URL 网页抓取。
- 可以做什么
- 通过 iFlow 搜索网页,返回标题、URL 和摘要。搜索图片,返回图片 URL、标题和来源页面。抓取单个 URL 的可读正文内容。三个工具均通过 stdio 提供给兼容的 MCP 客户端。
- 适用场景
- 当你希望助手在网上查资料、找图片或提取某个页面的可读文本,并且已有或愿意申请 iFlow API 密钥时使用。它是一个单一用途的搜索服务器,而非通用的浏览或爬取工具。
- 运行要求
- 以 Node.js 包形式在本地运行(Node 18 及以上),通过 stdio 启动,通常用 npx。需要在 IFLOW_API_KEY 环境变量中提供 iFlow API 密钥;可选的 IFLOW_BASE_URL、IFLOW_MCP_CLIENT 和 IFLOW_MCP_CLIENT_VERSION 用于调整接口地址和归属请求头。需要能访问 iFlow API 的网络。配置只从环境变量读取,不读取文件。
安装
在 SourceWeft 中
- 打开 控制台中的 iFlow Search,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
@iflow-ai/search-mcp
MCP (Model Context Protocol) server for iFlow Search — exposes web search, image search, and web fetch to any MCP client (Claude Code, Claude Desktop, and other compatible hosts).
Built on @iflow-ai/search-core. Same three tools as
@iflow-ai/search-langchain, same names, same shapes —
so prompts that drive an iFlow-search-tool agent under LangChain keep working
verbatim under MCP.
Status — MVP stable (0.1.0)
@iflow-ai/[email protected] is live on dist-tag latest. Bare
npm install @iflow-ai/search-mcp resolves the stable release. @next
remains the prerelease channel and currently points at 0.1.0-pre.2; use
it only when you need to track an upcoming pre-cut. Run
npm view @iflow-ai/search-mcp dist-tags --json to read live state.
The Official MCP Registry entry io.github.zhengyanglsun/iflow-search
publishes 0.1.0 as the current isLatest version (0.1.0-pre.2 remains
visible only as a historical entry — see Official MCP Registry
below). The registry is metadata-only; the package itself installs from npm.
- Transport: stdio only. No SSE, no streamable HTTP, no WebSocket in this release.
- Tools:
iflow_web_search,iflow_image_search,iflow_web_fetch. - Configuration: environment variables only, supplied via the MCP
client's
envblock (never via CLI flags, dotfiles, keychain, or file discovery).
Install
Node ≥ 18.
Official MCP Registry
This server is listed in the Official MCP Registry:
- Registry name:
io.github.zhengyanglsun/iflow-search - npm package:
@iflow-ai/search-mcpon dist-taglatest(0.1.0) - Registry-tracked version:
0.1.0(isLatest: true,status: active).0.1.0-pre.2remains as a historical entry only. - Transport:
stdio
The registry stores metadata only — the package itself still installs from npm. MCP clients launch the server with npx -y @iflow-ai/search-mcp, which resolves the current stable release (0.1.0), or pin a concrete version (e.g. @iflow-ai/[email protected]) for reproducibility. @next is still available for pre-cut testing.
Use it from an MCP client
Claude Code / Claude Desktop / generic mcpServers JSON
Add an entry to your client's mcpServers configuration:
For Claude Desktop, the wiring is identical but set IFLOW_MCP_CLIENT to
claude-desktop so backend analytics can tell the two apart:
IFLOW_MCP_CLIENT is optional — see the Configuration
table for the allowed value set. If absent, no IFlow-MCP-Client header
is sent (the request is still attributed to IFlow-Source: mcp).
Do not commit a real key. Put
YOUR_IFLOW_API_KEYin version control and inject the real value at runtime (your client's secret store, a local override file ignored by git, adirenvblock, etc.).@iflow-ai/search-mcpnever reads from disk and will not pick up a.envautomatically.
Verified host. Claude Code is a verified MCP host for this package — end-to-end stdio smoke green on
@iflow-ai/[email protected]with Claude Code CLI2.1.148-20260509.2, all three tools exercised against the real iFlow Search API. For one-off smoke / evaluation runs that must not touch your persistent Claude Code config, use a session-scoped config file withclaude -p --strict-mcp-config --mcp-config <file> --no-session-persistence …and letIFLOW_API_KEYreach the MCP child via Claude Code's parent-env spread (do NOT write the key into the tempmcp.json). The reproduction sketch is indocs/platform-smokes-mcp.md.
Hermes Agent
Add the server to ~/.hermes/config.yaml:
Verify Hermes can spawn the server and list its three tools:
Notes:
IFLOW_API_KEYmust be set inside the server'senv:block. Hermes only forwards a small allowlist of parent-shell variables to MCP subprocesses (PATH,HOME,USER, …); anything else, including your iFlow key, has to be declared here. KeepYOUR_IFLOW_API_KEYas a placeholder in anything you share — never commit the real key.IFLOW_MCP_CLIENT: hermestags every outbound request with theIFlow-MCP-Client: hermesheader so backend analytics can distinguish Hermes traffic from Claude Code / Claude Desktop. The field is optional but recommended.- Stable
0.1.0is on dist-taglatest; the bare@iflow-ai/search-mcpshown above resolves it. Pin to the concrete version your registry index advertises (e.g.@iflow-ai/[email protected]) when you want deterministic upgrades — runnpm view @iflow-ai/search-mcp dist-tags --jsonto read the current state.@next(0.1.0-pre.2at time of writing) is still published for pre-cut testing. - stdio only: Hermes runs the binary as a child process and speaks
JSON-RPC over stdin/stdout. No
url/headersfields are needed.
OpenCode
OpenCode is a terminal coding agent with
first-class stdio MCP support. Configuration goes in opencode.json
(project-scoped) or ~/.config/opencode/opencode.json (user-scoped).
Two things make OpenCode's wiring different from the Claude / Hermes blocks above:
- The top-level block is
mcp, notmcpServers, and the per-server env block isenvironment, notenv.commandandargsare folded into a singlecommand: [...]array. - Do NOT put
IFLOW_API_KEYin theenvironmentblock. OpenCode inherits the parent process's full env into every stdio MCP child (seepackages/opencode/src/mcp/index.tsinanomalyco/opencode:env: { ...process.env, ...mcp.environment }). ExportingIFLOW_API_KEYin the shell that launches OpenCode is sufficient — the key never appears in any committed file. Theenvironmentmap does not expand${VAR}shell syntax (Effect schemaRecord<string, string>, taken verbatim), so writing"${IFLOW_API_KEY}"as a value would send the literal string to the MCP child and break iFlow auth.
Export the key once in your shell:
Then put only non-secret values in opencode.json:
IFLOW_MCP_CLIENT: opencode is accepted by the existing
[a-z0-9._-]{1,64} validation in
packages/search-mcp/src/config.ts — no code change is needed to add
OpenCode as a host slug.
Verify the wiring without launching the TUI:
A successful run prints ✓ iflow-search connected. Add
--print-logs --log-level INFO to confirm tool discovery — OpenCode
logs service=mcp key=iflow-search toolCount=3 create() successfully created client once the child returns tools/list.
OpenCode prefixes MCP tools with the server name in its tool registry. Your LLM will see
iflow-search_iflow_web_search,iflow-search_iflow_image_search,iflow-search_iflow_web_fetch. The raw MCP names returned bytools/listremainiflow_web_search/iflow_image_search/iflow_web_fetch; theiflow-search_prefix is OpenCode's namespace, not part of this package.
stdio is the supported transport here. OpenCode also supports remote
MCP (type: "remote" with url), but this package only ships a stdio
binary — no SSE / streamable-HTTP recommendation applies.
CrewAI
CrewAI is a Python multi-agent framework.
It consumes MCP servers through the MCPServerAdapter class shipped in
crewai-tools[mcp], which spawns the stdio child and exposes each MCP
tool as a CrewAIMCPTool your Agents can call.
This path uses the existing published @iflow-ai/search-mcp stdio
MCP server:
- No new npm package is required.
- No CrewAI-native Python package is required —
crewai-tools[mcp]already bridges any MCP stdio server, including this one. - Keep
IFLOW_API_KEYin the parent shell env, not hard-coded in Python source.StdioServerParameters.envaccepts a dict that is passed to the MCP child as itsprocess.env; spreadingos.environinto it is sufficient to forward the key without ever writing it to a tracked file.
Install (crewai-tools requires Python 3.10–3.13):
Minimal usage:
CrewAI does not prefix MCP tool names with the server slug — the
three names listed by MCPServerAdapter are the raw MCP names emitted
by this package: iflow_web_search, iflow_image_search,
iflow_web_fetch. A model-driven Crew sees them under those same
names.
IFLOW_MCP_CLIENT="crewai" is accepted by the existing
[a-z0-9._-]{1,64} validation in
packages/search-mcp/src/config.ts — no code change is required to
add CrewAI as a host slug.
Tested scope. The recorded CrewAI smoke verified
MCPServerAdaptertool discovery (tools/listreturned all three expected tools) and directCrewAIMCPTool.run(**kwargs)calls against the real iFlow API. The full CrewAIAgent/Task/CrewLLM-driven tool-selection loop was not exercised — it requires an authenticated LLM provider, which is outside this package's wire path. Seedocs/platform-smokes-mcp.mdfor the smoke detail.
Cline (VS Code extension)
Cline is a VS Code coding agent with built-in
stdio MCP support. It reads MCP server definitions from
~/.cline/mcp.json (macOS/Linux; equivalent per-user path on Windows).
Add an iflow-search entry pointing at the stable package — npx -y
resolves the current latest release without a global install:
After Cline reloads its MCP config, the three tools —
iflow_web_search, iflow_image_search, iflow_web_fetch — show up
in the agent's tool list. The same server is discoverable in the
Official MCP Registry as
io.github.zhengyanglsun/iflow-search; Cline still installs the
package directly from npm.
IFLOW_MCP_CLIENT: cline is accepted by the existing
[a-z0-9._-]{1,64} validation in
packages/search-mcp/src/config.ts — no code change is required to
add Cline as a host slug.
Do not commit or share
~/.cline/mcp.json. If Cline can injectIFLOW_API_KEYfrom your parent shell or a local secret manager, prefer that over hard-coding the literal value into the config file. Treat any shared copy ofmcp.jsonas if the key inside it were already leaked.@iflow-ai/search-mcpnever reads from disk and will not pick up a stray.env, so the only place the key needs to live is theenvblock Cline forwards to the child process.
autoApprove: [](the default shown above) keeps every tool call gated behind Cline's approval UI — leave it that way until you have verified the wiring end-to-end with a known-safe query.
After your client restarts, the three tools appear automatically:
Configuration
All configuration is read from process.env. Set these inside the env
block of the MCP client config above.
A missing or invalid configuration is a fatal init error: the process
writes a one-line diagnostic to stderr (never stdout, so the JSON-RPC
stream is not corrupted) and exits with code 1.
Programmatic API
If you want to embed the server in your own host (custom transport, tests, …), the package also exports the building blocks:
What this package does NOT do
The MVP is deliberately small. The following are explicit non-goals for this release:
- No HTTP / SSE / WebSocket transport — stdio only.
- No file-based config, no
.envauto-discovery, no keychain integration. - No multi-tenant hosting, no API-key proxying, no per-call key override.
- No bundled prompts or resources — only the three search tools.
Attribution
Every outbound request to iFlow carries:
When the MCP client config sets IFLOW_MCP_CLIENT (and optionally
IFLOW_MCP_CLIENT_VERSION), the following are additionally sent:
This lets iFlow account for traffic generated through the MCP server
separately from direct, LangChain, or other adapters, AND distinguish
which MCP host (Hermes / Claude Code / Claude Desktop / custom) generated
each request. The IFlow-MCP-Client value is operator-declared — it is
not auto-detected from the MCP clientInfo handshake, so backend
dashboards see a stable, allowlist-style set of host slugs rather than
free-form, self-reported strings.
License
MIT. See LICENSE.
来源:packages/search-mcp/README.md,提交 89f9e6a
工具
0版本历史
1- v0.1.0最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分