Skip to main content
Glama

add_knowledge_base_to_agent

Add knowledge base content to an ElevenLabs agent from files, URLs, or text to enhance its contextual understanding and response capabilities.

Instructions

Add a knowledge base to ElevenLabs workspace. Allowed types are epub, pdf, docx, txt, html.

⚠️ COST WARNING: This tool makes an API call to ElevenLabs which may incur costs. Only use when explicitly requested by the user. Args: agent_id: ID of the agent to add the knowledge base to. knowledge_base_name: Name of the knowledge base. url: URL of the knowledge base. input_file_path: Path to the file to add to the knowledge base. text: Text to add to the knowledge base.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
agent_idYes
input_file_pathNo
knowledge_base_nameYes
textNo
urlNo

Implementation Reference

  • Registration of the 'add_knowledge_base_to_agent' tool using the @mcp.tool decorator, including description and parameters.
    @mcp.tool( description="""Add a knowledge base to ElevenLabs workspace. Allowed types are epub, pdf, docx, txt, html. ⚠️ COST WARNING: This tool makes an API call to ElevenLabs which may incur costs. Only use when explicitly requested by the user. Args: agent_id: ID of the agent to add the knowledge base to. knowledge_base_name: Name of the knowledge base. url: URL of the knowledge base. input_file_path: Path to the file to add to the knowledge base. text: Text to add to the knowledge base. """ )
  • The handler function implements the logic to create a knowledge base document via ElevenLabs API (from URL, file, or text input) and appends it to the specified agent's conversation configuration.
    def add_knowledge_base_to_agent( agent_id: str, knowledge_base_name: str, url: str | None = None, input_file_path: str | None = None, text: str | None = None, ) -> TextContent: provided_params = [ param for param in [url, input_file_path, text] if param is not None ] if len(provided_params) == 0: make_error("Must provide either a URL, a file, or text") if len(provided_params) > 1: make_error("Must provide exactly one of: URL, file, or text") if url is not None: response = client.conversational_ai.knowledge_base.documents.create_from_url( name=knowledge_base_name, url=url, ) else: if text is not None: text_bytes = text.encode("utf-8") text_io = BytesIO(text_bytes) text_io.name = "text.txt" text_io.content_type = "text/plain" file = text_io elif input_file_path is not None: path = handle_input_file( file_path=input_file_path, audio_content_check=False ) file = open(path, "rb") response = client.conversational_ai.knowledge_base.documents.create_from_file( name=knowledge_base_name, file=file, ) agent = client.conversational_ai.agents.get(agent_id=agent_id) agent_config = agent.conversation_config.agent knowledge_base_list = ( agent_config.get("prompt", {}).get("knowledge_base", []) if agent_config else [] ) knowledge_base_list.append( KnowledgeBaseLocator( type="file" if file else "url", name=knowledge_base_name, id=response.id, ) ) if agent_config and "prompt" not in agent_config: agent_config["prompt"] = {} if agent_config: agent_config["prompt"]["knowledge_base"] = knowledge_base_list client.conversational_ai.agents.update( agent_id=agent_id, conversation_config=agent.conversation_config ) return TextContent( type="text", text=f"""Knowledge base created with ID: {response.id} and added to agent {agent_id} successfully.""", )

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/projectservan8n/elevenlabs-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server