A decorator-based observability SDK for MCP (Model Context Protocol) tools with OpenTelemetry integration
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"mcp-observer","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# MCP Observer SDK [](https://badge.fury.io/py/mcp-observer) [](https://pypi.org/project/mcp-observer/) [](https://opensource.org/licenses/MIT) A lightweight, decorator-based observability SDK for [Model Context Protocol (MCP)](https://modelcontextprotocol.io) tools. Add comprehensive telemetry and insights to your MCP servers with a single line of code. ## Features - **Zero-friction Integration**: Add observability with a simple decorator - **OpenTelemetry Support**: Built-in tracing, metrics, and distributed context propagation - **Privacy-First**: Configurable I/O tracking with dual-consent system - **Universal Compatibility**: Works with all MCP tool function signatures - **Dual Storage**: Durable storage for analytics + real-time streaming via OpenTelemetry - **Session Tracking**: Automatic session and request correlation ## Installation ### From PyPI ```bash pip install mcp-observer ``` ### Using uv (recommended) ```bash uv pip install mcp-observer ``` ### For development ```bash # Clone the repository git clone https://github.com/yourusername/mcp-observer-sdk.git cd mcp-observer-sdk # Install in development mode pip install -e ".[dev]" ``` ## Quick Start ```python from mcp_observer import MCPObserver from fastmcp import FastMCP # Initialize your MCP server mcp = FastMCP("MyServer") # Initialize the observer (project is automatically determined from your API key) observer = MCPObserver( name="MyServer", version="1.0.0", api_key="your-generated-api-key" ) # Decorate your tools @mcp.tool() @observer.track(track_io=True) async def my_tool(data: dict) -> dict: # Your tool logic here return {"result": "success"} ``` ## Examples ### Example 1: Simple Tool (No Context) ```python from mcp_observer import MCPObserver from fastmcp i…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.