Skip to main content
Glama

publish_article

Submit and set the workflow state of a knowledge article to publish it on ServiceNow using the specified article ID and version.

Instructions

Publish a knowledge article

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paramsYes

Implementation Reference

  • Implements the core logic for publishing a knowledge article by PATCHing the workflow_state on the kb_knowledge table.
    def publish_article( config: ServerConfig, auth_manager: AuthManager, params: PublishArticleParams, ) -> ArticleResponse: """ Publish a knowledge article. Args: config: Server configuration. auth_manager: Authentication manager. params: Parameters for publishing the article. Returns: Response with the published article details. """ api_url = f"{config.api_url}/table/kb_knowledge/{params.article_id}" # Build request data data = { "workflow_state": params.workflow_state, } if params.workflow_version: data["workflow_version"] = params.workflow_version # 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 published 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 publish article: {e}") return ArticleResponse( success=False, message=f"Failed to publish article: {str(e)}", )
  • Pydantic model defining the input parameters for the publish_article tool.
    class PublishArticleParams(BaseModel): """Parameters for publishing a knowledge article.""" article_id: str = Field(..., description="ID of the article to publish") workflow_state: Optional[str] = Field("published", description="The workflow state to set") workflow_version: Optional[str] = Field(None, description="The workflow version to use")
  • Registers the publish_article tool in the central tool definitions dictionary used by the MCP server, including function, params schema, description, and serialization details.
    "publish_article": ( publish_article_tool, PublishArticleParams, str, # Expects JSON string "Publish a knowledge article", "json_dict", # Tool returns Pydantic model ),
  • Imports the publish_article function into the tools package namespace for exposure.
    from servicenow_mcp.tools.knowledge_base import ( create_article, create_category, create_knowledge_base, get_article, list_articles, list_knowledge_bases, publish_article, update_article, list_categories, )
  • Includes publish_article in the __all__ list for proper package export.
    # Knowledge Base tools "create_knowledge_base", "list_knowledge_bases", "create_category", "list_categories", "create_article", "update_article", "publish_article", "list_articles", "get_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/echelon-ai-labs/servicenow-mcp'

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