Skip to main content
Glama
vparlapalli490

ServiceNow MCP Server

update_article

Modify existing knowledge articles in ServiceNow by updating content, categories, or metadata to maintain accurate documentation.

Instructions

Update an existing knowledge article

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
article_idYesID of the article to update
titleNoUpdated title of the article
textNoUpdated main body text for the article
short_descriptionNoUpdated short description
categoryNoUpdated category for the article
keywordsNoUpdated keywords for search

Implementation Reference

  • The core handler function that executes the update_article tool. It performs a PATCH request to the ServiceNow kb_knowledge table to update the specified article fields.
    def update_article(
        config: ServerConfig,
        auth_manager: AuthManager,
        params: UpdateArticleParams,
    ) -> ArticleResponse:
        """
        Update an existing knowledge article.
    
        Args:
            config: Server configuration.
            auth_manager: Authentication manager.
            params: Parameters for updating the article.
    
        Returns:
            Response with the updated article details.
        """
        api_url = f"{config.api_url}/table/kb_knowledge/{params.article_id}"
    
        # Build request data
        data = {}
    
        if params.title:
            data["short_description"] = params.title
        if params.text:
            data["text"] = params.text
        if params.short_description:
            data["short_description"] = params.short_description
        if params.category:
            data["kb_category"] = params.category
        if params.keywords:
            data["keywords"] = params.keywords
    
        # Make request
        try:
            response = requests.patch(
                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 updated successfully",
                article_id=params.article_id,
                article_title=result.get("short_description"),
                workflow_state=result.get("workflow_state"),
            )
    
        except requests.RequestException as e:
            logger.error(f"Failed to update article: {e}")
            return ArticleResponse(
                success=False,
                message=f"Failed to update article: {str(e)}",
            )
  • Pydantic BaseModel defining the input schema/parameters for the update_article tool, including article_id (required) and optional fields like title, text, etc.
    class UpdateArticleParams(BaseModel):
        """Parameters for updating a knowledge article."""
    
        article_id: str = Field(..., description="ID of the article to update")
        title: Optional[str] = Field(None, description="Updated title of the article")
        text: Optional[str] = Field(None, description="Updated main body text for the article")
        short_description: Optional[str] = Field(None, description="Updated short description")
        category: Optional[str] = Field(None, description="Updated category for the article")
        keywords: Optional[str] = Field(None, description="Updated keywords for search")
  • Tool registration in the central tool_definitions dictionary used by the MCP server. Maps 'update_article' to its handler function (aliased as update_article_tool), input schema (UpdateArticleParams), return type hint, description, and serialization method.
    "update_article": (
        update_article_tool,
        UpdateArticleParams,
        str,  # Expects JSON string
        "Update an existing knowledge article",
        "json_dict",  # Tool returns Pydantic model
  • Import of the update_article handler function from knowledge_base.py, aliased as update_article_tool for use in tool registration.
    from servicenow_mcp.tools.knowledge_base import (
        update_article as update_article_tool,
    )
  • Re-export of update_article from knowledge_base.py in the tools package __init__.py, making it available for imports.
    update_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/vparlapalli490/MCP'

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