A Model Context Protocol (MCP) server implementation for ServiceNow
Project description
ServiceNow MCP Server
ServiceNow용 Model Context Protocol (MCP) 서버 구현체입니다. MFA(다요소 인증) 및 SSO가 설정된 환경에서도 브라우저 인증을 통해 완벽하게 동작합니다.
⚡ 초간편 실행 (추천)
소스 코드를 다운로드하거나 개발 환경을 구축할 필요가 없습니다. uv가 설치되어 있다면 명령어 한 줄로 즉시 실행 가능합니다.
# 1. 서버 실행 (최초 실행 시 브라우저 엔진 자동 설치)
uvx mfa-servicenow-mcp --instance-url "https://your-instance.service-now.com" --auth-type "browser"
Windows 사용자라면? 도커 없이 브라우저 인증을 가장 편하게 사용하는 방법인 Windows 설치 및 실행 가이드를 확인하세요.
✨ 주요 특징
- MFA/SSO 완벽 지원: Playwright 기반 브라우저 인증 모드로 Okta, Microsoft Authenticator 등 모든 인증 환경 대응
- Zero Configuration:
uvx를 통한 소스 코드 없는 즉시 실행 지원 - 강력한 보안: 수정/삭제 작업 시 명시적 확인(
confirm='approve') 요구 정책 적용 - 데이터 안전장치: 페이로드 폭발 방지를 위한 자동 Limit 및 필드 절단(Truncation) 기능
- 방대한 도구 모음: 인시던트, 서비스 카탈로그, 변경 관리, 워크플로우, 지식베이스 등 ServiceNow 전 영역 커버
🚀 시작하기
1. 설치 방법 (개발자용)
소스 코드를 직접 수정하거나 로컬에서 실행하고 싶다면 다음 과정을 따르세요.
git clone https://github.com/jshsakura/mfa-servicenow-mcp.git
cd mfa-servicenow-mcp
# Windows 통합 설치 스크립트 실행 (추천)
.\setup_windows.ps1
# 또는 수동 설치
uv venv
uv pip install -e .
uv run playwright install chromium
2. 인증 설정
브라우저 인증 (MFA/SSO 필수 환경)
브라우저가 직접 떠서 로그인을 진행합니다. 세션은 로컬에 저장되어 재사용됩니다.
SERVICENOW_AUTH_TYPE=browser
SERVICENOW_INSTANCE_URL=https://your-instance.service-now.com
SERVICENOW_BROWSER_HEADLESS=false
기타 인증 방식
- Basic:
SERVICENOW_AUTH_TYPE=basic(ID/PW) - OAuth:
SERVICENOW_AUTH_TYPE=oauth(Client ID/Secret) - API Key:
SERVICENOW_AUTH_TYPE=api_key
🛠️ 도구 프로필 (Profiles)
상황에 맞게 필요한 도구 모음을 선택하여 사용할 수 있습니다. 환경변수 MCP_TOOL_PACKAGE로 설정하세요. (기본값: standard)
| 프로필명 | 추천 역할 | 주요 포함 도구 |
|---|---|---|
standard |
표준 모드 | 기본값. 인시던트, 서비스 카탈로그, 지식베이스 등 공통 데이터 조회 및 처리 |
portal_developer |
풀스택 포탈 개발자 | 위젯 + 서버 스크립트(SI) 통합 개발, Angular Provider, Update Set 관리 |
platform_developer |
플랫폼 개발자 | 비즈니스 로직(Script Include), 워크플로우 자동화, UI Policy, 체인지셋 관리 |
service_desk |
운영 및 헬프데스크 | 인시던트 생성/수정, 업무 코멘트 추가, 사용자 정보 조회 |
full |
슈퍼 관리자 | 모든 도구 로드 (데이터, 프로젝트, 스크럼, 워크플로우 등 전 영역) |
🛡️ 전역 보안 정책 (Universal Safety Policy)
중요: 본 서버의 보안 정책은 모든 프로필에 예외 없이 강제 적용되는 '절대 원칙'입니다.
어떤 프로필을 사용하든, 서버의 데이터를 수정/삭제하거나 소스 코드를 변경하는 행위가 발생하면 무조건 사용자의 명시적 승인을 받아야만 실행됩니다.
- 승인 조건:
create_,update_,delete_,execute_,add_등으로 시작하는 모든 '수정형' 도구 호출 시. - 승인 방법: 요청 시 반드시 파라미터로 **
confirm='approve'**를 명시적으로 전달해야 합니다. - 작동 방식: 승인 파라미터 없이 실행을 시도하면 서버가 물리적으로 실행을 거부하고 사용자에게 확인을 요청합니다.
Claude Desktop (추천 설정)
claude_desktop_config.json에 아래 설정을 복사하여 사용하세요. 환경변수 설정 없이 args만으로 간편하게 관리할 수 있습니다.
{
"mcpServers": {
"servicenow": {
"command": "uvx",
"args": [
"mfa-servicenow-mcp",
"--instance-url", "https://your-instance.service-now.com",
"--auth-type", "browser",
"--browser-headless", "false"
]
}
}
}
Gemini / Vertex AI (OpenCode 설정)
Gemini Code Assist 또는 OpenCode와 같은 MCP 클라이언트에서 아래와 같이 로컬 서버를 추가할 수 있습니다. 사용하시는 인증 방식에 맞춰 설정을 선택하세요.
1. 브라우저 인증 (MFA/SSO 대응 - 추천)
브라우저 창이 직접 떠서 로그인을 진행합니다. 아이디/비밀번호 자동 입력도 지원합니다.
{
"mcp": {
"servicenow": {
"type": "local",
"command": [
"uvx", "mfa-servicenow-mcp",
"--instance-url", "https://your-instance.service-now.com",
"--auth-type", "browser",
"--username", "your_id",
"--password", "your_password",
"--browser-headless", "false"
],
"enabled": true
}
}
}
2. 기본 인증 (Basic Auth)
MFA가 없는 PDI(개인 개발 인스턴스) 등에서 적합합니다.
{
"mcp": {
"servicenow": {
"type": "local",
"command": [
"uvx", "mfa-servicenow-mcp",
"--instance-url", "https://your-instance.service-now.com",
"--auth-type", "basic",
"--username", "your_id",
"--password", "your_password"
],
"enabled": true
}
}
}
3. 기타 인증 (OAuth / API Key)
- OAuth:
--auth-type oauth --oauth-client-id <id> --oauth-client-secret <secret> - API Key:
--auth-type api_key --api-key <key>
🛡️ 데이터 보호 정책 (Confirmation Required)
본 서버는 데이터 파괴 방지를 위해 Mutation(수정/삭제 등) 도구 실행 시 명시적인 확인 파라미터를 요구합니다.
confirm='approve': 실행을 확정하기 위해 반드시 전달해야 하는 파라미터
이 정보가 없으면 수정 도구는 실행되지 않고 안내 메시지를 반환합니다.
📚 상세 문서
더 자세한 도구 사용법과 설정은 docs/ 폴더를 참고하세요.
라이선스
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mfa_servicenow_mcp-1.0.1.tar.gz.
File metadata
- Download URL: mfa_servicenow_mcp-1.0.1.tar.gz
- Upload date:
- Size: 173.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b18eaf3159945c69126a61b227023d2c634de71d25606dadcaa9483f3cbdecd0
|
|
| MD5 |
233952655a69e7e1824e07e26fed04ab
|
|
| BLAKE2b-256 |
6ec739e7e6444050c7d89c9d50321665d0d166a15097bfbdf644095397483700
|
Provenance
The following attestation bundles were made for mfa_servicenow_mcp-1.0.1.tar.gz:
Publisher:
ci.yml on jshsakura/mfa-servicenow-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mfa_servicenow_mcp-1.0.1.tar.gz -
Subject digest:
b18eaf3159945c69126a61b227023d2c634de71d25606dadcaa9483f3cbdecd0 - Sigstore transparency entry: 1171611824
- Sigstore integration time:
-
Permalink:
jshsakura/mfa-servicenow-mcp@239eb3376c0a9130d53c22587c60605668c61714 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/jshsakura
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@239eb3376c0a9130d53c22587c60605668c61714 -
Trigger Event:
push
-
Statement type:
File details
Details for the file mfa_servicenow_mcp-1.0.1-py3-none-any.whl.
File metadata
- Download URL: mfa_servicenow_mcp-1.0.1-py3-none-any.whl
- Upload date:
- Size: 92.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5afec56b9f3bade835b50e70666af5679b37836f73ffe7b5e9f93ef2664e5bb4
|
|
| MD5 |
973a47da5725185b2c8255e53fd82f38
|
|
| BLAKE2b-256 |
fea4bb5c047f9cccc2ff189f1c94d1d1b9740671f175768e8f8ad765526d966a
|
Provenance
The following attestation bundles were made for mfa_servicenow_mcp-1.0.1-py3-none-any.whl:
Publisher:
ci.yml on jshsakura/mfa-servicenow-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mfa_servicenow_mcp-1.0.1-py3-none-any.whl -
Subject digest:
5afec56b9f3bade835b50e70666af5679b37836f73ffe7b5e9f93ef2664e5bb4 - Sigstore transparency entry: 1171611832
- Sigstore integration time:
-
Permalink:
jshsakura/mfa-servicenow-mcp@239eb3376c0a9130d53c22587c60605668c61714 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/jshsakura
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@239eb3376c0a9130d53c22587c60605668c61714 -
Trigger Event:
push
-
Statement type: