# Copyright 2026 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import os from google.adk.agents.llm_agent import LlmAgent from google.adk.agents.mcp_instruction_provider import McpInstructionProvider from google.adk.tools.mcp_tool.mcp_session_manager import SseConnectionParams from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset _allowed_path = os.path.dirname(os.path.abspath(__file__)) connection_params = SseConnectionParams( url='http://localhost:3000/sse', headers={'Accept': 'text/event-stream'}, ) root_agent = LlmAgent( model='gemini-2.5-flash', name='enterprise_assistant', instruction=McpInstructionProvider( connection_params=connection_params, prompt_name='file_system_prompt', ), tools=[ MCPToolset( connection_params=connection_params, # don't want agent to do write operation # you can also do below # tool_filter=lambda tool, ctx=None: tool.name # not in [ # 'write_file', # 'edit_file', # 'create_directory', # 'move_file', # ], tool_filter=[ 'read_file', 'read_multiple_files', 'list_directory', 'directory_tree', 'search_files', 'get_file_info', 'list_allowed_directories', ], require_confirmation=True, ) ], )