Skip to main content
Glama
echelon-ai-labs

ServiceNow MCP Server

create_knowledge_base

Create a knowledge base in ServiceNow with customizable workflows, managers, and ownership. Define titles, descriptions, and publication or retirement processes for efficient knowledge management.

Instructions

Create a new knowledge base in ServiceNow

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paramsYes

Implementation Reference

  • Implements the core logic for creating a knowledge base by sending a POST request to the ServiceNow kb_knowledge_base table API.
    def create_knowledge_base(
        config: ServerConfig,
        auth_manager: AuthManager,
        params: CreateKnowledgeBaseParams,
    ) -> KnowledgeBaseResponse:
        """
        Create a new knowledge base in ServiceNow.
    
        Args:
            config: Server configuration.
            auth_manager: Authentication manager.
            params: Parameters for creating the knowledge base.
    
        Returns:
            Response with the created knowledge base details.
        """
        api_url = f"{config.api_url}/table/kb_knowledge_base"
    
        # Build request data
        data = {
            "title": params.title,
        }
    
        if params.description:
            data["description"] = params.description
        if params.owner:
            data["owner"] = params.owner
        if params.managers:
            data["kb_managers"] = params.managers
        if params.publish_workflow:
            data["workflow_publish"] = params.publish_workflow
        if params.retire_workflow:
            data["workflow_retire"] = params.retire_workflow
    
        # Make request
        try:
            response = requests.post(
                api_url,
                json=data,
                headers=auth_manager.get_headers(),
                timeout=config.timeout,
            )
            response.raise_for_status()
    
            result = response.json().get("result", {})
    
            return KnowledgeBaseResponse(
                success=True,
                message="Knowledge base created successfully",
                kb_id=result.get("sys_id"),
                kb_name=result.get("title"),
            )
    
        except requests.RequestException as e:
            logger.error(f"Failed to create knowledge base: {e}")
            return KnowledgeBaseResponse(
                success=False,
                message=f"Failed to create knowledge base: {str(e)}",
            )
  • Pydantic BaseModel defining the input parameters and validation for the create_knowledge_base tool.
    class CreateKnowledgeBaseParams(BaseModel):
        """Parameters for creating a knowledge base."""
    
        title: str = Field(..., description="Title of the knowledge base")
        description: Optional[str] = Field(None, description="Description of the knowledge base")
        owner: Optional[str] = Field(None, description="The specified admin user or group")
        managers: Optional[str] = Field(None, description="Users who can manage this knowledge base")
        publish_workflow: Optional[str] = Field("Knowledge - Instant Publish", description="Publication workflow")
        retire_workflow: Optional[str] = Field("Knowledge - Instant Retire", description="Retirement workflow")
  • Registers the create_knowledge_base tool in the central tool definitions dictionary, linking the handler function, input schema, description, and serialization method.
    "create_knowledge_base": (
        create_knowledge_base_tool,
        CreateKnowledgeBaseParams,
        str,  # Expects JSON string
        "Create a new knowledge base in ServiceNow",
        "json_dict",  # Tool returns Pydantic model
    ),
  • Imports the create_knowledge_base handler function with alias for use in tool registration.
        # create_category aliased in function call
        create_knowledge_base as create_knowledge_base_tool,
    )
  • Re-exports create_knowledge_base from knowledge_base.py module for convenient access.
    from servicenow_mcp.tools.knowledge_base import (
        create_article,
        create_category,
        create_knowledge_base,

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/echelon-ai-labs/servicenow-mcp'

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