MCP (Model Context Protocol) stdio server for iFlow Search (心流搜索) — exposes web_search, image_search, and web_fetch as MCP tools.
Project description
iflow-search-mcp
MCP stdio server for iFlow Search (心流搜索).
Exposes three MCP tools backed by the iflow-search core SDK:
iflow_web_search— web searchiflow_image_search— image searchiflow_web_fetch— fetch the readable contents of a URL
This package is a thin adapter. All HTTP, authentication, attribution-header
construction, response normalization, and error mapping live in the
iflow-search core SDK. This package
owns only the MCP server wiring — tool definitions, tool dispatch, and the
stdio entry point.
Install
pip install iflow-search-mcp
Installing pulls in the MCP Python SDK, which transitively depends on
starlette,uvicorn,sse-starlette,python-multipart,pyjwt[crypto], andjsonschema— even though this server only uses stdio. There is no[stdio]extra on the upstream package.
Configure your MCP host
The server reads its configuration from environment variables only — no
.env files, no CLI flags, no config files.
| Variable | Required | Notes |
|---|---|---|
IFLOW_API_KEY |
yes | iFlow API key |
IFLOW_BASE_URL |
no | Override the platform base URL |
IFLOW_TIMEOUT_MS |
no | Request timeout in milliseconds (positive integer) |
IFLOW_MCP_CLIENT |
no | Identifier for the MCP host (e.g. claude-desktop); regex ^[a-z0-9._-]{1,64}$ |
IFLOW_MCP_CLIENT_VERSION |
no | Version of the MCP host; only valid when IFLOW_MCP_CLIENT is set |
Example: Claude Desktop / Claude Code
{
"mcpServers": {
"iflow-search": {
"command": "iflow-search-mcp",
"env": {
"IFLOW_API_KEY": "sk-..."
}
}
}
}
Claude Code 2.1.148 has been verified to discover and connect to the
0.1.0a0 artifact via claude mcp list / claude mcp get (stdio
initialize + capability exchange). The wire protocol used by tools/call
is exercised separately by the offline scripts/smoke_stdio.py and by a
reference-client smoke against the live iFlow API; see
docs/design/python-mcp-design.md §15
for the full record.
Example: OpenCode
OpenCode's MCP config schema differs from Claude Desktop's in a few small
ways: the root key is mcp (not mcpServers), each server declares
type: "local" for stdio transport, command is a string-array (not a
string), and the env block is named environment (not env). OpenCode
does not expand ${VAR} references in that block, but it does
inherit the parent process env into the MCP child — so IFLOW_API_KEY
belongs in the shell you launch opencode from, not in opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"iflow-search": {
"type": "local",
"command": ["iflow-search-mcp"],
"enabled": true,
"environment": {
"IFLOW_MCP_CLIENT": "opencode"
}
}
}
}
OpenCode 1.15.10 (installed via brew install sst/tap/opencode) has been
verified to discover and connect to the 0.1.0a0 artifact via
opencode mcp list — reports connected · local, and
opencode --log-level DEBUG mcp list records toolCount=3 and
successfully created client. opencode mcp debug is documented as an
OAuth debugger for remote MCP servers and is not applicable to
type: "local" (stdio) entries; the stdio health check is
opencode mcp list itself. The wire protocol used by tools/call is
exercised separately by the reference-client smoke against the live
iFlow API; see
docs/design/python-mcp-design.md §16
for the full record.
Behavior
- Transport: stdio only.
stdoutis reserved for the JSON-RPC stream; all human-readable output (banner, errors) goes tostderr. - Exit codes:
0on clean shutdown afterSIGINT/SIGTERM,1on configuration or init error. - Errors: tool failures return
isError: trueresults with a stablestructuredContent.error.code(mirroring the core SDK's error contract).
License
MIT. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iflow_search_mcp-0.1.0.tar.gz.
File metadata
- Download URL: iflow_search_mcp-0.1.0.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d4f5510d42c638fcea7c0383dcb348fefa32d081f50b3784641237379d2648c
|
|
| MD5 |
bd62049d85cc7a5a975871570ade779f
|
|
| BLAKE2b-256 |
a46e3f0206c4db18f4344f355ebaf0d523c2280387e8745d41fbdea803ddaa44
|
File details
Details for the file iflow_search_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: iflow_search_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b45e46dfae248637125da122c6a3d932a72d0f76c0071e9b7dff591041d3a83
|
|
| MD5 |
6bbc9591a050b629d570dde3b351f42a
|
|
| BLAKE2b-256 |
299ec8124087e33edf0ef58626894167b0caa49aa72d369a944ca3cd71410c8a
|