iFlow Search MCP Server
io.github.zhengyanglsun/iflow-search
Web search, image search, and URL fetch via iFlow Search API with AI-friendly structured output.
What is the iFlow Search MCP server?
The iFlow Search MCP server exposes iFlow Search (心流搜索), a search API providing web search, image search, and web page fetching capabilities. It integrates with MCP clients like Claude Desktop, Cursor, and other tools via a stdio transport, delivering structured results optimized for AI agents.
iFlow Search MCP enables AI agents to perform web searches, retrieve images, and fetch web page content through a unified API. Use it to augment Claude or other MCP-compatible agents with real-time web access and structured search results, ideal for research, fact-checking, and information retrieval tasks.
How to install iFlow Search
Copy-paste configuration for popular MCP clients.
IFLOW_API_KEYrequiredsecretBearer token for the iFlow Search API. Obtain one at https://platform.iflow.cn.
IFLOW_MCP_CLIENTOptional MCP client slug forwarded to iFlow as the IFlow-MCP-Client header. Matches /^[a-z0-9._-]{1,64}$/.
IFLOW_MCP_CLIENT_VERSIONOptional MCP client version forwarded to iFlow as the IFlow-MCP-Client-Version header. Only honored when IFLOW_MCP_CLIENT is also set.
IFLOW_BASE_URLOptional override for the iFlow Search API base URL. Defaults to https://platform.iflow.cn.
Tools & capabilities
Tools this server exposes to the agent.
iflow_web_search— Search the web and retrieve results with titles, URLs, and summaries.iflow_image_search— Search for images and retrieve image results with metadata.iflow_web_fetch— Fetch and parse the content of a web page by URL.
Use cases
- Augment Claude or Cursor with real-time web search capabilities for research and fact-checking.
- Retrieve images from the web programmatically within AI agent workflows.
- Fetch and analyze web page content to provide agents with up-to-date information.
- Build ReAct agents that can search, retrieve, and synthesize information from multiple web sources.
- Enable multi-step reasoning tasks that require live web data.
iFlow Search MCP server FAQ
It's an MCP server that exposes iFlow Search's web search, image search, and URL fetch tools to MCP clients like Claude Desktop and Cursor, allowing AI agents to access real-time web data with structured output.
iFlow Search is a commercial API operated by 杭州星辰千寻科技有限公司. Pricing and free tier details are available at https://platform.iflow.cn/.
Install via npm: `npm install @iflow-ai/search-mcp`. Configure your MCP client to run `npx @iflow-ai/search-mcp` with your IFLOW_API_KEY environment variable set.
Yes, you need an iFlow API key from https://platform.iflow.cn/. Set it as the IFLOW_API_KEY environment variable.
The monorepo provides core SDK, LangChain JS adapter, LangGraph examples, and this MCP server. It works with any MCP-compatible client and can be integrated into custom backends.
Yes, a Claude Code Plugin manifest exists at `plugins/iflow-search/` and is pending submission to the Anthropic Plugin Directory.
README (reference)
Source of truth, from the repository.
iflow-search-js
JavaScript / TypeScript integrations for iFlow Search (心流搜索) — a search API that provides web search, image search, and web page fetching with AI-friendly structured output.
- Product: https://platform.iflow.cn/
- API docs: https://platform.iflow.cn/docs/
- Operator: 杭州星辰千寻科技有限公司
This monorepo contains:
- A framework-agnostic core SDK
- A LangChain JS tool adapter (also usable from LangGraph)
- A LangGraph agent example
- An MCP stdio server for Hermes / Claude Code / Claude Desktop / other MCP clients
Package / usage matrix
| Path | Package | Status | Publish target | Depends on | When to use |
|---|---|---|---|---|---|
packages/search-core | @iflow-ai/search-core | implemented | npm | — (zero runtime deps) | You are building a framework adapter, calling iFlow directly from a backend, or you don't use LangChain. |
packages/search-langchain | @iflow-ai/search-langchain | implemented | npm | @iflow-ai/search-core, @langchain/core, zod | You are building a LangChain JS agent or a LangGraph agent — both reuse the same tool factories. |
examples/langgraph-agent | @iflow-examples/langgraph-agent | implemented | not published (workspace example) | @iflow-ai/search-langchain, @langchain/langgraph | Reference for wiring createReactAgent with iFlow Search tools. Copy the pattern, don't depend on it. |
packages/search-mcp | @iflow-ai/search-mcp | implemented | npm | @iflow-ai/search-core, MCP SDK | You want to expose iFlow Search to MCP clients (Hermes Agent, Claude Code, Claude Desktop, etc.). Stdio transport. |
plugins/iflow-search | (Claude Code Plugin manifest) | implemented | Anthropic Plugin Directory (pending) | @iflow-ai/search-mcp (npm) | You are a Claude Code user and want one-click /plugin install of iFlow Search. Metadata-only; reuses the npm package. |
Why there is no @iflow-ai/search-langgraph
LangGraph consumes LangChain tools directly. A separate search-langgraph package would be a thin re-export with no added value — use @iflow-ai/search-langchain for both. See examples/langgraph-agent for a working createReactAgent wiring.
Current status
- ✅
@iflow-ai/search-core— implemented, framework-agnostic client - ✅
@iflow-ai/search-langchain— implemented, three tools (iflow_web_search,iflow_image_search,iflow_web_fetch) - ✅
examples/langgraph-agent— implemented, ReAct agent end-to-end smoke validated against real iFlow API - ❌ no separate
@iflow-ai/search-langgraphpackage (intentional — see above) - ✅
@iflow-ai/search-mcp— implemented, stdio MCP server with three tools mirroring the LangChain adapter; optional MCP-host attribution viaIFLOW_MCP_CLIENT/IFLOW_MCP_CLIENT_VERSION - ✅
plugins/iflow-search— Claude Code Plugin manifest (metadata-only, runsnpx -y @iflow-ai/search-mcp); awaiting submission to the Anthropic Plugin Directory. Seeplugins/iflow-search/README.md.
Workspace development
pnpm install
pnpm -r run typecheck
pnpm -r run build
pnpm -r run test
The workspace pins @langchain/core to ^1.1.44 via pnpm-workspace.yaml overrides: to keep LangGraph's runtime and LangChain's tool types on a single major. Removing this override re-introduces ToolMessage cross-version serialization bugs in LangGraph agent loops; rerun the LangGraph agent tests before you touch it.
Basic usage — core SDK
import { createIFlowSearchClient } from "@iflow-ai/search-core";
const client = createIFlowSearchClient({
apiKey: process.env.IFLOW_API_KEY!,
source: "core",
integrationName: "my-app",
integrationVersion: "1.0.0",
});
const result = await client.webSearch({ query: "flash attention", count: 5 });
if (!result.ok) {
console.error(result.error.code, result.error.message);
} else {
for (const r of result.data.results) console.log(r.title, r.url);
}
See packages/search-core/README.md for the full API surface.
Basic usage — LangChain
import { createIFlowSearchTools } from "@iflow-ai/search-langchain";
const tools = createIFlowSearchTools({
apiKey: process.env.IFLOW_API_KEY!,
});
// Hand `tools` to any LangChain JS agent that supports `bindTools`.
See packages/search-langchain/README.md for tool-by-tool docs.
Basic usage — LangGraph
LangGraph does not need a separate iFlow package. Pass the same @iflow-ai/search-langchain tools into createReactAgent:
import { createReactAgent, ToolNode } from "@langchain/langgraph/prebuilt";
import { createIFlowSearchTools } from "@iflow-ai/search-langchain";
const tools = createIFlowSearchTools({ apiKey: process.env.IFLOW_API_KEY! });
const agent = createReactAgent({ llm, tools: new ToolNode(tools) });
The working end-to-end example lives at examples/langgraph-agent — bring your own tool-calling LLM (DeepSeek, OpenAI, Anthropic, …).
Attribution headers
Every request to iFlow goes through @iflow-ai/search-core and carries:
IFlow-Source: <runtime>
IFlow-Integration: <package-name>
IFlow-Integration-Version: <package-version>
User-Agent: <package-name>/<package-version>
Currently emitted values:
| Integration | IFlow-Source | IFlow-Integration |
|---|---|---|
@iflow-ai/search-langchain (also from LangGraph) | langchain | @iflow-ai/search-langchain |
@iflow-ai/search-mcp | mcp | @iflow-ai/search-mcp |
@iflow-ai/search-mcp additionally emits IFlow-MCP-Client and IFlow-MCP-Client-Version when the MCP host declares itself via IFLOW_MCP_CLIENT / IFLOW_MCP_CLIENT_VERSION environment variables (e.g. hermes, claude-code, claude-desktop). Absence of these headers is meaningful — there is no unknown placeholder, so hosts that opt out remain indistinguishable from hosts that have not adopted the convention.
LangGraph traffic shows up as IFlow-Source: langchain because it consumes the same LangChain adapter — there is no separate langgraph source ID for this reason.
Security / key handling
- Never commit real API keys. Use environment variables (
IFLOW_API_KEY, plus your LLM provider key for agent examples). - Don't write keys into
.envfiles that get committed, intopackage.json, or into test fixtures. - The unit tests in this repo use fake keys and a mocked
fetch— they never touch the real iFlow API. - Real-API smoke tests are opt-in. The committed smoke scripts (e.g.
packages/search-langchain/scripts/smoke-direct.mjs) readIFLOW_API_KEYfrom the environment at runtime and never persist it.
Roadmap
- P0 ✅
@iflow-ai/search-core— framework-agnostic SDK - P1 ✅
@iflow-ai/search-langchain— LangChain JS tool adapter - P2 ✅
examples/langgraph-agent— LangGraph ReAct agent example - P3 ✅
@iflow-ai/search-mcp— MCP server for Hermes / Claude Desktop / other MCP clients - P4 🟡 docs and examples polish — broader recipes, additional LLM providers
- P5 optional — refactor the OpenClaw community iFlow plugin to reuse
@iflow-ai/search-core
Maintenance and roadmap
Long-form docs for maintainers and contributors live under docs/:
docs/package-strategy.md— which npm packages we publish, which we explicitly will not, and the decision rubric for new ones.docs/integration-roadmap.md— how each framework (LangChain, LangGraph, OpenClaw, Hermes, Claude Code, iFlow CLI, Open WebUI, Coze, CrewAI) reaches iFlow Search, with phased execution order.docs/release-policy.md— versioning,nextvslatest, the per-release checklist, and the manual publish commands.docs/mcp-design.md— design for the planned@iflow-ai/search-mcpserver (P3): package decision, transport scope, tool schema, attribution headers, MCP client config example, and test strategy.
License
MIT — see LICENSE.
Related MCP servers

知你AI助手|多平台客户与客服数据 MCP
连接个微、企微、视频号、微信小程序、公众号、服务号、微信客服、微信小店、抖音号、小红书、微博、网站及H5客服的客户资料、会话与聊天记录,供AI查询分析。

io.github.zhiqi-li/browser-mcp-cdp
Local Chrome via CDP with profile-snapshot isolation and shared-broker multi-client support

SoloMD
AI-native markdown editor with bundled MCP server for reading, searching, and managing notes with agent automation.

Unterm
AI-controllable terminal with MCP server: spawn panes, run commands, read screens, and orchestrate multi-agent workflows.

Ziplark
Archive server: extract & create ZIP, 7z, tar, gz/xz/zst; read RAR/RAR5 & ISO with AES-256 encryption.

Chenji Affect
Affect analysis, 3D avatar params, empathy hints and somatic emotion decode.