Skip to main content
Glama
madosh

MCP FOR ITSM

by madosh

MCP ITSM 통합

Smithery와 함께 작동하도록 설계된 IT 서비스 관리(ITSM) 도구를 위한 모델 컨텍스트 프로토콜(MCP) 구현입니다.

개요

이 프로젝트는 LLM이 모델 컨텍스트 프로토콜(MCP)을 사용하여 여러 ITSM 시스템(ServiceNow, Jira, Zendesk, Ivanti Neurons for ITSM, Cherwell)과 상호 작용할 수 있는 통합 인터페이스를 제공합니다. LLM이 각 ITSM 시스템마다 다른 API를 학습할 필요 없이, 이 통합을 통해 모든 시스템에서 작동하는 표준화된 도구 세트를 제공합니다.

MCP ITSM 아키텍처

Related MCP server: ARC-1

MCP 서버 정보

이는 모델 컨텍스트 프로토콜(MCP) 사양을 구현하는 MCP 호환 서버입니다. 대규모 언어 모델(LLM)이 통합 도구 세트를 통해 여러 ITSM 시스템과 상호 작용할 수 있도록 표준화된 인터페이스를 제공합니다.

MCP 호환성

  • 프로토콜 버전 : MCP 1.0

  • 도구 형식 : JSON 스키마 호환

  • 런타임 : Node.js

  • 전송 : HTTP 및 stdio

  • 인증 : API 키

MCP 서버 사용

이 서버는 다음을 포함한 모든 MCP 호환 클라이언트와 함께 직접 사용할 수 있습니다.

  • MCP Inspector CLI 도구

  • MCP 통합을 통한 Claude

  • MCP 지원이 있는 모든 LLM

서버를 로컬로 검사하려면:

지엑스피1

특징

  • 통합 인터페이스 : 모든 ITSM 시스템에서 일관된 도구 정의

  • 지능형 라우팅 : 요청을 적절한 ITSM 시스템으로 자동 라우팅합니다.

  • 컨텍스트 관리 : 상호 작용 전반에 걸쳐 컨텍스트를 유지합니다.

  • MCP 준수 : 모델 컨텍스트 프로토콜 사양을 따릅니다.

  • Smithery 통합 : Smithery와 원활하게 작동하도록 설계되었습니다.

필수 조건

  • Node.js(v14 이상)

  • 스미서리 CLI

  • ITSM 시스템(ServiceNow, Jira, Zendesk, ITSM용 Ivanti Neurons, Cherwell)에 대한 액세스

설치

  1. 저장소를 복제합니다.

    git clone https://github.com/yourusername/mcp-itsm.git
    cd mcp-itsm
  2. 종속성 설치:

    npm install
  3. ITSM 자격 증명을 구성하세요(구성 섹션 참조)

  4. 대장간에 배치:

    smithery deploy

구성

ITSM 자격증

ITSM 자격 증명으로 .env 파일을 만듭니다.

# ServiceNow
SERVICENOW_INSTANCE=your-instance
SERVICENOW_USERNAME=your-username
SERVICENOW_PASSWORD=your-password

# Jira
JIRA_URL=https://your-instance.atlassian.net
JIRA_USERNAME=your-username
JIRA_API_TOKEN=your-api-token

# Zendesk
ZENDESK_URL=https://your-instance.zendesk.com
ZENDESK_EMAIL=your-email
ZENDESK_API_TOKEN=your-api-token

# Ivanti Neurons for ITSM
IVANTI_URL=https://your-instance.ivanti.com
IVANTI_CLIENT_ID=your-client-id
IVANTI_CLIENT_SECRET=your-client-secret
IVANTI_TENANT_ID=your-tenant-id

# Cherwell
CHERWELL_URL=https://your-instance.cherwell.com
CHERWELL_CLIENT_ID=your-client-id
CHERWELL_AUTH_MODE=internal
CHERWELL_USERNAME=your-username
CHERWELL_PASSWORD=your-password

대장간 구성

smithery.yaml 파일은 도구가 Smithery에 배포되는 방식을 구성합니다.

name: mcp-itsm
description: MCP ITSM Tools for ticket management across multiple systems
version: 1.0.0
tools: ./tools.json
command: node index.js

사용 가능한 도구

이 통합은 다음과 같은 도구를 제공합니다.

  • create_ticket : ITSM 시스템에서 새 티켓을 생성합니다.

  • get_ticket : 티켓 세부 정보 검색

  • update_ticket : 기존 티켓을 업데이트합니다

  • list_tickets : 필터링 옵션을 사용하여 티켓 목록 표시

  • assign_ticket : 사용자에게 티켓을 할당합니다.

  • add_comment : 티켓에 댓글을 추가합니다

  • search_knowledge_base : 지식베이스에서 관련 문서를 검색합니다.

전체 도구 정의는 tools.json 참조하세요.

용법

LLM은 Smithery에 배치되면 이러한 도구를 사용하여 ITSM 시스템과 상호 작용할 수 있습니다. LLM이 티켓을 생성하는 방법의 예는 다음과 같습니다.

User: "I need to report a bug in our accounting software"

LLM: (Makes a tool call)
{
  "type": "tool_call",
  "data": {
    "name": "create_ticket",
    "parameters": {
      "title": "Bug in accounting software",
      "description": "User reported an issue with the accounting software",
      "priority": "medium",
      "system": "jira"
    }
  }
}

Response:
{
  "type": "tool_response",
  "data": {
    "name": "create_ticket",
    "content": {
      "id": "ACCT-123",
      "status": "open",
      "url": "https://your-instance.atlassian.net/browse/ACCT-123"
    }
  }
}

디버깅

이 프로젝트에는 여러 디버깅 도구가 포함되어 있습니다.

  • debug_smithery_mcp.bat : Smithery와 관련된 MCP 관련 문제를 진단합니다.

  • force_redeploy_smithery.bat : MCP 구성을 사용하여 강제로 재배포합니다.

  • test_tools.js : 로컬에서 MCP 도구 호출을 테스트합니다.

선적 서류 비치

다이어그램

기여하다

기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.

특허

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.

자원

Available Tools

7 tools
add_commentA

Add a comment (public or internal) to an existing ticket

ParametersJSON Schema
NameRequiredDescriptionDefault
ticket_idYesID of the ticket to comment on
commentYesComment text
internalNoTrue = internal note not visible to end users
systemNoITSM system to usejira

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint=false, destructiveHint=false) are consistent with a write operation. Description adds the 'public or internal' nuance already present in schema parameter. No additional behavioral traits (e.g., auth requirements, side effects) are disclosed, but annotations cover basic safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded, zero fluff. Every word contributes to conveying purpose. Appropriate length for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but description does not hint at return values or response format. For a comment addition tool, the agent might expect to know if the comment ID is returned. Lacks this context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are fully documented. Description adds no extra meaning beyond summarizing the 'internal' parameter. Baseline score of 3 is appropriate as schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Add', resource 'comment', and context 'to an existing ticket'. Distinguishes between public and internal comments. Sibling tools (create_ticket, update_ticket) are distinct, so purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage for adding comments to existing tickets but does not explicitly state when not to use this tool (e.g., for creating tickets) or mention alternatives like update_ticket. Guidance is inferred rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assign_ticketA
Idempotent

Assign a ticket to a specific user

ParametersJSON Schema
NameRequiredDescriptionDefault
ticket_idYesID of the ticket to assign
user_idYesUsername or ID of the user to assign to
systemNoITSM system to usejira

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-readOnly, non-destructive, idempotent. Description adds 'assign' but no further behavioral details (e.g., reassignment effects, notifications). Minimal additional value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no wasted words, front-loads the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple assign action, but lacks usage guidance and return value indication. With annotations present, no major gaps but not rich.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all parameters with descriptions (100% coverage). Description does not add extra meaning beyond summarizing the action.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action ('assign'), the resource ('a ticket'), and the target ('to a specific user'). Distinguishes from sibling tools like create_ticket, get_ticket, update_ticket.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, no prerequisites mentioned (e.g., ticket existence, user permissions), and no when-not-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_ticketB

Create a new support ticket in the appropriate ITSM system

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTitle of the ticket
descriptionYesDetailed description of the issue
priorityNoPriority levelmedium
systemNoITSM system to usejira

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide basic hints (non-readOnly, non-destructive), but the description adds no behavioral context beyond creation. It does not disclose side effects like notifications, system validation, or error behavior, which are not covered by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence. It is well-structured and gets to the point without unnecessary details, though it could be slightly expanded for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with 4 parameters and no output schema. The description provides enough to understand the basic action but lacks details on return values, system selection logic, or potential errors. It is minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for all parameters. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it creates a new support ticket in an ITSM system, with a specific verb and resource. It effectively distinguishes from sibling tools like 'get_ticket' or 'update_ticket' by focusing on creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives like 'add_comment' or 'assign_ticket'. It implicitly suggests it's for creating new tickets, but offers no exclusions or context for when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_ticketA
Read-onlyIdempotent

Retrieve full details of an existing ticket by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
ticket_idYesID of the ticket to retrieve (e.g. JIRA-1000)
systemNoITSM system to usejira

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations fully cover safety profile (readOnly, idempotent). Description adds only 'Retrieve full details', consistent with annotations, no additional behavioral context beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no wasted words, front-loaded with the key action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with two parameters and no output schema, description adequately states purpose. Could mention that result includes full ticket details, but not necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with descriptions for both parameters. Description does not add further meaning; the schema already explains ticket_id and system.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'Retrieve' and resource 'full details of an existing ticket by ID', clearly distinguishing from siblings like list_tickets (list multiple) or update_ticket (modify).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear that tool is for retrieving a single ticket by ID, but lacks explicit 'when not to use' or comparison to alternatives like list_tickets for browsing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_ticketsA
Read-onlyIdempotent

List tickets with optional filtering by status, assignee, or system

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by status
assigned_toNoFilter by assignee username
limitNoMax number of tickets to return
systemNoITSM system to usejira

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds no new behavioral details (e.g., pagination, sorting, API limits) beyond what the schema and annotations imply, so it provides moderate added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single 10-word sentence that efficiently conveys the tool's purpose and key filters. No extraneous information, and the core action is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (list operation with 4 optional parameters, no output schema), the description covers the basics but omits usage guidelines and details about return format or pagination, leaving some gaps for an agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning all parameters are documented in the schema. The description merely restates the filter options without adding new semantic context, meeting the baseline but not exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'list tickets' with optional filters by status, assignee, or system, providing a specific verb and resource that clearly differentiates from sibling tools which involve creation or modification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like search_knowledge_base, nor any mention of prerequisites or exclusions. The description only lists optional filters without context on when each is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_knowledge_baseA
Read-onlyIdempotent

Search the knowledge base for articles related to an issue

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query — keywords, error messages, or topic
limitNoMax articles to return
systemNoITSM system to usejira

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds no further behavioral details beyond the search action, such as authentication needs or result format. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It could be slightly expanded to include when to use, but it is appropriately front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple nature of the tool (search with query, limit, system), the description is sufficient. No output schema exists, but the tool's behavior is straightforward and well-covered by annotations and schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters have descriptive schema documentation (100% coverage). The description does not add meaning beyond what the schema already provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'search' and the resource 'knowledge base' with a specific goal: finding articles related to an issue. It distinguishes itself from sibling tools, which are all ticket-related actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when articles about an issue are needed, but does not explicitly state when to use or not use this tool, nor does it mention alternative tools or context for exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_ticketB

Update the status, priority, or add a comment to an existing ticket

ParametersJSON Schema
NameRequiredDescriptionDefault
ticket_idYesID of the ticket to update
statusNoNew status
priorityNoPriority levelmedium
commentNoComment to add to the ticket
systemNoITSM system to usejira

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide minimal behavioral info. Description only says 'update', missing details on authentication, rate limits, or side effects. Bare minimum disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded, efficient. Minor awkwardness with 'or' list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate given 5 parameters explained in schema, no output schema. Lacks explanation of updating multiple fields simultaneously, but overall covers main purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. Description adds list of updatable fields but uses 'or' which could imply exclusivity, slightly misleading. No significant extra meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it updates status, priority, or adds a comment to an existing ticket, distinguishing it from siblings like create_ticket and assign_ticket.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage through listing updatable fields, but no explicit guidance on when to use versus add_comment or assign_ticket, nor prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv2.0.0
    • First observedadd_comment
    • First observedassign_ticket
    • First observedcreate_ticket
    • First observedget_ticket
    • First observedlist_tickets
    • First observedsearch_knowledge_base
    • First observedupdate_ticket

TDQS

A3.7/5.0

Scored across 7 tools

Disambiguation3/5

Most tools have distinct purposes, but add_comment and update_ticket both allow adding comments, creating ambiguity. The other tools are clearly separated.

Naming Consistency5/5

All tools follow a consistent verb_noun snake_case pattern (e.g., create_ticket, list_tickets, search_knowledge_base), making it easy to infer functionality.

Tool Count5/5

Seven tools cover the essential ticket lifecycle and knowledge base search without being excessive, fitting well for an ITSM server.

Completeness4/5

The tool set covers create, read, update, assignment, and knowledge search, but lacks a delete or archive operation, which may be needed in some workflows.

Maintenance

ActivityMaintained
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers