Model Context Protocol Python SDK with ETDI security enhancements
Listed on its own since 2026-09-25. Until then it was part of python-mcp-sdk, where its earlier checks remain.
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-etdi","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.
# Model Context Protocol Python SDK with ETDI Security A Python implementation of the Model Context Protocol (MCP) with Enhanced Tool Definition Interface (ETDI) security extensions that **seamlessly integrates** with existing MCP infrastructure. ## Overview This SDK provides a secure implementation of MCP with OAuth 2.0-based security enhancements to prevent Tool Poisoning and Rug Pull attacks. ETDI adds cryptographic verification, immutable versioned definitions, and explicit permission management to the MCP ecosystem **while maintaining full compatibility** with existing MCP servers and clients. ## 🔄 **Seamless MCP Integration** ETDI is designed for **zero-friction adoption** with existing MCP infrastructure: ### **✅ Backward Compatibility** - **Existing MCP servers work unchanged** - ETDI clients can discover and use any MCP server - **Existing MCP clients work unchanged** - ETDI servers are fully MCP-compatible - **Gradual migration path** - Add security incrementally without breaking existing workflows - **Optional security** - ETDI features are opt-in, not mandatory ### **🔌 Drop-in Integration** ```python # Existing FastMCP server becomes ETDI-secured with decorator from mcp.server.fastmcp import FastMCP app = FastMCP("My Server") # Standard tool (no security) @app.tool() def standard_tool(data: str) -> str: return f"Processed: {data}" # ETDI-secured tool with OAuth + Request Signing @app.tool( etdi=True, etdi_permissions=["data:read", "data:write"], etdi_oauth_scopes=["tools:execute"], etdi_require_request_signing=True ) def secure_tool(sensitive_data: str) -> str: return f"Securely processed: {sensitive_data}" ``` ### **🌐 Universal Discovery** ```python # ETDI client discovers ALL MCP servers (ETDI and non-ETDI) from mcp.etdi.client import ETDIClient client = ETDIClient(config) await client.connect_to_server(["python", "-m", "any_mcp_server"], "server-name") tools = await client.discover_tools() # Works with any MCP …
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.