Skip to main content
Glama
javerthl

ServiceNow MCP Server

by javerthl

create_article

Create knowledge articles in ServiceNow by providing title, content, category, and knowledge base details to document solutions and procedures.

Instructions

Create a new knowledge article

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
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
categoryYesCategory for the article
keywordsNoKeywords for search
knowledge_baseYesThe knowledge base to create the article in
short_descriptionYesShort description 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.
titleYesTitle of the article

Implementation Reference

  • The handler function that implements the core logic for creating a knowledge article by making a POST request to the ServiceNow 'kb_knowledge' table API endpoint.
    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 BaseModel defining the input parameters and validation schema for the create_article tool.
    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.")
  • Tool registration in the central tool_definitions dictionary, associating the tool name 'create_article' with its handler function, input schema, description, and serialization details.
    "create_article": ( create_article_tool, CreateArticleParams, str, # Expects JSON string "Create a new knowledge article", "json_dict", # Tool returns Pydantic model ),
  • Exposes the create_article function in the tools package __all__ list for easy import.
    "create_article",
  • Import alias for the create_article handler used in tool registration.
    create_article as create_article_tool,

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

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