{"id":"dedalus-labs-dedalus-mcp-python","name":"dedalus-mcp-python","homepage":"https://docs.dedaluslabs.ai/openmcp/python","repo_url":"https://github.com/dedalus-labs/dedalus-mcp-python","category":"devtools","subcategories":[],"tags":["mcp","python","framework","client","server","tooling","async","http","stdio","dpop","security"],"what_it_does":"dedalus-mcp (Dedalus MCP) is a Python framework for building MCP (Model Context Protocol) clients and servers. It provides ergonomic decorators and registration for MCP tools, resources, prompts, and related capabilities, plus streamable HTTP and stdio transports and support for protected servers (e.g., DPoP) as described in the README.","use_cases":["Implement MCP servers that expose tools/resources to MCP clients","Build MCP clients that discover and call MCP tools","Integrate MCP into existing Python async services (script-style registration and async client usage)","Use roots / filesystem boundary concepts to restrict tool access to allowed paths (as described)","Use structured auth integrations (e.g., DPoP/auth provider configuration as described)","Create multi-server tool registration flows where the same tool can be collected by different server instances"],"not_for":["Turnkey production auth/middleware you want enabled without integrating your own IdP/stack","Non-Python environments (framework is Python-only)","Simple single-endpoint HTTP APIs without MCP semantics (it’s specialized for MCP)","If you need OpenAPI/GraphQL-first API surface rather than MCP transport/protocol"],"best_when":"You have an async Python environment and want spec-faithful MCP client/server behavior with decorators and clean server-side registration, and you already have your own deployment/auth/logging stack.","avoid_when":"You want minimal learning overhead with no transport/protocol considerations, or you need a fully turnkey auth provider/CLI scaffolding experience.","alternatives":["FastMCP (mentioned in README as a faster-to-start alternative)","Direct use of the official MCP reference SDKs without an additional framework layer","Other MCP frameworks/implementations in Python (if available in your ecosystem)"],"af_score":51.5,"security_score":65.5,"reliability_score":26.2,"package_type":"mcp_server","discovery_source":["github"],"priority":"high","status":"evaluated","version_evaluated":null,"last_evaluated":"2026-03-30T13:41:10.410257+00:00","interface":{"has_rest_api":false,"has_graphql":false,"has_grpc":false,"has_mcp_server":true,"mcp_server_url":"http://127.0.0.1:8000/mcp (default example in README)","has_sdk":false,"sdk_languages":["Python"],"openapi_spec_url":null,"webhooks":false},"auth":{"methods":["AuthorizationProvider (provider-based validation as described)","DPoPAuth (client-side helper for protected servers as described)","AuthorizationConfig / required_scopes configuration as described"],"oauth":false,"scopes":true,"notes":"The README describes an OAuth-like JWT/DPoP authorization framework conceptually, plus client support for DPoP. Specific OAuth/OIDC flows beyond the README aren’t fully evidenced in the provided text."},"pricing":{"model":null,"free_tier_exists":false,"free_tier_limits":null,"paid_tiers":[],"requires_credit_card":false,"estimated_workload_costs":null,"notes":"Open-source MIT license indicated; no hosted pricing is described in the provided content."},"requirements":{"requires_signup":false,"requires_credit_card":false,"domain_verification":false,"data_residency":[],"compliance":[],"min_contract":null},"agent_readiness":{"af_score":51.5,"security_score":65.5,"reliability_score":26.2,"mcp_server_quality":78.0,"documentation_accuracy":62.0,"error_message_quality":0.0,"error_message_notes":null,"auth_complexity":55.0,"rate_limit_clarity":0.0,"tls_enforcement":85.0,"auth_strength":70.0,"scope_granularity":60.0,"dependency_hygiene":60.0,"secret_handling":50.0,"security_notes":"The README claims spec-faithful behavior and describes protected transport scenarios (DPoP) and a provider-based authorization framework with scope requirements. However, the provided content does not include concrete implementation details for TLS enforcement, structured error codes, secret handling practices, or dependency security posture—scores reflect partial evidence from README/manifest only. The library depends on pydantic and MCP SDK and uses pyjwt[crypto], implying crypto operations but not guaranteeing secure defaults.","uptime_documented":0.0,"version_stability":35.0,"breaking_changes_history":30.0,"error_recovery":40.0,"idempotency_support":"false","idempotency_notes":null,"pagination_style":"none","retry_guidance_documented":false,"known_agent_gotchas":["Auth and transport behavior may require careful configuration (e.g., DPoP/protected server settings)","MCP tool calling semantics are RPC-like; retries may need idempotency at the tool level (no explicit idempotency/retry guidance evidenced in provided text)"]}}