{"id":"frappe-mcp","name":"mcp","homepage":null,"repo_url":"https://github.com/frappe/mcp","category":"ai-ml","subcategories":[],"tags":["mcp","frappe-framework","python","wsgi","tooling","llm","werkzeug","json-rpc"],"what_it_does":"Provides an MCP (Model Context Protocol) server implementation for Frappe (Werkzeug/WSGI) apps, exposing registered Python functions as MCP tools over Streamable HTTP via a Frappe REST endpoint.","use_cases":["Expose Frappe app capabilities (backend business logic) as MCP tools to LLM agents","Build an MCP endpoint for tool execution against Frappe data/services","Rapidly register typed, schema-driven tool functions via decorators and docstring/type inference"],"not_for":["Production use without validating stability and security for your specific setup (project is described as highly experimental)","Use cases needing MCP resources/prompts/streaming/SSE or non-tool MCP features (currently tools-only)","Integrations that require an ASGI-first stack without adapting to Werkzeug/WSGI"],"best_when":"You have a Frappe Framework app and want to serve MCP tools over Streamable HTTP without migrating to an async/ASGI server.","avoid_when":"You need tool streaming (SSE), resources/prompts support, or you cannot support/validate the experimental and potentially breaking behavior risk.","alternatives":["Official Python MCP SDK (ASGI-oriented)","Run MCP server as a separate standalone service (FastAPI/ASGI or other framework) and integrate with Frappe via internal RPC/HTTP","Build MCP capability using a generic Werkzeug-based JSON-RPC/HTTP adapter if you can map tool schemas yourself"],"af_score":50.8,"security_score":50.8,"reliability_score":18.8,"package_type":"mcp_server","discovery_source":["github"],"priority":"high","status":"evaluated","version_evaluated":null,"last_evaluated":"2026-03-30T13:44:33.819938+00:00","interface":{"has_rest_api":true,"has_graphql":false,"has_grpc":false,"has_mcp_server":true,"mcp_server_url":"http://<SITE_NAME:PORT>/api/method/<app>.mcp.handle_mcp","has_sdk":false,"sdk_languages":["python"],"openapi_spec_url":null,"webhooks":false},"auth":{"methods":["OAuth2 (via Frappe OAuth2 updates)","OAuth Client registration on Frappe instance for MCP client"],"oauth":true,"scopes":false,"notes":"Auth is described at a high level (Frappe OAuth2 support + MCP Inspector quick OAuth). A guest-bypass flag exists, but it is explicitly warned against for production."},"pricing":{"model":null,"free_tier_exists":false,"free_tier_limits":null,"paid_tiers":[],"requires_credit_card":false,"estimated_workload_costs":null,"notes":"Open-source library; no pricing model described."},"requirements":{"requires_signup":false,"requires_credit_card":false,"domain_verification":false,"data_residency":[],"compliance":[],"min_contract":null},"agent_readiness":{"af_score":50.8,"security_score":50.8,"reliability_score":18.8,"mcp_server_quality":60.0,"documentation_accuracy":75.0,"error_message_quality":0.0,"error_message_notes":null,"auth_complexity":60.0,"rate_limit_clarity":0.0,"tls_enforcement":40.0,"auth_strength":65.0,"scope_granularity":30.0,"dependency_hygiene":70.0,"secret_handling":50.0,"security_notes":"TLS enforcement is not explicitly stated in the README; security depends on the surrounding Frappe deployment configuration. Auth guidance references OAuth2 integration with MCP Inspector and includes an allow_guests bypass (warned against). No details are provided about least-privilege scopes, secret storage, or structured error handling behavior. Project uses Werkzeug/WSGI and includes security-related option xss_safe for response sanitization.","uptime_documented":0.0,"version_stability":35.0,"breaking_changes_history":20.0,"error_recovery":20.0,"idempotency_support":"false","idempotency_notes":"No explicit idempotency guidance documented for tools; decorator supports annotations including idempotentHint but usage is not described in terms of operational guarantees.","pagination_style":"none","retry_guidance_documented":false,"known_agent_gotchas":["Project is explicitly 'highly experimental' with likely bugs and breaking changes without notice","Tools-only support: resources/prompts/streaming not currently implemented","If @mcp.register() handler does not import tool modules, tools will not be loaded","Setting allow_guests=True bypasses auth (dangerous for production)","Authentication setup depends on Frappe version having OAuth2 updates; otherwise additional OAuth client registration is required"]}}