Skip to main content

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

PyPI - Version Python Versions

MCP stdio server for iFlow Search (心流搜索).

Exposes three MCP tools backed by the iflow-search core SDK:

  • iflow_web_search — web search
  • iflow_image_search — image search
  • iflow_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], and jsonschema — 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. stdout is reserved for the JSON-RPC stream; all human-readable output (banner, errors) goes to stderr.
  • Exit codes: 0 on clean shutdown after SIGINT / SIGTERM, 1 on configuration or init error.
  • Errors: tool failures return isError: true results with a stable structuredContent.error.code (mirroring the core SDK's error contract).

License

MIT. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_search_mcp-0.1.0.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iflow_search_mcp-0.1.0-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

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

Hashes for iflow_search_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2d4f5510d42c638fcea7c0383dcb348fefa32d081f50b3784641237379d2648c
MD5 bd62049d85cc7a5a975871570ade779f
BLAKE2b-256 a46e3f0206c4db18f4344f355ebaf0d523c2280387e8745d41fbdea803ddaa44

See more details on using hashes here.

File details

Details for the file iflow_search_mcp-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for iflow_search_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6b45e46dfae248637125da122c6a3d932a72d0f76c0071e9b7dff591041d3a83
MD5 6bbc9591a050b629d570dde3b351f42a
BLAKE2b-256 299ec8124087e33edf0ef58626894167b0caa49aa72d369a944ca3cd71410c8a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page