{"record":{"id":"bd71a8717ca14d25","repo":"BerriAI/litellm","slug":"parameters-disallowed-params-are-not-allowed-for","errorCode":null,"errorMessage":"Parameters {disallowed_params} are not allowed for tool {tool_name}. Allowed parameters: {allowed_params_list}. Contact proxy admin to allow these parameters.","messagePattern":"Parameters (.+?) are not allowed for tool (.+?)\\. Allowed parameters: (.+?)\\. Contact proxy admin to allow these parameters\\.","errorType":"http","errorClass":"HTTPException","httpStatus":403,"severity":"error","filePath":"litellm/proxy/_experimental/mcp_server/mcp_server_manager.py","lineNumber":4489,"sourceCode":"\n        Returns:\n            Filtered dictionary containing only allowed parameters\n\n        Raises:\n            HTTPException: If allowed_params is configured for this tool but arguments contain disallowed params\n        \"\"\"\n        allowed_params: Final = server.allowed_params or {}\n        matched: Final = match_known_tool_name(tool_name, server, allowed_params)\n        if matched is None:\n            return\n\n        allowed_params_list: Final = allowed_params[matched]\n\n        # Filter arguments to only include allowed parameters\n        disallowed_params: Final = [param for param in arguments if param not in allowed_params_list]\n\n        if disallowed_params:\n            raise HTTPException(\n                status_code=403,\n                detail={\n                    \"error\": f\"Parameters {disallowed_params} are not allowed for tool {tool_name}. \"\n                    f\"Allowed parameters: {allowed_params_list}. \"\n                    f\"Contact proxy admin to allow these parameters.\"\n                },\n            )\n\n    async def check_tool_permission_for_key_team(\n        self,\n        tool_name: str,\n        server: MCPServer,\n        user_api_key_auth: UserAPIKeyAuth | None,\n    ) -> None:\n        \"\"\"\n        Check if a tool is allowed based on key/team object_permission.mcp_tool_permissions.\n        Uses MCPRequestHandler.is_tool_allowed_for_server for consistent inheritance logic.\n        Raises HTTPException if tool is not allowed.","sourceCodeStart":4471,"sourceCodeEnd":4507,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py#L4471-L4507","documentation":"Argument-filter guard: allowed_params is configured for the tool and the call supplied keys outside the allowlist. The call is rejected with the permitted list because silently dropping admin-restricted parameters would change tool semantics.","triggerScenarios":"Thrown at litellm/proxy/_experimental/mcp_server/mcp_server_manager.py:4489 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Remove the disallowed parameters from the call, or ask the proxy admin to allow them."],"exampleFix":"Call the tool using only parameters from the allowed list.","handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8","analyzedAt":"2026-08-18T11:44:31.656Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}