Skip to main content
Glama
JLKmach

ServiceNow MCP Server

by JLKmach

create_article

Create knowledge articles in ServiceNow with title, content, categories, and metadata to document solutions and share information across teams.

Instructions

Create a new knowledge article

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleYesTitle of the article
textYesThe main body text for the article. Field supports html formatting and wiki markup based on the article_type. HTML is the default.
short_descriptionYesShort description of the article
knowledge_baseYesThe knowledge base to create the article in
categoryYesCategory for the article
keywordsNoKeywords for search
article_typeNoThe type of article. Options are 'text' or 'wiki'. text lets the text field support html formatting. wiki lets the text field support wiki markup.html

Implementation Reference

  • The core handler function that implements the logic for creating a new knowledge article in ServiceNow by posting data to the kb_knowledge table.
    def create_article(
        config: ServerConfig,
        auth_manager: AuthManager,
        params: CreateArticleParams,
    ) -> ArticleResponse:
        """
        Create a new knowledge article.
    
        Args:
            config: Server configuration.
            auth_manager: Authentication manager.
            params: Parameters for creating the article.
    
        Returns:
            Response with the created article details.
        """
        api_url = f"{config.api_url}/table/kb_knowledge"
    
        # Build request data
        data = {
            "short_description": params.short_description,
            "text": params.text,
            "kb_knowledge_base": params.knowledge_base,
            "kb_category": params.category,
            "article_type": params.article_type,
        }
    
        if params.title:
            data["short_description"] = params.title
        if params.keywords:
            data["keywords"] = params.keywords
    
        # 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 ArticleResponse(
                success=True,
                message="Article created successfully",
                article_id=result.get("sys_id"),
                article_title=result.get("short_description"),
                workflow_state=result.get("workflow_state"),
            )
    
        except requests.RequestException as e:
            logger.error(f"Failed to create article: {e}")
            return ArticleResponse(
                success=False,
                message=f"Failed to create article: {str(e)}",
            )
  • Pydantic model defining the input schema/validation for the create_article tool parameters.
    class CreateArticleParams(BaseModel):
        """Parameters for creating a knowledge article."""
    
        title: str = Field(..., description="Title of the article")
        text: str = Field(..., description="The main body text for the article. Field supports html formatting and wiki markup based on the article_type. HTML is the default.")
        short_description: str = Field(..., description="Short description of the article")
        knowledge_base: str = Field(..., description="The knowledge base to create the article in")
        category: str = Field(..., description="Category for the article")
        keywords: Optional[str] = Field(None, description="Keywords for search")
        article_type: Optional[str] = Field("html", description="The type of article. Options are 'text' or 'wiki'. text lets the text field support html formatting. wiki lets the text field support wiki markup.")
  • Registration of the create_article tool in the central tool definitions dictionary used by the MCP server, specifying the handler, input schema, return type hint, description, and serialization method.
    "create_article": (
        create_article_tool,
        CreateArticleParams,
        str,  # Expects JSON string
        "Create a new knowledge article",
        "json_dict",  # Tool returns Pydantic model
    ),
  • Import of the create_article function into the tools package namespace, exposing it for use.
    from servicenow_mcp.tools.knowledge_base import (
        create_article,

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/JLKmach/servicenow-mcp'

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