MCP
Trace your agent’s outgoing MCP tool calls with Rius, and connect them to the server’s own traces where the protocol allows it.
Two different things share the MCP name. This integration instruments your agent’s own outgoing MCP tool calls so they show up in your traces. The Rius MCP server is the opposite direction: an endpoint that lets AI clients query your telemetry. Instrumenting your agent does not require the MCP server, and vice versa.
Setup
Python
There is nothing to install. Unlike the client-library integrations, which are
powered by OpenInference and come from extras, the MCP instrumentation ships
inside the SDK, and it enables itself whenever the
mcp package is importable, which it already
is in any agent that calls MCP tools.
import rius
rius.init(api_key="gf_...", service_name="my-agent")
# use mcp.ClientSession exactly as beforeWhat gets captured
Python
Calls made through mcp.ClientSession.call_tool() are traced as TOOL
spans named execute_tool <name>, carrying:
gen_ai.tool.name: the tool being calledinput.value: the tool arguments (JSON)output.value: the tool result, preferring structured content, falling back to text blocks
Failures are recorded with ERROR status, both when the call raises and when
the MCP result itself is flagged as an error (is_error on the mcp 2.x
package, isError on 1.x; both majors are supported).
Argument and result values are content attributes, so privacy controls apply to them like everything else.
Connecting agent and MCP server traces
Python
With the mcp package at 2.x, trace context propagates through tool
calls. That connects both sides of a call into one trace, if two things
are true:
- The MCP server you call is itself instrumented (with the Rius SDK or any OpenTelemetry SDK).
- The server exports its traces to the Rius receiver, using an API key for the same workspace as your agent.
The server’s spans then appear under your agent’s execute_tool span,
one waterfall covering the agent’s side and the server’s side of the same
call. On mcp 1.x there is no context propagation: an instrumented
server’s spans still arrive, but as separate traces.