Skip to main content

MCP Client

Once you've created an MCP server with your custom tools, you need a way to call those tools from your Intelli flow. This is where the MCP client comes in.

How It Works​

The process follows these steps:

  1. Your flow creates an MCP agent that knows how to talk to your server.
  2. The agent calls a specific tool with parameters.
  3. The server processes the request and returns a result.
  4. Your flow continues with that result.

Creating a Basic Client​

Create a file named simple_mcp_client.py:

# simple_mcp_client.py
import asyncio
import sys
from intelli.flow.agents.agent import Agent
from intelli.flow.tasks.task import Task
from intelli.flow.input.task_input import TextTaskInput
from intelli.flow.flow import Flow
from intelli.flow.types import AgentTypes

# Create an MCP agent that will call our math server
mcp_agent = Agent(
agent_type=AgentTypes.MCP.value,
provider="mcp",
mission="Do math operations",
model_params={
"command": sys.executable,
"args": ["mcp_math_server.py"], # Path to your server file
"tool": "add", # Which tool to call
"arg_a": 7, # First parameter
"arg_b": 8, # Second parameter
}
)

# Create a task that uses this agent
calc_task = Task(
TextTaskInput("Calculate"),
mcp_agent,
log=True
)

# Create a flow
flow = Flow(
tasks={"calc": Task(TextTaskInput("Calculate"), http_mcp_agent)},
map_paths={"calc": []}, # Empty list = No outgoing connections from this task
log=True
)

# Run the flow and print the result
if __name__ == "__main__":
print("Running MCP math flow...")
result = asyncio.run(flow.start())
print(f"Result: 7 + 8 = {result['calc']['output']}")

Run it with:

python simple_mcp_client.py

Connecting to a Remote HTTP Server​

If your MCP server runs as an HTTP service (as shown in the Server page), connect to it like this:

# http_client.py
import asyncio
import sys
from intelli.flow.agents.agent import Agent
from intelli.flow.tasks.task import Task
from intelli.flow.input.task_input import TextTaskInput
from intelli.flow.flow import Flow
from intelli.flow.types import AgentTypes

# Create an MCP agent that connects to an HTTP server
http_mcp_agent = Agent(
agent_type=AgentTypes.MCP.value,
provider="mcp",
mission="Do math remotely",
model_params={
"url": "http://localhost:8000/mcp", # URL to your HTTP server
"tool": "add", # Which tool to call
"arg_a": 15, # First parameter
"arg_b": 27, # Second parameter
}
)

# ... (rest is the same - create task, flow, etc.) ...

Connecting to a Third Party Server​

Most hosted MCP servers need an API key, and some of them expose the SSE transport instead of the streamable HTTP one. Pass those options in the same model_params:

remote_agent = Agent(
agent_type=AgentTypes.MCP.value,
provider="mcp",
mission="Call a hosted tool",
model_params={
"url": "https://tools.example.com/mcp",
"headers": {"Authorization": f"Bearer {API_TOKEN}"},
"transport": "sse", # use it when the server exposes /sse
"timeout": 30, # seconds allowed per call
"tool": "search",
"arg_query": "intelli framework",
}
)

The same options are available on the wrapper when you call tools directly:

from intelli.wrappers.mcp_wrapper import MCPWrapper
from intelli.wrappers.mcp_config import http_server_config, sse_server_config

wrapper = MCPWrapper(http_server_config(
"https://tools.example.com/mcp",
headers={"Authorization": f"Bearer {API_TOKEN}"},
timeout=30,
))

with wrapper.connect():
tools = wrapper.discover_tools()
result = wrapper.execute_tool("search", {"query": "intelli framework"})

Use sse_server_config with the same arguments for the SSE transport, and websocket_server_config for a WebSocket server.

Generate flow visualization​

graph_path = flow.generate_graph_img(
name="math_flow_graph", # Base name for the output file
save_path="./temp/graphs", # Directory to save the image
)

Building More Complex Flows​

In real applications, you'll often:

  1. Use an LLM to interpret user requests.
  2. Extract operation and parameters.
  3. Call the appropriate MCP tool.
  4. Present results back to the user.

A complete example that does this: 🔗 Http(s) Server 🔗 Http(s) Client

Get the next agent guide in your inbox.

Be the first to read new guides on AI agents, RAG and MCP apps.