Metadata-Version: 2.4
Name: servicenow-mcp-agent
Version: 0.1.0
Summary: Claude-powered agent that manages ServiceNow incidents using MCP and AWS Bedrock
Project-URL: Homepage, https://github.com/Slalom-Consulting/servicenow-mcp-agent
Project-URL: Repository, https://github.com/Slalom-Consulting/servicenow-mcp-agent
Project-URL: Issues, https://github.com/Slalom-Consulting/servicenow-mcp-agent/issues
Author-email: Animesh Das <animesh.das@slalom.com>
License-Expression: MIT
Keywords: bedrock,claude,incident-management,mcp,servicenow
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.10
Requires-Dist: anthropic[bedrock]
Requires-Dist: httpx
Requires-Dist: mcp
Requires-Dist: python-dotenv
Description-Content-Type: text/markdown

# ServiceNow MCP Agent

Claude-powered agent that manages ServiceNow incidents from natural language using MCP and AWS Bedrock.

Describe IT issues, look up tickets, search by criteria, add notes, and resolve incidents -- all through a conversational interface powered by Claude.

## Architecture

```text
User Input (natural language)
       |
       v
  agent.py (agentic loop)
       |
       v
  Claude via AWS Bedrock
       |  (tool calls)
       v
  MCP Protocol (stdio)
       |
       v
  server.py (6 tools)
       |  (HTTP GET / POST / PATCH)
       v
  ServiceNow REST API
       |
       v
  Incidents created / queried / updated / resolved
```

**agent.py** -- Orchestrates the conversation loop. Sends user messages to Claude, executes tool calls via MCP, and returns results back to Claude until the task is complete.

**server.py** -- An MCP server that exposes six incident management tools. Handles authentication and communication with the ServiceNow Table API.

## Tools

| Tool | Description |
|------|-------------|
| `create_incident` | Create a new incident from a natural language description |
| `get_incident` | Look up a single incident by number (e.g. INC0010054) |
| `search_incidents` | Search incidents by state, impact, category, assignment group, etc. |
| `update_incident` | Update fields on an existing incident (impact, urgency, assignment, etc.) |
| `add_comment` | Add a customer-visible comment or internal work note |
| `resolve_incident` | Resolve an incident with a close code and resolution notes |

## Prerequisites

- Python 3.10+
- AWS CLI configured with a profile that has access to Amazon Bedrock
- A ServiceNow instance with REST API access (a [developer instance](https://developer.servicenow.com/) works)

## Installation

### Option A: Install with pip

```bash
pip install servicenow-mcp-agent
```

### Option B: Install from source

```bash
git clone https://github.com/Slalom-Consulting/servicenow-mcp-agent.git
cd servicenow-mcp-agent
pip install .
```

For development (editable install):

```bash
pip install -e .
```

### Configure environment variables

Copy the example file and fill in your credentials:

```bash
cp .env.example .env
```

Edit `.env`:

```env
SERVICENOW_INSTANCE_URL=https://your-instance.service-now.com
SERVICENOW_USERNAME=your-username
SERVICENOW_PASSWORD=your-password
AWS_REGION=us-east-1
AWS_PROFILE=default
```

## Usage

```bash
servicenow-mcp-agent
```

Or run directly with Python:

```bash
python -m servicenow_mcp_agent.agent
```

### Create an incident

    You: Software 1 is having issues with Authentication. Can someone look into it

    Assistant: Your incident has been created successfully!
      Incident Number:   INC0010054
      Short Description: Authentication issues with Software 1
      Category:          Software
      Impact:            2 - Medium
      Urgency:           2 - Medium
      Priority:          3 - Moderate
      State:             New

### Look up an incident

    You: What's the status of INC0010054?

    Assistant: INC0010054 is currently in New state, Priority 3 - Moderate...

### Search incidents

    You: Show me all open high-priority software incidents

    Assistant: Found 4 incident(s):
      [INC0000015] I can't launch my VPN client since the last software update
        State: 2 | Priority: 1 | Category: Software
      ...

### Add a work note

    You: Add a work note to INC0010054: Root cause identified - SSO certificate expired

    Assistant: Work note added to incident INC0010054 successfully!

### Update an incident

    You: Escalate INC0010054 to high urgency

    Assistant: Incident INC0010054 updated successfully!
      Urgency: 1 - High

### Resolve an incident

    You: Resolve INC0010054. The fix was renewing the SSO certificate.

    Assistant: Incident INC0010054 resolved successfully!
      State:        Resolved (6)
      Close Code:   Solution provided
      Close Notes:  Resolved by renewing the SSO certificate.

Type `quit` or `exit` to end the session.

## Project Structure

```text
servicenow-mcp-agent/
├── pyproject.toml                          # Package metadata, dependencies, entry points
├── src/
│   └── servicenow_mcp_agent/
│       ├── __init__.py                     # Package version
│       ├── agent.py                        # Main entry point - agentic loop
│       └── server.py                       # MCP server with 6 incident management tools
├── .env.example                            # Environment variable template
├── .env                                    # Your credentials (git-ignored)
└── .gitignore
```

## License

MIT
